Sisällysluettelo:

Palauta väärin määritetty HC-06 Bluetooth-moduuli: 4 vaihetta
Palauta väärin määritetty HC-06 Bluetooth-moduuli: 4 vaihetta

Video: Palauta väärin määritetty HC-06 Bluetooth-moduuli: 4 vaihetta

Video: Palauta väärin määritetty HC-06 Bluetooth-moduuli: 4 vaihetta
Video: LDmicro 18: GPS-будильник Ublox NEO-6M (программирование лестничной схемы ПЛК микроконтроллера с помощью LDmicro) 2024, Marraskuu
Anonim
Palauta väärin määritetty HC-06 Bluetooth-moduuli
Palauta väärin määritetty HC-06 Bluetooth-moduuli

Puhtaasta maksimalismista johtuen määritin HC-06 Bluetooth (slave) -moduulini siirtonopeudeksi 1, 382, 400 baudia AT+BAUDC-komennolla. Siitä lähtien, kun siihen liitetty Arduino ei voinut käyttää moduulia SoftwareSerial -kirjaston kanssa. Yritin palauttaa baudinopeuden Arduinon laitteistosarjalla (nastat 0 ja 1) ilman onnea.

Yritin myös googlettaa aiheen löytämättä hyväksyttävää ratkaisua. Ehkä tietokoneen sisäänrakennetun sarjaportin käyttäminen olisi voinut olla ratkaisu (12V - 3V3 loogisen tason siirto), mutta tietokoneessani ei ole tätä vanhentunutta porttia, joten minun piti keksiä toinen ratkaisu.

Vaihe 1: Mitä tarvitset

Mitä tarvitset
Mitä tarvitset
  • Arudino/Genuino -kortti, jossa on oletusarvoinen Atmel ATMEGA328P-PU MCU (@16MHz).
  • HC-06 Bluetooth-moduuli kuuntelee 1, 382, 400 baudia
  • Perus arduino IDE osoitteesta

Vaihe 2: Ratkaisu

Ratkaisu
Ratkaisu
Ratkaisu
Ratkaisu

Huomaa, että tämä ohje ja ratkaisu on tehty 1, 382, 400 baudin (AT+BAUDC) skenaarioon. Ratkaisu ei toimi muilla tiedonsiirtonopeuksilla. Jos haluat käsitellä muita tapauksia, katso vaiheesta 3 alkavat vaiheet.

Ratkaisu on todella yksinkertainen.

  1. Liitä HC-06: n VCC-nasta 5 V: n Arduinon napaan.
  2. Liitä HC-06: n GND-nasta Arduinon GND-nastaan.
  3. Liitä HC-06: n RXD-nasta Arduinon nastaan 2.
  4. Jätä HC-06: n TXD-nasta kytkemättä (tai liitä nastaan 8).
  5. Lataa hc06reset.ino -luonnos.
  6. Ohjelma asettaa HC-06: n 115, 200 baudin tilaan (AT+BAUD8).
  7. Käytä palautettua HC-06-moduulia kuten ennenkin.

Vaihe 3: Kulissien takana…

Kulissien takana…
Kulissien takana…
Kulissien takana…
Kulissien takana…

Arduino IDE: n mukana toimitettu SoftwareSerial -kirjasto pystyy lähettämään enintään 115 200 bittiä sekunnissa, joten se ei ole tarpeeksi nopea kommunikoimaan halutulla 1, 382, 400 baudin nopeudella. Koska oletusarvoinen Arduino -kortti toimii 16 MHz: llä, teoreettinen pakkaamaton maksimi bittinopeus on 16 000 000 bittiä sekunnissa. Meillä on toistaiseksi hyvä!

SoftwareSerial.cpp -käsitykseni mukaan sarjaviestintä tapahtuu asettamalla lähtönastaksi Korkea (= 1) tai Matala (= 0) suhteessa viiveeseen (joka johtuu siirtonopeudesta) muutosten välillä.

  • Lähtötappi on oletusarvoisesti korkea (eli ei dataa)
  • a Aloitusbitti lähetetään (joka vetää tapin matalalle) ja sitten
  • 8 bittiä dataa, joka lähetetään LSB: ltä MSB: lle, (+5 V, kun bitti 1 ja 0 muuten)
  • a Stop -bitti lähetetään (joka vetää tapin korkealle)

Tällä tavalla 1 tavu lähetetään käyttämällä 10 bittiä.

Meidän on lähetettävä viesti AT+BAUD8 (ilman / n, lopussa). Tämä komento asettaa HC-06: n takaisin 115, 200 baudinopeuteen, jota tavalliset kirjastot voivat käsitellä.

Jotta voidaan lähettää bittejä nopeudella 1, 382, 400 bittiä sekunnissa, kullakin bitillä on 1/1, 382, 400 sekunnin aika (eli suunnilleen 723,38 ns) kullekin bitille. Arduino toimii 16 000 000 MHz: llä, joten jokainen sykli kestää 1/16 000 000 sekuntia - eli 62,5 ns jaksoa kohden.

Käyttämällä AVR -kokoonpanokoodia voimme käyttää OUT -komentoa asettaaksesi lähtönastan korkealle tai matalalle ja NOP odottamaan täsmälleen yhden suoritusjakson. Molemmat komennot syövät täsmälleen yhden suoritusjakson. Tällä tavoin 723,38 ns bittiaika voidaan kattaa 11-12 arduino -käskyä lähetettyä bittiä kohti. Yksi asia on otettava huomioon: OUT -komento asettaa koko tavun kerralla, joten meidän on valittava PORTx, jossa tämä ei ole ongelma. Esimerkiksi ATMEGA328P-PU: n käyttö PORTD (arduino-nastat 0-7) on täydellinen tähän tilanteeseen. Bitin asettamisen jälkeen on kuluttava vain oikea aika, joka suoritetaan 10–11 NOP: lla ja se on siinä.

Löydät laskutustiedot alla olevasta Excel -tiedostosta. Tämä tiedosto loi ohjelmalle tarvittavat asennusohjeet. Vain muutama vaihto oli tehtävä luodun koodin liittämisen jälkeen.

Vaihe 4: Mahdollisia lisäkäsittely-/ parantamismahdollisuuksia

  • Ehkä nopeampi SoftwareSerial -kirjasto voidaan tehdä käyttämällä edellisessä vaiheessa kuvattua tekniikkaa.
  • FedericoK2 loi suuren työkalun, joka luo HC-06-palautuskoodin jokaiselle mahdolliselle bittinopeudelle. Siirry sivustoon täältä: https://tools.krum.com.ar/save_your_hc-06/ Kiitos FedericoK2

Suositeltava: