سلام
دوستان کسی اطلاعاتی درباره راه اندازی rd01d id3 با آردوینو داره؟
کتابخونه ای مثل ماژول RC522 برای 01d هم واسه آردوینو هست؟ من نتونستم چیزی پیدا کنم.
نحوه راه اندازیش با آردوینو به چه صورت هست ؟ (arduino uno)
سلام
دوستان کسی اطلاعاتی درباره راه اندازی rd01d id3 با آردوینو داره؟
کتابخونه ای مثل ماژول RC522 برای 01d هم واسه آردوینو هست؟ من نتونستم چیزی پیدا کنم.
نحوه راه اندازیش با آردوینو به چه صورت هست ؟ (arduino uno)
میتونید دقیقا لینک بدید کدوم محصول سایت هستید؟
این دیتاشیت ـه ماژول هست:
http://www.kartach.com/datasheets/RF01D-ID3.pdf
بدون حافظه
آقا من دیشب اینو رو بردبورد بستم، وقتی تگ رو میخونه شماره 10 رقمی روی تگ و یا عدد هگز و یا اعداد اعشاری روی کارت ها (بسته به تنظیم خود کاربر) رو میتونه به RX ارسال کنه.
فقط یه بدی داره که تا زمانی که تگ نزدیک ریدر هست خروجی ماژول فعاله!
حالا یه سوال من چطوری میتونم این استرینگ ده رقمی که روی پورت سریال هست رو درست و حسابی توسط آردوینو بخونم؟ (بدون خطا و با تعداد دقیق کاراکتر که بخوام مقایسه کنم اگر جز تگ های شناخته شده بود یه پین رو مثلا 5 ثانیه High کن)
مشکل اینجاست که علاوه بر خوندن خروجی ماژول آر اف آی دی، توسط کامپیوتر هم هر ثانیه یه استرینگ به صورت مثلا "0110010" روی پورت سریال ارسال میشه، که در هر ثانیه ممکن متغیر باشه صفر و یک هاش، به این معنی که پین 2و3و6 رو High کن و مابقی رو LOW.
برای این که بتونم هم خروجی Rfid و هم خروجی سریال کامپیوتر رو بخونم باید از پورت مجازی استفاده کنم ؟ آیا؟
سلام به نظر من هیچ وقت از خود پورت سریال آردوینو استفاده نکیند چون تو پروگرام کردن دچار مشکل میشید پس همون اول تمام interface های سریال را با softwareserial راه اندازی کنید.
بدی که فرمودید اکثر ماژول های RFID همین مشکل را دارن که تگ را در فاصله های نزدیک میخونن مگر این که پول خرج کنید و ماژول گرون بخرید
میدونید که آردوینو با دستور serial.read() فقط میتونه یک بایت بخونه بنابریان بزاریدش توی حلقه for که ده بار تکرار بشه و اون را توی یک آرایه کراراکتری بریزید.
برای خوندن اون داده ارسالی کامپیوتر هم همین حلقه for را به تعداد بایت های اومده تکرار کنید.
دوست من اگر میتونی توی کامپیوتر برای داده ای که داری ارسال میکنی که علامت اتمام بزار مثلا * که وفتی به این رسید بفهمه کاراکترها تموم شدن در غیر این صورت ممکنه خطاب بگیری
ممنوون از راهنماییت دوست عزیر،
یه سوال راجع به ارتباط آردوینو با کامپیوتر توسط پورت سریال داشتم...
وقتی ما بورد رو به سیستم وصل میکنیم، خود ide میاد و یه پورت رو "مثل COM3" شناسایی میکنه، حالا تا زمانی که ما بخوایم از طریق خود آردوینو به این پورت دسترسی داشته باشیم مشکلی نیست، ولی سوالم اینه که از طریق کامپیوتر (نرم افزار ویندوزی که قراره اون استرینگ ها رو واسه آردوینو بفرسته) چطوری میتونیم به اون پورت دسترسی داشته باشیم؟
پیغام access to COM3 port is denied میده که طبیعی هم هست اون پورت توسط خود آردوینو مشغوله.
من چجوری میتونم از طریق نرم افزار ارتباط سریال با آردوینو برقرار کنم؟
خب نکته اول این که اگر قراره از اون کام3 استفاده کنی حتما محیط نرم افزار خود arduino را ببند وگرنه نرم افزار یگه یه جا این پورت اشغاله که خب تابلو هست کجاست
پس قدم اول و آخر اینه که محیط اردوینو رو ببندی
ممنون امتحان میکنم.
ولی کلا در مورد خوندن از سریال مشکل دارم و نمیتونم 10 کاراکتر رو درست از سریال بخونم.
این کد درست شماره هر تگ رو در خروجی سریال نشون میده. دقیقا 10 کاراکتر و بدون خطا. ولی مشکل اینه که من میخوام این شماره تگ رو با یه تعداد از شماره تگ ها که قبلا تو یه آرایه ذخیره کردم مقایسه کنم و اگر برابر بوند یه کار خاص انجام بدم.کد:if(rfid.available()) { c = rfid.read(); // receive character from rfid Serial.print(c); tone(8, 523, 200); }
اینجا که با حلقه میخوام 10 کاراکتر رو توی یه آرایه ذخیره کنم، مشکلش اینه که نمیتونه دقیق از سریال بخونه و شانسی شاید شماره تگ درست در بیاد ولی کلا دری وری نشون میده، مقلا اینا نتیجه سریال برای چند بار نزدیک کردن تگ با کد بالاست:کد:if(rfid.available()) { for (int i=0; i<10; i++) { buffer[i] = rfid.read(); } Serial.println(buffer); }
کد:00ÿÿÿÿÿÿ0ÿH000 9699708 ÿH0009699708 000ÿÿÿÿÿÿÿH0009699708 0009 9699708 ÿH0009699708 0009699708 00ÿÿÿÿÿÿ0ÿH0009699708 0009699708 000 9699708 ÿH0009699708 0009699708 0009699708 000ÿÿÿÿÿÿ9H0009699708 0009699708 0009699708 0009 699708 ÿÿH0009699708 0009699708 0009699708 0009699708 000ÿÿÿÿÿÿ9H0009699708 0009699708 0009699708 0009699708 00096 699708 ÿÿH0009699708 0009699708 0009699708 0009699708 0009699708 00ÿ0ÿÿÿÿÿÿH699708 08 0009699708 0009699708 0009699708 0009699708 0009 9699708 ÿH699708 08 0009699708 0009699708 0009699708 0009699708 0009 00ÿÿÿÿÿÿÿÿH699708 0009699708 08 0009699708 0009699708 0009699708 0009 09699708 H699708 0009699708 08 0009699708 0009699708 0009699708 0009 000ÿÿÿÿÿÿ9H699708 0009699708 0009699708 08 0009699708 0009699708 0009 699708 ÿÿH699708 0009699708 0009699708 08 0009699708 0009699708 0009 00ÿ0ÿÿÿÿÿÿH699708 0009699708 0009699708 0009699708 08 0009699708 0009,# 9699708 ÿH699708 0009699708 0009699708 0009699708 08 0009699708 0009,, 00ÿÿÿÿÿÿÿ0H699708 0009699708 0009699708 0009699708 0009699708 08 00098/ 9699708 ÿH699708 0009699708 0009699708 0009699708 0009699708 08 000988
ویرایش توسط mehdirm666 : 02-05-2015 در ساعت 04:05 PM
چند تا لینک به درد بخور کدهاش روبرای دریافت داده (فقط خوندن کارتها نه مقایسه ) استفاده کنید اگر ok شدید بغد برید تو فاز مقایسه با کارت
matrix - Send long array to arduino over serial from processing - Stack Overflow
uart - Serial communication and reading byte arrays with Arduino - Electrical Engineering Stack Exchange
سلام دوست عزیز. چند روزی در دسترس نبودم،
ممنونم بابت وقتی که میزاری.
مسئله خوندن از سریال رو با readStringUntil میشه گفت تقریبا حل کردم، الان میتونم بخونم و مقایسه کنم. هر چند کمی بیشتر باید روش وقت بزارم و کار کنم ولی تقریبا اون چیزی که میخواستم رو تونستم انجام بدم،
حالا یه سوال :
بورد من آردوینو uno هستش، که میکرو mega328 روشه، حالا اگه من این فایل hex که خود کامپایلر آردوینو میسازه رو مستقیم رو یه میکرو 328 دیگه بریزم، چی میشه؟ میتونم با اتصال قطعات به پایه های مشابه با برد آدرینو همون کار رو از میکرو دوم بگیرم؟
مسئله اینجاست که نمیخوام بوت لودر آردوینو رو میکرو بریزم، فقط میخوام اون فایل هگز رو مستقیم به میکرو جدید بدم و رو برد بزارم.