Sisukord:

Valesti konfigureeritud Bluetooth-mooduli HC-06 taastamine: 4 sammu
Valesti konfigureeritud Bluetooth-mooduli HC-06 taastamine: 4 sammu

Video: Valesti konfigureeritud Bluetooth-mooduli HC-06 taastamine: 4 sammu

Video: Valesti konfigureeritud Bluetooth-mooduli HC-06 taastamine: 4 sammu
Video: #17 Таймер плановой работы DS3231 RTC | Внешний ПЛК Arduino 2024, Juuli
Anonim
Taastage valesti konfigureeritud Bluetooth-moodul HC-06
Taastage valesti konfigureeritud Bluetooth-moodul HC-06

Puhtast maksimalismist konfigureerisin oma HC-06 Bluetooth (alam) mooduli edastuskiiruseks 1, 382, 400 baud käsuga AT+BAUDC. Sellest ajast peale, kui sellega ühendatud Arduino ei saanud moodulit SoftwareSeriali koguga kasutada. Üritasin edutult taastada edastuskiirust Arduino riistvara jadaseadmega (tihvtid 0 ja 1).

Proovisin ka teemat googeldada, leidmata vastuvõetavat lahendust. Võib -olla oleks võinud lahendus olla arvuti sisseehitatud jadapordi kasutamine (12V kuni 3V3 loogilise taseme nihutamisega), kuid minu arvutis pole seda vananenud porti, seega pidin välja pakkuma teise lahenduse.

Samm: mida vajate

Mida vajate
Mida vajate
  • Arudino/Genuino plaat, millel on vaikimisi Atmel ATMEGA328P-PU MCU (@16MHz).
  • HC-06 Bluetooth-moodul kuulab 1, 382, 400 baudiga
  • Põhiline arduino IDE saidilt

2. samm: lahendus

Lahendus
Lahendus
Lahendus
Lahendus

Pange tähele, et see juhend ja lahendus on loodud 1, 382, 400 baudi (AT+BAUDC) stsenaariumi jaoks. Lahendus ei toimi muude baudikiiruste korral. Muude juhtumite käsitlemiseks vaadake samme alates 3. sammust.

Lahendus on tõesti lihtne.

  1. Ühendage HC-06 VCC tihvt 5 V Arduino kontaktiga.
  2. Ühendage HC-06 GND tihvt Arduino GND tihvtiga.
  3. Ühendage HC-06 RXD tihvt Arduino tihvtiga 2.
  4. Jätke HC-06 TXD-tihvt ühendamata (või ühendage tihvtiga 8).
  5. Laadige üles eskiis hc06reset.ino.
  6. Programm seab HC-06 režiimi 115, 200 baud (AT+BAUD8).
  7. Kasutage taastatud HC-06 moodulit nagu varem.

Samm: kulisside taga…

Lava taga…
Lava taga…
Lava taga…
Lava taga…

Arduino IDE -ga kaasas olev SoftwareSerial raamatukogu on võimeline edastama maksimaalselt 115, 200 bitti sekundis, seega ei ole see piisavalt kiire, et suhelda soovitud 1, 382, 400 -bitise kiirusega. Arvestades, et vaikimisi Arduino plaat töötab sagedusel 16 MHz, on teoreetiline tihendamata maksimaalne bitikiirus 16 000 000 bitti sekundis. Meil on siiani hea!

Tuginedes minu arusaamale SoftwareSerial.cpp -st, toimub pidev suhtlus, seades väljundpinge kõrgeks (= 1) või madalaks (= 0) seoses muudatuste vahelise viivitusega (mis tuleneb edastuskiirusest).

  • Väljundnööp on vaikimisi kõrge (tähendab, et andmeid pole)
  • a Edastatakse stardibitt (mis tõmbab tihvti madalale), seejärel
  • 8 bitti andmeid, mis edastatakse LSB -lt MSB -le (+5 V, kui bit 1 ja 0 muidu)
  • edastatakse stopp -bit (mis tõmbab tihvti kõrgele)

Sel viisil edastatakse 1 bait 10 bitti kasutades.

Sõnum, mille peame saatma, on AT+BAUD8 (ilma / n, lõpus r). See käsk seab HC-06 tagasi 115, 200-bitisele kiirusele, mida saavad hallata tavalised teegid.

Bittide saatmiseks kiirusega 1, 382, 400 bitti sekundis on iga biti jaoks iga biti jaoks 1/1, 382, 400 sekundit aega (see on ligikaudu 723,38 ns). Arduino töötab 16 000 000 MHz, seega kestab iga tsükkel 1/16 000 000 sekundit - see tähendab 62,5 ns tsükli kohta.

Kasutades AVR -i koostamiskoodi, saame kasutada käsku OUT, et seada väljundpinge kõrgeks või madalaks ja NOP oodata täpselt üht protsessoritsüklit. Mõlemad käsud söövad täpselt 1 protsessoritsükli. Nii saab 723,38 ns bitiaega katta 11–12 arduino käsuga edastatud biti kohta. Üks asi, mida tuleb arvestada: käsk OUT seab korraga terve baidi, seega peame valima PORTx -i, kus see pole probleem. Kasutades ATMEGA328P-PU, näiteks PORTD (arduino tihvtid 0-7), sobib selle olukorra jaoks ideaalselt. Pärast bitti seadistamist peab mööduma ainult õige aeg, mida teeb 10 kuni 11 NOP -d ja ongi kõik.

Arvutuse üksikasjad leiate allolevast Exceli failist. See fail genereeris programmi jaoks vajalikud juhised. Pärast loodud koodi kleepimist tuli teha vaid mõned asendused.

4. samm: täiendavad lugemis-/ täiustamisvõimalused

  • Võib -olla saab SoftwareSeriali kiirema teegi teha, kasutades eelmises etapis kirjeldatud tehnikat.
  • FedericoK2 tegi suurepärase tööriista, mis genereerib HC-06 taastamiskoodi iga võimaliku bitikiiruse jaoks. Juurdepääs saidile siin: https://tools.krum.com.ar/save_your_hc-06/ Aitäh FedericoK2

Soovitan: