Mündəricat:

Yanlış qurulmuş HC-06 Bluetooth Modulunu bərpa edin: 4 addım
Yanlış qurulmuş HC-06 Bluetooth Modulunu bərpa edin: 4 addım

Video: Yanlış qurulmuş HC-06 Bluetooth Modulunu bərpa edin: 4 addım

Video: Yanlış qurulmuş HC-06 Bluetooth Modulunu bərpa edin: 4 addım
Video: Introduction to M5Stack Core2 ESP32 2" Display Development Module -Robojax 2024, Noyabr
Anonim
Yanlış qurulmuş HC-06 Bluetooth Modulunu bərpa edin
Yanlış qurulmuş HC-06 Bluetooth Modulunu bərpa edin

Saf maximalizmdən, AT+BAUDC əmri ilə HC-06 Bluetooth (qul) modulumu 1, 382, 400 baud sürətinə qurdum. Arduino ona qoşulduğundan bəri modulu SoftwareSerial kitabxanası ilə istifadə edə bilmədi. Baud sürətini Arduino -nun aparat seriyası ilə (0 və 1 sancaqlar) heç bir şans olmadan bərpa etməyə çalışdım.

Mən də keçilməz bir həll tapmadan mövzunu Google -a sınadım. Bəlkə də bir kompüterin qurulmuş seriyalı portunu istifadə etmək bir həll ola bilərdi (12V -dən 3V3 -ə qədər məntiq səviyyəsi dəyişməsi ilə), amma kompüterimdə bu köhnəlmiş port yoxdur, buna görə başqa bir həll tapmalı oldum.

Addım 1: Nə lazımdır

Ehtiyacınız olacaq
Ehtiyacınız olacaq
  • Varsayılan Atmel ATMEGA328P-PU MCU (@16MHz) ilə Arudino/Genuino lövhəsi.
  • HC-06 Bluetooth modulu 1, 382, 400 baud dinləyir
  • Https://www.arduino.cc saytından əsas arduino IDE

Addım 2: Həll

Həll
Həll
Həll
Həll

Nəzərə alın ki, bu Təlimat və həll 1, 382, 400 baud (AT+BAUDC) ssenarisi üçün hazırlanmışdır. Həll başqa heç bir baud dərəcəsi üçün işləməyəcək. Digər halları həll etmək üçün 3 -cü addımdan başlayaraq addımlara baxın.

Həll həqiqətən sadədir.

  1. HC-06-nın VCC pinini 5V Arduino pininə qoşun.
  2. HC-06-nın GND pinini Arduinonun GND pininə qoşun.
  3. HC-06-nın RXD pinini Arduinonun 2-ci pininə qoşun.
  4. HC-06-nın TXD pinini əlaqəsiz qoyun (və ya pin 8-ə qoşulun).
  5. Hc06reset.ino eskizini yükləyin.
  6. Proqram HC-06-nı 115, 200 baud rejiminə (AT+BAUD8) qoyacaq.
  7. Bərpa edilmiş HC-06 modulunu əvvəlki kimi istifadə edin.

Addım 3: Pərdə Arxasında…

Pərdə Arxasında…
Pərdə Arxasında…
Pərdə Arxasında…
Pərdə Arxasında…

Arduino IDE ilə birlikdə gələn SoftwareSerial kitabxanası saniyədə ən çox 115, 200 bit ötürmə qabiliyyətinə malikdir, buna görə də istədiyiniz 1, 382, 400 baud sürətində ünsiyyət qurmaq üçün kifayət qədər sürətli deyil. Varsayılan Arduino lövhəsinin 16 MHz -də işlədiyini nəzərə alsaq, nəzəri sıxılmamış maksimum bit sürəti 16 000 000 bit/san -dir. İndiyə qədər yaxşıyıq!

SoftwareSerial.cpp anlayışıma əsaslanaraq, dəyişikliklər arasında gecikmə (baud sürətindən qaynaqlanan) ilə əlaqədar olaraq yüksək (= 1) və ya Aşağı (= 0) çıxış pinini təyin etməklə əlaqə qurulur.

  • Çıxış pimi standart olaraq yüksəkdir (məlumat yoxdur deməkdir)
  • bir başlanğıc biti ötürülür (pimi aşağı çəkir), sonra
  • LSB -dən MSB -yə ötürülən 8 bit məlumat, (bit 1 və 0 olmadıqda+5V) sonra
  • Stop biti ötürülür (pimi yüksək çəkir)

Bu yolla 1 bayt 10 bit istifadə edərək ötürülür.

Göndərməli olduğumuz mesaj AT+BAUD8 -dir (sonunda / n, / r olmadan). Bu əmr, HC-06-nı adi kitabxanalar tərəfindən idarə oluna bilən 115, 200 baud sürətinə qaytarır.

1, 382, 400 bit/saniyə sürətlə bit göndərmək üçün hər bit üçün 1/1, 382, 400 saniyə (təxminən 723.38 ns) vaxtımız var. Arduino 16 000 000 Mhz -də işləyir, buna görə hər bir dövr 1/16 000 000 saniyə davam edir - bu dövrü 62,5 ns -dir.

AVR montaj kodundan istifadə edərək, çıxış pinini yüksək və ya aşağı və NOP -u tam olaraq bir CPU dövrü gözləmək üçün OUT əmrindən istifadə edə bilərik. Hər iki əmr tam olaraq 1 cpu dövrəsini yeyir. Bu yolla 723.38 ns bit vaxtı, ötürülən bit başına 11-12 arduino təlimatı ilə əhatə oluna bilər. Nəzərə alınmalı bir şey: OUT əmri bir anda bütün bir baytı təyin edir, buna görə də bunun problem olmadığı bir PORTx seçməliyik. ATMEGA328P-PU istifadə edərək, məsələn, PORTD (arduino pinləri 0-7) bu vəziyyət üçün idealdır. Biti qurduqdan sonra, 10 -dan 11 -ə qədər NOP tərəfindən yerinə yetirilən yalnız uyğun vaxt keçməlidir.

Aşağıdakı Excel faylında hesablama təfərrüatlarını tapa bilərsiniz. Bu fayl proqram üçün tələb olunan assemly təlimatlarını yaratdı. Yaradılan kodu yapışdırdıqdan sonra yalnız bir neçə dəyişdirmə edilməli idi.

Addım 4: Əlavə Oxu/ Təkmilləşdirmə İmkanları

  • Bəlkə də əvvəlki addımda təsvir olunan texnikadan istifadə edərək daha sürətli bir SoftwareSerial kitabxanası yaradıla bilər.
  • FedericoK2, hər bit sürəti üçün HC-06 bərpa kodunu yaradan əla bir vasitə etdi. Sayta buradan daxil olun: https://tools.krum.com.ar/save_your_hc-06/ Təşəkkürlər FedericoK2

Tövsiyə: