Taula de continguts:
- Pas 1: què necessiteu
- Pas 2: la solució
- Pas 3: darrere de les escenes …
- Pas 4: Possibilitats de lectura / millora addicionals
Vídeo: Recupereu el mòdul Bluetooth HC-06 mal configurat: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Per pur maximalisme, vaig configurar el meu mòdul Bluetooth (esclau) HC-06 a una velocitat de baud d’1, 382, 400 baud amb la comanda AT + BAUDC. Des que Arduino es va connectar a ell, no va poder utilitzar el mòdul amb la biblioteca SoftwareSerial. Vaig intentar restaurar la velocitat de transmissió amb la sèrie de maquinari d'Arduino (pins 0 i 1) sense sort.
També vaig provar de Google el tema sense trobar una solució acceptable. Potser fer servir un port sèrie integrat en un ordinador podria haver estat una solució (amb un desplaçament lògic de 12V a 3V3), però el meu ordinador no té aquest port obsolet, així que vaig haver de trobar una altra solució.
Pas 1: què necessiteu
- Placa Arudino / Genuino amb el MCU Atmel ATMEGA328P-PU per defecte (@ 16MHz).
- Un mòdul Bluetooth HC-06 que escolta a 1, 382, 400 baud
- IDE bàsic d’arduino de
Pas 2: la solució
Tingueu en compte que aquest instructiu i la solució es fan per a escenaris d'1, 382, 400 baud (AT + BAUDC). La solució no funcionarà per a cap altra velocitat de transmissió. Per tractar altres casos, consulteu els passos que comencen des del pas 3.
La solució és realment senzilla.
- Connecteu el pin VCC de l'HC-06 al pin 5V d'Arduino.
- Connecteu el pin GND de l'HC-06 al pin GND d'Arduino.
- Connecteu el pin RXD de l'HC-06 al pin 2 d'Arduino.
- Deixeu el pin TXD de l'HC-06 sense connectar (o connecteu-lo al pin 8).
- Pengeu un esbós hc06reset.ino.
- El programa configurarà HC-06 en mode 115, 200 baud (AT + BAUD8).
- Utilitzeu el mòdul HC-06 recuperat com abans.
Pas 3: darrere de les escenes …
La biblioteca SoftwareSerial que ve amb Arduino IDE és capaç de transmetre com a màxim 115, 200 bits / segon, de manera que no és prou ràpid per comunicar-se amb la velocitat desitjada d’1, 382, 400 baud. Tenint en compte que una placa Arduino per defecte funciona a 16 MHz, la taxa de bits màxima sense comprimir teòrica és de 16, 000, 000 bits / seg. Fins ara estem bé!
Segons la meva comprensió de SoftwareSerial.cpp, la comunicació de senyal es realitza establint un pin de sortida Alt (= 1) o Baix (= 0) pel que fa a un retard (que prové de la velocitat en bauds) entre els canvis.
- El pin de sortida és elevat per defecte (significa que no hi ha dades)
- es transmet un bit d'inici (que fa baixar el pin), llavors
- 8 bits de dades transmeses de LSB a MSB, (+ 5V quan el bit 1 i 0 en cas contrari)
- es transmet un bit de parada (que estira el pin cap amunt)
D'aquesta manera es transmet 1 byte mitjançant 10 bits.
El missatge que hem d’enviar és AT + BAUD8 (sense / n, / r al final). Aquesta ordre torna a configurar l'HC-06 a una velocitat de 115, 200 baud que poden ser manejades per les biblioteques habituals.
Per tal d’enviar bits amb velocitat d’1, 382, 400 bits / seg, per a cada bit tenim 1/1, 382, 400 segons de temps (aproximadament 723,38 ns) per a cada bit. Arduino funciona amb 16, 000, 000 Mhz, de manera que cada cicle dura 1/16, 000, 000 segons, és a dir, 62,5 ns per cicle.
Mitjançant el codi de muntatge AVR podem utilitzar l'ordre OUT per configurar el pin de sortida alt o baix i NOP per esperar exactament un cicle de CPU. Les dues ordres mengen exactament 1 cicle de CPU. D'aquesta manera, el temps de bit de 723,38 ns es pot cobrir d'11 a 12 instruccions d'arduino per bit transmès. Una cosa a tenir en compte: l'ordre OUT estableix tot un byte alhora, de manera que hem de seleccionar un PORTx on això no sigui un problema. Utilitzar ATMEGA328P-PU per exemple, PORTD (pins arduino 0-7) és perfecte per a aquesta condició. Després de configurar el bit, només ha de transcórrer el temps adequat que es fa entre 10 i 11 NOPs i ja està.
Podeu trobar els detalls del càlcul al fitxer Excel següent. Aquest fitxer va generar les instruccions necessàries per al programa. Només s’havien de fer algunes substitucions després d’enganxar el codi generat.
Pas 4: Possibilitats de lectura / millora addicionals
- Potser es pot fer una biblioteca SoftwareSerial més ràpida mitjançant la tècnica descrita al pas anterior.
- FedericoK2 ha creat una gran eina que genera el codi de recuperació HC-06 per a totes les velocitats de bits possibles. Accediu al lloc aquí: https://tools.krum.com.ar/save_your_hc-06/ Gràcies FedericoK2
Recomanat:
Recupereu l'auricular Bluetooth: 6 passos
Recupereu els auriculars Bluetooth: probablement haureu abandonat els auriculars Bluetooth i per cable, a causa d’alguns problemes mínims. Aquests problemes poden incloure la carcassa dels auriculars trencats, trencaments interns dels cables, endolls danyats, entre d’altres. Normalment, aquests dispositius danyats s’acumulen
Soldar un pickguard de guitarra configurat SSS: 3 passos
Soldar un pickguard de guitarra configurat SSS: en el que es pot instruir, passaré pel procés de cablejat del vostre propi pickguard de guitarra SSS. En primer lloc, si esteu fent aquest projecte, heu d’intentar tenir una bona comprensió de les parts que intervenen en el procés. El format SSS és bàsicament tres
El botó del mal: això era dolent: 11 passos
The Evil Button: That Was Evil: Truqueu el botó Easy de Staples per oferir frases personalitzades i tenir un nou aspecte de Halloween elegant. Què necessiteu per a aquest projecte: Un Staples Easy Button (Dure) Un petit dispositiu de gravació i reproducció de Radio Shack, però un YakBak pot fer-ho, o
No llenceu els telèfons amb mal cap! Corregiu-los: 9 passos
No llenceu els telèfons amb mal cap! Corregiu-los: els meus auriculars gairebé sempre es trenquen al mateix lloc. en lloc de llançar-los i gastar 10 o 20 dòlars per un parell nou, vaig comprar algunes peces petites i vaig arreglar el meu parell vell. no és massa difícil si tens una mica de temps
Recupereu dades d'un ordinador mort: 4 passos
Recuperar dades d’un ordinador mort: consisteix a treure el disc dur de la màquina morta i fer que sembli un disc dur extern en un altre equip. Necessitareu: Un segon ordinador Un disc dur extern Nota: el disc dur extern ha de ser del mateix tipus que l’HDD objectiu