Sisällysluettelo:
- Vaihe 1: Mitä tarvitset
- Vaihe 2: Ratkaisu
- Vaihe 3: Kulissien takana…
- Vaihe 4: Mahdollisia lisäkäsittely-/ parantamismahdollisuuksia
Video: Palauta väärin määritetty HC-06 Bluetooth-moduuli: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
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
- 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
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.
- Liitä HC-06: n VCC-nasta 5 V: n Arduinon napaan.
- Liitä HC-06: n GND-nasta Arduinon GND-nastaan.
- Liitä HC-06: n RXD-nasta Arduinon nastaan 2.
- Jätä HC-06: n TXD-nasta kytkemättä (tai liitä nastaan 8).
- Lataa hc06reset.ino -luonnos.
- Ohjelma asettaa HC-06: n 115, 200 baudin tilaan (AT+BAUD8).
- Käytä palautettua HC-06-moduulia kuten ennenkin.
Vaihe 3: 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:
Palauta Bluetooth -kuulokkeet: 6 vaihetta
Palauta Bluetooth -kuulokkeet: Olet luultavasti luopunut Bluetoothista ja langallisista kuulokkeista, jotka ovat noin minuutin ongelmien vuoksi. Näitä ongelmia voivat olla muun muassa rikkoutuneet nappikuulokkeet, kaapelien sisäiset katkokset, vaurioituneet pistokkeet. Yleensä nämä vaurioituneet laitteet kerääntyvät
Palauta Game Boy tai vastaava elektroniikka: 7 vaihetta (kuvilla)
Palauta Game Boy tai vastaava elektroniikka: Ensinnäkin kiitos, että tutustut opetusohjelmaan! Toiseksi panostan paljon aikaa YouTube -videoon, joten katso myös se, se selittää kaiken. Video:
Palauta hehku (Macbook): 5 vaihetta
Palauta hehku (Macbook): Päivitin äskettäin (no, yli vuosi sitten) 10 vuoden luotettavasta Apple -kannettavastani kiiltävään uuteen MacBook Prohon. Olen ollut siihen kokonaisuudessaan aika tyytyväinen. Mutta on yksi asia, jota kaipaan. Tiedän, että se näyttää typerältä, mutta pidin todella hehkuvasta Apple -lo
Ring Solar Sign Teardown: Tein sen väärin, joten sinun ei tarvitse: 11 vaihetta
Ring Solar Sign Teardown: Tein sen väärin, joten sinun ei tarvitse: Sain Ring Doorbellin, joka on aika mahtava. Yay for Ring. Sitten sain Ring Stick-up -kameran, kun kaikki noin kiitospäivän verkkomyynti oli käynnissä. 50 dollaria alennusta, ja he lähettivät minulle tämän hienon Ring -aurinkokyltin ILMAISEKSI (vain 49 dollarin arvo!). Olen varma t
Palauta takaisin! Virtuaalitodellisuuspeli Arduinon ja Acclerometrin avulla: 9 vaihetta
Palauta takaisin! Virtuaalitodellisuuspeli Arduinon ja Acclerometrin avulla: Tässä opetusohjelmassa luomme virtuaalitodellisuuspelin Arduinon ja Acclerometrin avulla