Tartalomjegyzék:

Helytelenül konfigurált HC-06 Bluetooth modul helyreállítása: 4 lépés
Helytelenül konfigurált HC-06 Bluetooth modul helyreállítása: 4 lépés

Videó: Helytelenül konfigurált HC-06 Bluetooth modul helyreállítása: 4 lépés

Videó: Helytelenül konfigurált HC-06 Bluetooth modul helyreállítása: 4 lépés
Videó: Ulefone Armor Mini 2 - НАДЁЖНАЯ ЗВОНИЛКА / ОБЗОР В ДЕТАЛЯХ 2024, November
Anonim
Helytelenül konfigurált HC-06 Bluetooth modul helyreállítása
Helytelenül konfigurált HC-06 Bluetooth modul helyreállítása

Tiszta maximalizmusból az AT+BAUDC paranccsal konfiguráltam a HC-06 Bluetooth (slave) modulomat 1, 382, 400 baudos átviteli sebességre. Amióta a hozzá csatlakoztatott Arduino nem tudta használni a modult a SoftwareSerial könyvtárral. Megpróbáltam visszaállítani az átviteli sebességet az Arduino hardveres sorosával (0 és 1 érintkező), de nem jártam sikerrel.

Én is megpróbáltam google -zni a témában anélkül, hogy elfogadható megoldást találtam volna. Lehet, hogy a számítógép beépített soros portjának használata jelenthetett volna megoldást (12V -3V3 logikai szintváltással), de a számítógépemen nincs ez az elavult port, ezért más megoldást kellett találnom.

1. lépés: Amire szüksége lesz

Amire szüksége lesz
Amire szüksége lesz
  • Arudino/Genuino kártya alapértelmezett Atmel ATMEGA328P-PU MCU-val (@16MHz).
  • Egy HC-06 Bluetooth modul hallgat 1, 382, 400 baudon
  • Alapvető arduino IDE a https://www.arduino.cc webhelyről

2. lépés: A megoldás

A megoldás
A megoldás
A megoldás
A megoldás

Kérjük, vegye figyelembe, hogy ez az utasítás és a megoldás 1, 382, 400 baud (AT+BAUDC) forgatókönyvre készült. A megoldás semmilyen más adatátviteli sebességgel nem működik. Más esetek kezeléséhez olvassa el a 3. lépéstől kezdődő lépéseket.

A megoldás valóban egyszerű.

  1. Csatlakoztassa a HC-06 VCC csapját az Arduino 5 V-os csatlakozójához.
  2. Csatlakoztassa a HC-06 GND csapját az Arduino GND csapjához.
  3. Csatlakoztassa a HC-06 RXD csapját az Arduino 2. tűjéhez.
  4. Hagyja elcsatlakoztatva a HC-06 TXD csapját (vagy csatlakoztassa a 8. tűhöz).
  5. Töltse fel a hc06reset.ino vázlatot.
  6. A program a HC-06-ot 115, 200 baud módba állítja (AT+BAUD8).
  7. Használja a visszanyert HC-06 modult, mint korábban.

3. lépés: A színfalak mögött…

A színfalak mögött…
A színfalak mögött…
A színfalak mögött…
A színfalak mögött…

Az Arduino IDE -vel szállított SoftwareSerial könyvtár legfeljebb 115, 200 bit/másodperc átvitelre képes, így nem elég gyors a kívánt 1, 382, 400 baud sebességű kommunikációhoz. Tekintettel arra, hogy az alapértelmezett Arduino kártya 16 MHz -en fut, az elméleti tömörítetlen maximális bitráta 16 000 000 bit/sec. Eddig jóban vagyunk!

A SoftwareSerial.cpp szoftverrel kapcsolatos ismereteim alapján a szekcionális kommunikáció úgy történik, hogy a kimeneti tűt Magas (= 1) vagy Alacsony (= 0) értékre állítja a változások közötti késleltetésre (amely az átviteli sebességből származik).

  • A kimeneti csap alapértelmezés szerint magas (azaz nincs adat)
  • a Startbit továbbításra kerül (ami lehúzza a csapot), majd
  • 8 bit adatot továbbít az LSB -ről az MSB -re, (+5V, ha az 1. és 0. bit egyébként)
  • Stop bit kerül továbbításra (ami magasra húzza a csapot)

Ily módon 1 bájt 10 bit használatával kerül továbbításra.

Az üzenet, amelyet el kell küldenünk, AT+BAUD8 (n, / r nélkül). Ez a parancs visszaállítja a HC-06 115, 200 baud sebességét, amelyet a szokásos könyvtárak kezelhetnek.

Annak érdekében, hogy biteket küldjünk 1, 382, 400 bit/sec sebességgel, minden bithez 1/1, 382, 400 másodperc időnk van (ez nagyjából 723,38 ns) minden bitre. Az Arduino 16 000 000 Mhz -en fut, tehát minden ciklus 1/16 000 000 másodpercig tart - ez 62,5 ns ciklusonként.

Az AVR összeállítási kód használatával az OUT paranccsal állíthatjuk a kimeneti tűt magasra vagy alacsonyra, a NOP -t pedig pontosan egy CPU -ciklusra. Mindkét parancs megegyezik pontosan 1 CPU -ciklussal. Ily módon a 723,38 ns bites időt 11-12 arduino utasítással lehet lefedni továbbított bitenként. Egy dolgot figyelembe kell venni: az OUT parancs egyszerre egy teljes bájtot állít be, ezért ki kell választanunk egy PORTx -ot, ahol ez nem jelent problémát. Az ATMEGA328P-PU használata, például a PORTD (arduino csapok 0-7) tökéletes erre az állapotra. A bit beállítása után csak a megfelelő időnek kell eltelnie, amit 10-11 NOP tesz meg, és ennyi.

A számítás részleteit az alábbi Excel fájlban találja. Ez a fájl generálta a programhoz szükséges alapos utasításokat. A generált kód beillesztése után csak néhány cserét kellett végrehajtani.

4. lépés: További olvasási/ fejlesztési lehetőségek

  • Talán gyorsabb SoftwareSerial könyvtár készíthető az előző lépésben leírt technikával.
  • A FedericoK2 készített egy nagyszerű eszközt, amely minden lehetséges bitrátához előállítja a HC-06 helyreállítási kódot. Az oldalt itt érheti el: https://tools.krum.com.ar/save_your_hc-06/ Köszönöm FedericoK2

Ajánlott: