Obsah:
- Krok 1: Čo budete potrebovať
- Krok 2: Riešenie
- Krok 3: Zo zákulisia…
- Krok 4: Možnosti ďalšieho čítania/ zlepšovania
Video: Obnovte nesprávne nakonfigurovaný modul Bluetooth HC-06: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Z čistého maximalizmu som nakonfiguroval svoj modul HC-06 Bluetooth (slave) na prenosovú rýchlosť 1, 382, 400 baudov pomocou príkazu AT+BAUDC. Odkedy je k nemu pripojené Arduino, nebolo možné používať modul s knižnicou SoftwareSerial. Pokúsil som sa obnoviť prenosovú rýchlosť pomocou hardvérového seriálu Arduino (piny 0 a 1) bez šťastia.
Tiež som sa pokúsil vygoogliť tému bez toho, aby som našiel schodné riešenie. Riešením by mohlo byť použitie vstavaného sériového portu počítača (s logickým radením úrovní na 12 až 3 V3), ale môj počítač nemá tento zastaraný port, takže som musel prísť s iným riešením.
Krok 1: Čo budete potrebovať
- Doska Arudino/Genuino s predvoleným MCU Atmel ATMEGA328P-PU (@16 MHz).
- Modul Bluetooth HC-06 počúvajúci 1, 382, 400 baudov
- Základné IDE arduina z
Krok 2: Riešenie
Upozorňujeme, že tento návod a riešenie sú navrhnuté pre scenár 1 382 400 baudov (AT+BAUDC). Riešenie nebude fungovať pri iných prenosových rýchlostiach. Ak sa chcete zaoberať inými prípadmi, postupujte podľa krokov od kroku 3.
Riešenie je skutočne jednoduché.
- Pripojte kolík VCC HC-06 k 5V kolíku Arduino.
- Pripojte GND pin HC-06 k GND pinu Arduina.
- Pripojte pin RXD HC-06 k pinu 2 Arduino.
- Nechajte kolík TXD HC-06 neodpojený (alebo pripojte na pin 8).
- Nahrajte skicu hc06reset.ino.
- Program nastaví HC-06 do režimu 115 200 baudov (AT+BAUD8).
- Obnovený modul HC-06 používajte ako predtým.
Krok 3: Zo zákulisia…
Knižnica SoftwareSerial, ktorá je dodávaná s Arduino IDE, je schopná prenášať maximálne 115 200 bitov za sekundu, takže nie je dostatočne rýchla na komunikáciu s požadovanou prenosovou rýchlosťou 1 382 400 400 bitov. Vzhľadom na to, že predvolená doska Arduino beží na 16 MHz, teoretická maximálna nekomprimovaná bitová rýchlosť je 16 000 000 bitov/s. Zatiaľ sme dobrí!
Na základe môjho chápania SoftwareSerial.cpp sa sériová komunikácia uskutočňuje nastavením výstupného kolíka High (= 1) alebo Low (= 0) vzhľadom na oneskorenie (ktoré pochádza z prenosovej rýchlosti) medzi zmenami.
- Výstupný pin je v predvolenom nastavení vysoký (znamená to, že nie sú k dispozícii žiadne údaje)
- a vyšle sa štartovací bit (ktorý vytiahne kolík nízko), potom
- 8 bitov dát prenášaných z LSB do MSB, (+5 V, keď bit 1 a 0 inak) potom
- je odoslaný stop bit (ktorý vytiahne kolík vysoko)
Týmto spôsobom sa 1 bajt prenesie pomocou 10 bitov.
Správa, ktorú musíme odoslať, je AT+BAUD8 (bez / n, / r na konci). Tento príkaz nastaví HC-06 späť na 115 200 baud rate, ktorú môžu zvládnuť bežné knižnice.
Aby sme odoslali bity rýchlosťou 1, 382, 400 bitov/s, pre každý bit máme 1/1, 382, 400 sekúnd (čo je zhruba 723,38 ns) pre každý bit. Arduino beží na 16 000 000 000 MHz, takže každý cyklus trvá 1/16 000 000 sekúnd - to je 62,5 ns na cyklus.
Pomocou montážneho kódu AVR môžeme pomocou príkazu OUT nastaviť výstupný pin na nízky alebo vysoký a NOP na čakanie presne jedného cyklu CPU. Oba príkazy spotrebujú presne 1 cyklus CPU. Týmto spôsobom môže byť bitový čas 723,38 ns pokrytý 11 až 12 arduino inštrukciami na prenášaný bit. Je potrebné vziať do úvahy jednu vec: príkaz OUT nastaví celý bajt naraz, takže musíme vybrať PORTx, kde to nie je problém. Použitie ATMEGA328P-PU napríklad PORTD (arduino piny 0-7) je pre tieto podmienky perfektné. Po nastavení bitu musí uplynúť iba správny čas, ktorý sa vykoná o 10 až 11 NOP a je to.
Podrobnosti o výpočte nájdete v nižšie uvedenom súbore Excel. Tento súbor vygeneroval požadované montážne pokyny pre program. Po vložení vygenerovaného kódu bolo potrebné vykonať iba niekoľko náhrad.
Krok 4: Možnosti ďalšieho čítania/ zlepšovania
- Možno je možné rýchlejšiu knižnicu SoftwareSerial vytvoriť pomocou techniky popísanej v predchádzajúcom kroku.
- FedericoK2 vytvoril vynikajúci nástroj, ktorý generuje obnovovací kód HC-06 pre každú možnú bitovú rýchlosť. Navštívte stránku tu: https://tools.krum.com.ar/save_your_hc-06/ Ďakujem FedericoK2
Odporúča:
Obnovte svoje Bluetooth slúchadlo: 6 krokov
Obnovte svoje Bluetooth slúchadlo: Pravdepodobne ste opustili ležiace Bluetooth a káblové slúchadlá kvôli niekoľkým drobným problémom. Tieto problémy môžu okrem iného zahŕňať prasknuté puzdro slúchadla, vnútorné prerušenia káblov, poškodené zástrčky. Tieto poškodené zariadenia sa zvyčajne hromadia
Obnovte Game Boy alebo podobnú elektroniku: 7 krokov (s obrázkami)
Obnovte Game Boy alebo podobnú elektroniku: V prvom rade vám ďakujem, že ste si prečítali môj návod! Ste úžasní. Za druhé, videu YouTube som venoval veľa času, takže si ho pozrite aj vy, všetko to vysvetľuje. Video:
Obnovte žiaru (Macbook): 5 krokov
Restore the Glow (Macbook): Nedávno (pred viac ako rokom) som aktualizoval svoj verný 10 -ročný notebook Apple na nový lesklý nový Macbook pro. Celkovo som s ním bol celkom spokojný. Ale jedna vec mi chýba. Viem, že to vyzerá hlúpo, ale naozaj sa mi páčilo žiariace jablko
Obnovte alebo aktualizujte firmvér na module ESP8266 (ESP-01) pomocou Arduino UNO: 7 krokov
Obnovte alebo aktualizujte firmvér na module ESP8266 (ESP-01) pomocou Arduino UNO: Modul ESP-01, ktorý som použil, bol pôvodne dodávaný so starším firmvérom AI Thinker, ktorý obmedzuje jeho možnosti, pretože mnoho užitočných príkazov AT nie je podporovaných. Vo všeobecnosti je vhodné aktualizovať firmvér kvôli opravám chýb a tiež v závislosti od
Obnovte kľúč XP CD: 4 kroky
Obnoviť XP CD KEY: Nenávidíte, keď musíte preformátovať pevný disk alebo keď sa pokazí? Nuž, pravdepodobne si pomyslíte „Len preinštalujem“a uvedomíte si to!@#$ Stratil som nálepku pomocou svojho kľúča CD, alebo ju deti odtrhli alebo nálepku na vrchu vášho panela