Innholdsfortegnelse:
- Trinn 1: Hva du trenger
- Trinn 2: Løsningen
- Trinn 3: Bak kulissene …
- Trinn 4: Ytterligere lese-/ forbedringsmuligheter
Video: Gjenopprett feilkonfigurert HC-06 Bluetooth-modul: 4 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Av ren maksimalisme konfigurerte jeg HC-06 Bluetooth (slave) -modulen til en baudhastighet på 1, 382, 400 baud med AT+BAUDC-kommandoen. Helt siden Arduino koblet til den, var den ikke i stand til å bruke modulen med SoftwareSerial -biblioteket. Jeg prøvde å gjenopprette overføringshastigheten med Arduinos maskinvareserie (pinner 0 og 1) uten hell.
Jeg prøvde også å google emnet uten å finne en akseptabel løsning. Kanskje bruk av en datamaskin innebygd seriell port kunne ha vært en løsning (med 12V til 3V3 logisk nivåskifte), men datamaskinen min har ikke denne foreldede porten, så jeg måtte finne på en annen løsning.
Trinn 1: Hva du trenger
- Arudino/Genuino-kort med standard Atmel ATMEGA328P-PU MCU (@16MHz).
- En HC-06 Bluetooth-modul som lytter på 1, 382, 400 baud
- Grunnleggende arduino IDE fra
Trinn 2: Løsningen
Vær oppmerksom på at denne Instructable og løsningen er laget for 1, 382, 400 baud (AT+BAUDC) scenario. Løsningen vil ikke fungere for andre overføringshastigheter. For å håndtere andre saker, se trinnene som starter fra trinn 3.
Løsningen er virkelig enkel.
- Koble HC-06s VCC-pin til 5V pin av Arduino.
- Koble HC-06s GND-pinne til GND-pinnen på Arduino.
- Koble HC-06s RXD-pinne til pinne 2 på Arduino.
- La TXD-pinnen til HC-06 være tilkoblet (eller koble til pinne 8).
- Last opp hc06reset.ino skisse.
- Programmet vil sette HC-06 til 115, 200 baud-modus (AT+BAUD8).
- Bruk den gjenopprettede HC-06-modulen som før.
Trinn 3: Bak kulissene …
SoftwareSerial -biblioteket som følger med Arduino IDE kan maksimalt overføre 115, 200 bits/sekund, så det er ikke raskt nok til å kommunisere på ønsket 1, 382, 400 baudhastighet. Gitt at et standard Arduino -kort kjører på 16MHz, er den teoretiske ukomprimerte maksimale bithastigheten 16.000.000 bit/sek. Vi har det bra så langt!
Basert på min forståelse av SoftwareSerial.cpp, utføres seialkommunikasjonen ved å sette en utgangspinne Høy (= 1) eller Lav (= 0) med hensyn til en forsinkelse (som kommer fra overføringshastigheten) mellom endringene.
- Utgangspinnen er høy som standard (betyr ingen data)
- en startbit overføres (som trekker tappen lavt), deretter
- 8 biter med data overført fra LSB til MSB, (+5V når bit 1 og 0 ellers) da
- en stoppbit overføres (som trekker tappen høyt)
På denne måten overføres 1 byte med 10 bits.
Meldingen vi må sende er AT+BAUD8 (uten / n, / r på slutten). Denne kommandoen setter HC-06 tilbake til 115, 200 baud rate som kan håndteres av vanlige biblioteker.
For å sende bits med 1, 382, 400 bits/sek hastighet, har vi for hver bit 1/1, 382, 400 sekunder tid (det er omtrent 723,38 ns) for hver bit. Arduino kjører på 16 000 000 Mhz, så hver syklus varer 1/16 000 000 sekunder - det vil si 62,5 ns per syklus.
Ved å bruke AVR -monteringskode kan vi bruke OUT -kommandoen til å sette utgangspinnen høy eller lav og NOP for å vente nøyaktig en CPU -syklus. Begge kommandoene spiser opp nøyaktig 1 cpu -syklus. På denne måten kan 723,38 ns bittiden dekkes av 11 til 12 arduino -instruksjoner per overført bit. En ting å vurdere: OUT -kommandoen angir en hel byte samtidig, så vi må velge en PORTx der dette ikke er et problem. Å bruke ATMEGA328P-PU for eksempel PORTD (arduino pins 0-7) er perfekt for denne tilstanden. Etter at du har satt inn biten, må bare den riktige tiden gå som utføres med 10 til 11 NOPer og det er det.
Du finner beregningsdetaljer i Excel -filen nedenfor. Denne filen genererte nødvendige monteringsinstruksjoner for programmet. Bare noen få erstatninger måtte gjøres etter at den genererte koden ble limt inn.
Trinn 4: Ytterligere lese-/ forbedringsmuligheter
- Kanskje det kan lages et raskere SoftwareSerial -bibliotek ved å bruke teknikken beskrevet i forrige trinn.
- FedericoK2 har laget et flott verktøy som genererer HC-06-gjenopprettingskoden for hver mulig bithastighet. Gå til nettstedet her: https://tools.krum.com.ar/save_your_hc-06/ Takk FedericoK2
Anbefalt:
Gjenopprett Bluetooth -øretelefonen: 6 trinn
Gjenopprett Bluetooth -øretelefonen din: Du har sannsynligvis forlatt Bluetooth og hodetelefoner med kabel liggende på grunn av noen minutter. Disse problemene kan inkludere ødelagt øreproppshus, interne brudd i kabler, skadede plugger, blant andre. Vanligvis samler disse skadede enhetene seg
Gjenopprett Game Boy eller lignende elektronikk: 7 trinn (med bilder)
Gjenopprett Game Boy eller lignende elektronikk: Først av alt, takk for at du sjekket opplæringen min! Du er fantastisk. For det andre legger jeg mye tid i YouTube -videoen, så se den også, den forklarer alt. Video:
Gjenopprett gløden (Macbook): 5 trinn
Restore the Glow (Macbook): Jeg har nylig (vel, for over et år siden nå) oppgradert fra min pålitelige Apple Laptop på 10 år til en skinnende ny Macbook pro. Jeg har vært ganske fornøyd med det totalt sett. Men det er en ting jeg savner. Jeg vet at det virker dumt, men jeg likte virkelig den glødende Apple -lo
Gjenopprett verdens vanskeligste spill på Arduino: 7 trinn
Recreating the Worlds Hardest Game on Arduino: Dette prosjektet er basert på et dataspill som du kan finne på nettet. Navnet er, "The Worlds Hardest Game." Jeg klarte å lage den på Arduino på nytt ved hjelp av en fire-modul LED Matrix. I denne instruksen lærer jeg deg hvordan du konstruerer det
Lagre og gjenopprett forhåndsinnstilte verdier med NFC (TfCD): 4 trinn
Lagre og gjenopprett forhåndsinnstilte verdier med NFC (TfCD): Vi vil teste hvordan det fungerer å justere en bestemt verdi eller innstilling og senere huske denne innstillingen. For dette eksperimentet brukte vi en NFC -tag for å lese og deretter lagre verdien på den. Senere kan taggen skannes igjen og sende verdien tilbake for å gjenopprette en cer