Tartalomjegyzék:
- 1. lépés: Amire szüksége lesz
- 2. lépés: A megoldás
- 3. lépés: A színfalak mögött…
- 4. lépés: További olvasási/ fejlesztési lehetőségek
Videó: Helytelenül konfigurált HC-06 Bluetooth modul helyreállítása: 4 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
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
- 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
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ű.
- Csatlakoztassa a HC-06 VCC csapját az Arduino 5 V-os csatlakozójához.
- Csatlakoztassa a HC-06 GND csapját az Arduino GND csapjához.
- Csatlakoztassa a HC-06 RXD csapját az Arduino 2. tűjéhez.
- Hagyja elcsatlakoztatva a HC-06 TXD csapját (vagy csatlakoztassa a 8. tűhöz).
- Töltse fel a hc06reset.ino vázlatot.
- A program a HC-06-ot 115, 200 baud módba állítja (AT+BAUD8).
- Használja a visszanyert HC-06 modult, mint korábban.
3. lépés: 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:
A Bluetooth fülhallgató helyreállítása: 6 lépés
A Bluetooth fülhallgató helyreállítása: Valószínűleg néhány perc probléma miatt elhagyta a Bluetooth -ot és a vezetékes fülhallgatót. Ezek közé tartozhatnak többek között a törött fülhallgatóház, a kábelek belső szakadása, a sérült dugók. Általában ezek a sérült eszközök felhalmozódnak
A második világháborús korszak multiméterének működőképes helyreállítása: 3 lépés
A második világháborús korszak multiméterének működőképes helyreállítása: Néhány évvel ezelőtt beszereztem ezt a korai Simpson Electric multimétert a gyűjteményemhez. Fekete műbőr tokban érkezett, ami korához képest kiváló állapotban volt. Az amerikai szabadalmi hivatal szabadalmaztatta a mérőmozgást 1936 -ban
A régi PC tápegységek helyreállítása: 12 lépés (képekkel)
Régi PC -tápegységek helyreállítása: Az 1990 -es évek óta a világot PC -k támadják meg. A helyzet a mai napig tart. A régebbi számítógépek 2014 -ig … 2015 -ig nagyrészt használaton kívül vannak. Mivel minden számítógép rendelkezik tápegységgel, nagy számban hagyják el őket hulladék formájában
Törött váza helyreállítása Kintsugival: 8 lépés
Törött váza helyreállítása Kintsugival: Ez a kis büdös (a következő képen látható) eltörte a vázámat, és ahelyett, hogy eldobnám, úgy döntöttem, hogy helyreállítom a kintsugi segítségével
Az SSS konfigurált gitárfogó forrasztása: 3 lépés
Egy SSS konfigurált gitárrögzítő forrasztása: Az utasításban végigmegyek a saját SSS gitárvédő bekötésének folyamatán. Először is, ha ezt a projektet végzi, próbálja meg tisztességesen megérteni a folyamatba tartozó részeket. Az SSS formátum alapvetően három