INHOUDSOPGAWE:

Herstel verkeerd gekonfigureerde HC-06 Bluetooth-module: 4 stappe
Herstel verkeerd gekonfigureerde HC-06 Bluetooth-module: 4 stappe

Video: Herstel verkeerd gekonfigureerde HC-06 Bluetooth-module: 4 stappe

Video: Herstel verkeerd gekonfigureerde HC-06 Bluetooth-module: 4 stappe
Video: How to Fix “There Has Been a Critical Error on Your Website” Error 2024, Julie
Anonim
Herstel verkeerd gekonfigureerde HC-06 Bluetooth-module
Herstel verkeerd gekonfigureerde HC-06 Bluetooth-module

Uit pure maksimalisme het ek my HC-06 Bluetooth (slave) module gekonfigureer tot 'n baud rate van 1, 382, 400 baud met die AT+BAUDC opdrag. Sedert die Arduino daaraan gekoppel was, kon hy nie die module met die SoftwareSerial -biblioteek gebruik nie. Ek het probeer om die baud -koers te herstel met die hardeware -reeks van Arduino (penne 0 en 1) sonder sukses.

Ek het ook probeer om die onderwerp te Google sonder om 'n aanvaarbare oplossing te vind. Miskien sou die gebruik van 'n ingeboude seriële poort van 'n rekenaar 'n oplossing gewees het (met 12V na 3V3 logiese vlakverskuiwing), maar my rekenaar het nie hierdie verouderde poort nie, so ek moes 'n ander oplossing kry.

Stap 1: wat u benodig

Wat u benodig
Wat u benodig
  • Arudino/Genuino-bord met die standaard Atmel ATMEGA328P-PU MCU (@16MHz).
  • 'N HC-06 Bluetooth-module wat luister na 1, 382, 400 baud
  • Basiese arduino IDE vanaf

Stap 2: Die oplossing

Die oplossing
Die oplossing
Die oplossing
Die oplossing

Let asseblief daarop dat hierdie instruksies en die oplossing gemaak is vir 'n scenario van 1, 382, 400 baud (AT+BAUDC). Die oplossing werk nie vir enige ander baud -tariewe nie. Raadpleeg stappe vanaf stap 3 om ander sake te hanteer.

Die oplossing is regtig eenvoudig.

  1. Koppel HC-06 se VCC-pen aan die 5V-pen van Arduino.
  2. Koppel die GND-pen van HC-06 aan die GND-pen van Arduino.
  3. Koppel die RXD-pen van HC-06 aan pen 2 van Arduino.
  4. Laat die TXD-pen van HC-06 ongekoppel (of koppel aan pen 8).
  5. Laai hc06reset.ino -skets op.
  6. Die program stel HC-06 in 115, 200 baud-modus (AT+BAUD8).
  7. Gebruik u herstelde HC-06-module soos voorheen.

Stap 3: Agter die skerms …

Agter die skerms…
Agter die skerms…
Agter die skerms…
Agter die skerms…

Die SoftwareSerial -biblioteek wat by Arduino IDE kom, kan hoogstens 115 200 bits/sekonde oordra, so dit is nie vinnig genoeg om oor die gewenste 1, 382, 400 baud -tempo te kommunikeer nie. Aangesien 'n standaard Arduino -bord op 16MHz werk, is die teoretiese ongekomprimeerde maksimum bitsnelheid 16 000 000 bits/sek. Ons is tot dusver goed!

Op grond van my begrip van SoftwareSerial.cpp, word die seial kommunikasie gedoen deur 'n uitsetpen Hoog (= 1) of Laag (= 0) te stel ten opsigte van 'n vertraging (wat afkomstig is van die baud -tempo) tussen die veranderinge.

  • Die uitsetpen is dan standaard hoog (beteken geen data nie)
  • 'n Start -bit word dan oorgedra (wat die pen laag trek)
  • 8 stukkies data oorgedra van LSB na MSB, (+5V wanneer die bietjie 1 en 0 andersins) dan
  • 'n Stopbit word oorgedra (wat die pen hoog trek)

Op hierdie manier word 1 greep oorgedra met behulp van 10 bisse.

Die boodskap wat ons moet stuur is AT+BAUD8 (sonder / n, aan die einde). Hierdie opdrag stel die HC-06 terug op 115, 200 baud rate wat deur gewone biblioteke hanteer kan word.

Om stukkies met 'n spoed van 1, 382, 400 bis/sek te stuur, het ons 1/1, 382, 400 sekondes tyd (dit is ongeveer 723,38 ns) vir elke bis. Arduino werk op 16 000 000 Mhz, dus elke siklus duur 1/16 000 000 sekondes - dit is 62,5 ns per siklus.

Deur die AVR -monteringskode te gebruik, kan ons die OUT -opdrag gebruik om die uitvoerpen hoog of laag te stel en NOP om presies een CPU -siklus te wag. Beide opdragte eet presies 1 cpu -siklus op. Op hierdie manier kan die 723,38 ns bityd gedek word deur 11 tot 12 arduino -instruksies per gestuurde bit. Een ding om te oorweeg: die OUT -opdrag stel 'n hele byte tegelyk in, dus moet ons 'n PORTx kies waar dit nie 'n probleem is nie. Die gebruik van ATMEGA328P-PU, byvoorbeeld PORTD (arduino-penne 0-7), is ideaal vir hierdie toestand. Nadat u die bietjie ingestel het, moet slegs die regte tyd verloop, wat met 10 tot 11 NOP's gedoen word en dit is dit.

U kan die berekeningbesonderhede in die Excel -lêer hieronder vind. Hierdie lêer het die vereiste samestellingsinstruksies vir die program gegenereer. Slegs 'n paar vervangings moes gemaak word nadat die gegenereerde kode geplak is.

Stap 4: Verdere lees-/ verbeteringsmoontlikhede

  • Miskien kan 'n vinniger SoftwareSerial -biblioteek gemaak word deur die tegniek te gebruik wat in die vorige stap beskryf is.
  • FedericoK2 was 'n uitstekende hulpmiddel om die HC-06-herstelkode vir elke moontlike bitrate te genereer. Gaan hier na die webwerf: https://tools.krum.com.ar/save_your_hc-06/ Dankie FedericoK2

Aanbeveel: