فهرست مطالب:
- مرحله 1: آنچه شما نیاز دارید
- مرحله 2: راه حل
- مرحله سوم: پشت صحنه…
- مرحله 4: خواندن بیشتر/ بهبود امکانات
تصویری: بازیابی ماژول بلوتوث HC-06 با پیکربندی اشتباه: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:56
با توجه به حداکثر گرایی خالص ، ماژول HC-06 بلوتوث (slave) خود را با نرخ بار 1 ، 382 ، 400 baud با دستور AT+BAUDC پیکربندی کردم. از زمانی که آردوینو به آن متصل شد قادر به استفاده از ماژول با کتابخانه SoftwareSerial نبود. من سعی کردم باود را با سریال سخت افزاری آردوینو (پین 0 و 1) بدون شانس بازیابی کنم.
من همچنین سعی کردم موضوع را در گوگل بدون یافتن راه حل قابل قبول جستجو کنم. شاید استفاده از پورت سریال ساخته شده توسط رایانه می تواند راه حلی باشد (با تغییر سطح منطقی 12V به 3V3) ، اما رایانه من این پورت منسوخ را ندارد ، بنابراین مجبور شدم راه حل دیگری ارائه کنم.
مرحله 1: آنچه شما نیاز دارید
- برد Arudino/Genuino با Atmel ATMEGA328P-PU MCU پیش فرض (@16MHz).
- ماژول بلوتوث HC-06 در 1 ، 382 ، 400 باود گوش می دهد
- arduino IDE اولیه از
مرحله 2: راه حل
لطفاً توجه داشته باشید که این دستورالعمل و راه حل برای سناریوی 1 ، 382 ، 400 baud (AT+BAUDC) ساخته شده است. این راه حل برای سایر نرخ های باود کار نخواهد کرد. برای رسیدگی به موارد دیگر ، لطفاً به مراحل شروع از مرحله 3 مراجعه کنید.
راه حل واقعا ساده است.
- پین VCC HC-06 را به پین 5 ولت آردوینو وصل کنید.
- پین GND HC-06 را به پین GND آردوینو وصل کنید.
- پین RXD HC-06 را به پین 2 آردوینو وصل کنید.
- پین TXD HC-06 را بدون اتصال رها کنید (یا به پین 8 متصل شوید).
- بارگذاری طرح hc06reset.ino.
- این برنامه HC-06 را در حالت 115 ، 200 baud (AT+BAUD8) تنظیم می کند.
- از ماژول بازیابی HC-06 خود مانند قبل استفاده کنید.
مرحله سوم: پشت صحنه…
کتابخانه SoftwareSerial با Arduino IDE می تواند حداکثر 115 ، 200 بیت در ثانیه را منتقل کند ، بنابراین سرعت کافی برای برقراری ارتباط با سرعت 1 ، 382 ، 400 مورد نظر را ندارد. با توجه به اینکه یک برد پیش فرض آردوینو روی 16 مگاهرتز کار می کند ، حداکثر سرعت تراکم فشرده نشده تئوری 16 ، 000 ، 000 بیت/ثانیه است. تا اینجا خوب هستیم!
بر اساس درک من از SoftwareSerial.cpp ، ارتباط سیل با تنظیم یک پین خروجی High (= 1) یا Low (= 0) با توجه به تأخیر (که از نرخ باود ناشی می شود) بین تغییرات انجام می شود.
- بنابراین ، پین خروجی به طور پیش فرض زیاد است (یعنی هیچ داده ای وجود ندارد)
- سپس یک بیت شروع (که پین را به سمت پایین می کشد) منتقل می شود
- 8 بیت داده از LSB به MSB منتقل می شود (+5V وقتی بیت 1 و 0 در غیر این صورت) پس از آن
- بیت توقف (که پین را به سمت بالا می کشد) منتقل می شود
به این ترتیب 1 بایت با استفاده از 10 بیت منتقل می شود.
پیامی که باید ارسال کنیم AT+BAUD8 است (بدون / n ، / r در پایان). این دستور HC-06 را روی 115 ، 200 baud rate تنظیم می کند که توسط کتابخانه های معمولی قابل کنترل است.
برای ارسال بیت با سرعت 1 ، 382 ، 400 بیت/ثانیه ، برای هر بیت ما 1/1 ، 382 ، 400 ثانیه زمان (که تقریباً 723.38 نانوس ثانیه است) برای هر بیت داریم. آردوینو با سرعت 16000 ، 000 مگاهرتز کار می کند ، بنابراین هر چرخه 1/16 ، 000 ، 000 ثانیه طول می کشد - یعنی 62.5 نانوس در ثانیه.
با استفاده از کد مونتاژ AVR می توانیم از دستور OUT برای تنظیم پین خروجی بالا یا پایین و NOP برای صبر دقیق یک چرخه CPU استفاده کنیم. هر دو دستور دقیقاً 1 چرخه پردازنده را مصرف می کنند. به این ترتیب زمان بیت 723.38 ns را می توان با 11 تا 12 دستورالعمل آردوینو در هر بیت منتقل شده پوشش داد. یک نکته را باید در نظر گرفت: دستور OUT یک بایت کامل را یکجا تنظیم می کند ، بنابراین ما باید PORTx را انتخاب کنیم که مشکلی در آن وجود ندارد. استفاده از ATMEGA328P-PU به عنوان مثال PORTD (پین های آردوینو 0-7) برای این شرایط مناسب است. پس از تنظیم بیت ، فقط زمان مناسب باید سپری شود که توسط 10 تا 11 NOP انجام می شود و تمام.
جزئیات محاسبه را می توانید در فایل اکسل زیر بیابید. این فایل دستورالعمل های لازم را برای برنامه ایجاد کرد. پس از چسباندن کد تولید شده ، تنها چند جایگزین باید انجام شود.
مرحله 4: خواندن بیشتر/ بهبود امکانات
- شاید بتوان با استفاده از تکنیک توضیح داده شده در مرحله قبل ، کتابخانه ای سریعتر SoftwareSerial ساخت.
- FedericoK2 ابزاری عالی ساخته است که کد بازیابی HC-06 را برای هر نرخ بیت ممکن تولید می کند. از اینجا به سایت دسترسی پیدا کنید: https://tools.krum.com.ar/save_your_hc-06/ با تشکر FedericoK2
توصیه شده:
پیکربندی سریال HC-05 از طریق بلوتوث: 10 مرحله
پیکربندی سریال HC-05 از طریق بلوتوث: در حالی که از دستگاه های Android و ماژول های HC-05 Bluetooth SPP برای برخی از پروژه های آردوینو استفاده می کردم ، می خواستم نرخ اتصال HC-05 و سایر پارامترها را بدون اتصال به درگاه USB رایانه بررسی و تغییر دهم. ماژول HC-05 سریال و Blu را به هم متصل می کند
بازیابی یا ارتقاء سیستم عامل در ماژول ESP8266 (ESP-01) با استفاده از Arduino UNO: 7 مرحله
بازیابی یا ارتقاء سیستم عامل در ماژول ESP8266 (ESP-01) با استفاده از Arduino UNO: ماژول ESP-01 که در ابتدا استفاده کردم دارای سیستم عامل قدیمی تر AI Thinker بود ، که از آنجا که بسیاری از دستورات مفید AT پشتیبانی نمی شوند ، قابلیت های آن را محدود می کند. به طور کلی ایده خوبی است که سیستم عامل خود را برای رفع اشکال ارتقا دهید و همچنین بسته به
تایمر NE555 - پیکربندی تایمر NE555 در پیکربندی Astable: 7 مرحله
تایمر NE555 | پیکربندی تایمر NE555 در پیکربندی Astable: تایمر NE555 یکی از رایج ترین IC ها در دنیای لوازم الکترونیکی است. به شکل DIP 8 است ، یعنی دارای 8 پین است
نحوه بازیابی پیکربندی آرایه RAID به صورت رایگان: 9 مرحله
نحوه بازیابی پیکربندی آرایه RAID به صورت رایگان: بنابراین ، با شکست پیکربندی آرایه روبرو شدید و دسترسی به داده ها را از دست داده اید ، هرچند که هنوز روی دیسک های عضو ذخیره شده است. در این آموزش می خواهم نحوه بازیابی پیکربندی آرایه را به صورت رایگان به شما نشان دهم. می توانید از این دستورالعمل برای
اسکریپت برای پیکربندی پیکربندی های نقطه دسترسی بی سیم Linksys: 5 مرحله
Script to Backup Linksys Wireless Access Point Configurations: این دستورالعمل اسکریپتی را نشان می دهد که می تواند برای خودکار تهیه نسخه پشتیبان از پیکربندی های نقطه دسترسی بی سیم linksys استفاده شود. در واقع این را می توان به راحتی برای پشتیبان گیری تقریباً از هر دستگاه linkys ویرایش کرد