جدول المحتويات:
- الخطوة 1: ما سوف تحتاجه
- الخطوة الثانية: الحل
- الخطوة الثالثة: ما وراء الكواليس …
- الخطوة 4: مزيد من القراءة / تحسين الإمكانيات
فيديو: استعادة وحدة البلوتوث HC-06 التي تم تكوينها بشكل غير صحيح: 4 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
من أصل أقصى حد ، قمت بتكوين وحدة HC-06 Bluetooth (التابعة) الخاصة بي بمعدل باود 1 ، 382 ، 400 باود باستخدام الأمر AT + BAUDC. منذ أن تم توصيل Arduino به لم يكن قادرًا على استخدام الوحدة مع مكتبة SoftwareSerial. حاولت استعادة معدل البث بالباود من خلال مسلسل أجهزة Arduino (الدبابيس 0 و 1) دون أي حظ.
حاولت أيضًا البحث في Google عن الموضوع دون إيجاد حل مقبول. ربما كان استخدام المنفذ التسلسلي المدمج بجهاز الكمبيوتر حلاً (مع تغيير مستوى المنطق من 12 فولت إلى 3 فولت 3) ، لكن جهاز الكمبيوتر الخاص بي لا يحتوي على هذا المنفذ القديم ، لذلك كان علي أن أتوصل إلى حل آخر.
الخطوة 1: ما سوف تحتاجه
- لوحة Arudino / Genuino مع الافتراضي Atmel ATMEGA328P-PU MCU (@ 16 ميجا هرتز).
- وحدة بلوتوث HC-06 تستمع على 1 ، 382 ، 400 باود
- IDE الأساسي اردوينو من
الخطوة الثانية: الحل
يرجى ملاحظة أن Instructable والحل مصنوع لسيناريو 1 ، 382 ، 400 باود (AT + BAUDC). لن يعمل الحل مع أي معدلات باود أخرى. للتعامل مع الحالات الأخرى ، يرجى الرجوع إلى الخطوات التي تبدأ من الخطوة 3.
الحل بسيط حقا.
- قم بتوصيل دبوس HC-06's VCC إلى دبوس 5V من Arduino.
- قم بتوصيل دبوس GND HC-06 بدبوس GND في Arduino.
- قم بتوصيل دبوس RXD الخاص بـ HC-06 بالدبوس 2 من Arduino.
- اترك دبوس TXD الخاص بـ HC-06 غير متصل (أو اتصل بالدبوس 8).
- تحميل رسم hc06reset.ino.
- سيقوم البرنامج بتعيين HC-06 في 115 ، 200 وضع الباود (AT + BAUD8).
- استخدم وحدة HC-06 المستردة كما كان من قبل.
الخطوة الثالثة: ما وراء الكواليس …
مكتبة SoftwareSerial التي تأتي مع Arduino IDE قادرة على الإرسال بحد أقصى 115 ، 200 بت / ثانية ، لذلك فهي ليست بالسرعة الكافية للتواصل على المعدل المطلوب 1 ، 382 ، 400 باود. بالنظر إلى أن لوحة Arduino الافتراضية تعمل على 16 ميجاهرتز ، فإن الحد الأقصى النظري لمعدل البت غير المضغوط هو 16 ، 000 ، 000 بت / ثانية. نحن بخير حتى الآن!
بناءً على فهمي لبرنامج SoftwareSerial.cpp ، يتم إجراء الاتصال السيالي عن طريق تعيين طرف إخراج مرتفع (= 1) أو منخفض (= 0) فيما يتعلق بالتأخير (الذي يأتي من معدل البث بالباود) بين التغييرات.
- يكون دبوس الإخراج مرتفعًا بشكل افتراضي (يعني عدم وجود بيانات) ، إذن
- يتم إرسال بت البداية (الذي يسحب الدبوس منخفضًا) ، ثم
- يتم إرسال 8 بتات من البيانات من LSB إلى MSB ، (+ 5V عندما تكون البتة 1 و 0 بخلاف ذلك)
- يتم إرسال بت التوقف (الذي يسحب الدبوس عالياً)
بهذه الطريقة يتم إرسال 1 بايت باستخدام 10 بتات.
الرسالة التي يجب أن نرسلها هي AT + BAUD8 (بدون / n ، / r في النهاية). يعيد هذا الأمر HC-06 إلى 115 ، 200 معدل الباود الذي يمكن للمكتبات العادية التعامل معه.
من أجل إرسال وحدات بت بسرعة 1 ، 382 ، 400 بت / ثانية ، لكل بتة 1/1 ، 382 ، 400 ثانية (أي 723.38 نانوثانية تقريبًا) لكل بت. يعمل Arduino على 16 ، 000 ، 000 ميجاهرتز ، لذلك تستمر كل دورة 1/16 ، 000 ، 000 ثانية - أي 62.5 نانوثانية لكل دورة.
باستخدام كود تجميع AVR ، يمكننا استخدام الأمر OUT لتعيين دبوس الإخراج مرتفعًا أو منخفضًا و NOP لانتظار دورة وحدة معالجة مركزية واحدة بالضبط. كلا الأمرين يلتهم بالضبط دورة وحدة المعالجة المركزية 1. بهذه الطريقة يمكن تغطية وقت البت 723.38 نانوثانية من خلال 11 إلى 12 تعليمات اردوينو لكل بت مرسلة. شيء واحد يجب مراعاته: يقوم الأمر OUT بتعيين بايت كامل في وقت واحد ، لذلك يتعين علينا تحديد PORTx حيث لا يمثل هذا مشكلة. يعد استخدام ATMEGA328P-PU على سبيل المثال PORTD (دبابيس اردوينو 0-7) مثاليًا لهذه الحالة. بعد ضبط البت ، يجب أن ينقضي الوقت المناسب فقط وهو ما يتم بواسطة 10 إلى 11 NOPs وهذا كل شيء.
يمكنك العثور على تفاصيل الحساب في ملف Excel أدناه. أنشأ هذا الملف التعليمات الجماعية المطلوبة للبرنامج. كان لا بد من إجراء عدد قليل من الاستبدالات بعد لصق الكود الذي تم إنشاؤه.
الخطوة 4: مزيد من القراءة / تحسين الإمكانيات
- ربما يمكن إنشاء مكتبة SoftwareSerial أسرع باستخدام التقنية الموضحة في الخطوة السابقة.
- صنع FedericoK2 أداة رائعة تنشئ رمز استرداد HC-06 لكل معدل بت محتمل. ادخل إلى الموقع هنا: https://tools.krum.com.ar/save_your_hc-06/ شكرًا FedericoK2
موصى به:
كيف تقيس بشكل صحيح استهلاك الطاقة لوحدات الاتصال اللاسلكي في عصر انخفاض استهلاك الطاقة؟: 6 خطوات
كيف يمكن قياس استهلاك الطاقة بشكل صحيح لوحدات الاتصال اللاسلكي في عصر انخفاض استهلاك الطاقة ؟: يعد استهلاك الطاقة المنخفض مفهومًا مهمًا للغاية في إنترنت الأشياء. تحتاج معظم عقد إنترنت الأشياء إلى أن تعمل بالبطاريات. فقط من خلال قياس استهلاك الطاقة للوحدة اللاسلكية بشكل صحيح ، يمكننا تقدير مقدار البطارية بدقة
كيفية إيقاف تشغيل RASPBERRY PI بشكل صحيح: 5 خطوات
كيفية إيقاف تشغيل RASPBERRY PI بشكل صحيح: ربما يتساءل كل مستخدم RPi مرة عن كيفية إيقاف تشغيل Raspberry Pi؟ لا يمكنك فقط إيقاف تشغيل الطاقة. إذا قمت بذلك ، فمن المحتمل جدًا أن تتلف بطاقة SD ذات يوم ولن يبدأ RPi الخاص بك. يجب عليك أولاً إيقاف تشغيل نظام التشغيل ، وعندها فقط يمكنك
مصابيح LED للأسلاك متسلسلة بشكل صحيح مقابل توصيل متوازي: 6 خطوات
توصيل مصابيح LED للأسلاك بشكل صحيح من السلسلة Vs المتوازية: في هذا الدليل ، نتحدث عن LED - الثنائيات الباعثة للضوء وكيف يمكننا توصيلها إذا كان لدينا وحدات متعددة. هذا درس واحد أتمنى أن أعرفه منذ البداية لأنني عندما بدأت في العبث بالدوائر الإلكترونية قمت ببناء القليل
كيفية إنهاء كبلات الكمبيوتر بشكل صحيح: 7 خطوات
كيفية إنهاء كبلات الكمبيوتر بشكل صحيح: لقد اكتشفت للتو طريقة مجنونة لتنظيف تلك الكابلات القبيحة التي يتعين علينا جميعًا استخدامها بشكل صحيح. ربما تكون قد رأيت هذه على موصلات الإدخال / الإخراج الأمامية أو رؤوس USB الداخلية. أخيرًا ، لا مزيد من قطع الكاتشب والخردل الصغيرة المزعجة التي تدمر
كلمات المرور: كيف نفعلها بشكل صحيح: 10 خطوات
كلمات المرور: كيف نفعلها بشكل صحيح: في وقت سابق من هذا العام ، فقدت زوجتي الوصول إلى بعض حساباتها. تم أخذ كلمة المرور الخاصة بها من موقع تم اختراقه ، ثم تم استخدامها للدخول إلى حسابات أخرى. لم يكن الأمر كذلك حتى بدأت المواقع في إخطارها بمحاولات تسجيل الدخول الفاشلة حتى أدركت أي شيء