Innehållsförteckning:
- Steg 1: Vad du behöver
- Steg 2: Lösningen
- Steg 3: Bakom kulisserna …
- Steg 4: Ytterligare läs-/ förbättringsmöjligheter
Video: Återställ felkonfigurerad HC-06 Bluetooth-modul: 4 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Av ren maximalism konfigurerade jag min HC-06 Bluetooth (slav) -modul till en överföringshastighet på 1, 382, 400 baud med AT+BAUDC-kommandot. Ända sedan Arduino ansluten till den kunde inte använda modulen med SoftwareSerial bibliotek. Jag försökte återställa överföringshastigheten med Arduinos hårdvaruserie (stift 0 & 1) utan framgång.
Jag försökte också googla ämnet utan att hitta en acceptabel lösning. Kanske att använda en dators inbyggda serieport kunde ha varit en lösning (med 12V till 3V3 logiknivåförskjutning), men min dator har inte denna föråldrade port, så jag var tvungen att komma på en annan lösning.
Steg 1: Vad du behöver
- Arudino/Genuino-kort med standard Atmel ATMEGA328P-PU MCU (@16MHz).
- En HC-06 Bluetooth-modul som lyssnar på 1, 382, 400 baud
- Grundläggande arduino IDE från
Steg 2: Lösningen
Observera att denna instruerbara och lösningen är gjord för 1, 382, 400 baud (AT+BAUDC) scenario. Lösningen fungerar inte för andra överföringshastigheter. För att hantera andra ärenden, se steg som börjar från steg 3.
Lösningen är verkligen enkel.
- Anslut HC-06: s VCC-stift till 5V-stiftet på Arduino.
- Anslut HC-06: s GND-stift till GND-stiftet på Arduino.
- Anslut HC-06: s RXD-stift till stift 2 på Arduino.
- Låt HC-06: s TXD-stift vara anslutet (eller anslut till stift 8).
- Ladda upp hc06reset.ino -skiss.
- Programmet ställer in HC-06 i 115, 200 baud-läge (AT+BAUD8).
- Använd din återställda HC-06-modul som tidigare.
Steg 3: Bakom kulisserna …
SoftwareSerial -biblioteket som levereras med Arduino IDE kan överföra högst 115 200 bitar/sekund, så det är inte tillräckligt snabbt för att kommunicera på önskad 1, 382, 400 baudhastighet. Med tanke på att ett standard Arduino -kort körs på 16 MHz är den teoretiska okomprimerade maximala bithastigheten 16 000 000 bitar/sek. Vi har det bra hittills!
Baserat på min förståelse av SoftwareSerial.cpp, görs kommunikation genom att ställa in en utgångsstift Hög (= 1) eller Låg (= 0) med avseende på en fördröjning (som kommer från överföringshastigheten) mellan ändringarna.
- Utgångsstiften är hög som standard (betyder ingen data)
- en startbit överförs (vilket drar tappen lågt), då
- 8 bitar data överförda från LSB till MSB, (+5V när bit 1 och 0 annars)
- en stoppbit överförs (vilket drar tappen högt)
På detta sätt överförs 1 byte med 10 bitar.
Meddelandet vi måste skicka är AT+BAUD8 (utan / n, / r i slutet). Detta kommando ställer tillbaka HC-06 till 115, 200 baudhastighet som kan hanteras av vanliga bibliotek.
För att skicka bitar med 1, 382, 400 bitar/sek hastighet har vi för varje bit 1/1, 382, 400 sekunders tid (det är ungefär 723,38 ns) för varje bit. Arduino körs på 16 000 000 Mhz, så varje cykel varar 1/16 000 000 sekunder - det vill säga 62,5 ns per cykel.
Med hjälp av AVR -monteringskod kan vi använda kommandot OUT för att ställa in utgångsstift högt eller lågt och NOP för att vänta exakt en CPU -cykel. Båda kommandona äter upp exakt 1 cpu -cykel. På detta sätt kan 723,38 ns bittiden täckas av 11 till 12 arduino -instruktioner per överförd bit. En sak att tänka på: kommandot OUT anger en hel byte på en gång, så vi måste välja en PORTx där detta inte är ett problem. Att använda ATMEGA328P-PU till exempel PORTD (arduino pins 0-7) är perfekt för detta tillstånd. Efter att ha ställt in biten måste bara den rätta tiden gå som görs med 10 till 11 NOP och det är det.
Du hittar beräkningsdetaljer i Excel -filen nedan. Denna fil genererade de nödvändiga monteringsinstruktionerna för programmet. Endast några få ersättningar måste göras efter att den genererade koden har klistrats in.
Steg 4: Ytterligare läs-/ förbättringsmöjligheter
- Kanske kan ett snabbare SoftwareSerial -bibliotek skapas med den teknik som beskrivs i föregående steg.
- FedericoK2 gjorde ett bra verktyg som genererar HC-06-återställningskoden för varje möjlig bithastighet. Gå till webbplatsen här: https://tools.krum.com.ar/save_your_hc-06/ Tack FedericoK2
Rekommenderad:
Återställ din Bluetooth -hörlur: 6 steg
Återställ din Bluetooth -hörlur: Du har förmodligen övergett Bluetooth och hörlurar som ligger på grund av några minutproblem. Dessa problem kan bland annat innefatta trasiga öronproppshus, interna kabelbrott, skadade kontakter, bland annat. Vanligtvis samlas dessa skadade enheter på
Återställ Game Boy eller liknande elektronik: 7 steg (med bilder)
Återställ Game Boy eller liknande elektronik: Först och främst, tack för att du kollade in min handledning! Du är fantastisk. För det andra lägger jag mycket tid på YouTube -videon så titta på det också, det förklarar allt. Video:
Återställ glödet (Macbook): 5 steg
Återställ glödet (Macbook): Jag har nyligen (ja, för över ett år sedan nu) uppgraderat från min pålitliga Apple Laptop på 10 år till en glänsande ny Macbook pro. Jag har varit ganska nöjd med det överlag. Men det är en sak jag saknar. Jag vet att det verkar dumt, men jag gillade verkligen den glödande Apple lo
Spara och återställ förinställda värden med NFC (TfCD): 4 steg
Spara och återställ förinställda värden med NFC (TfCD): Vi vill testa hur det fungerar att justera ett visst värde eller en inställning och senare återkalla denna inställning. För detta experiment använde vi en NFC -tagg för att läsa och sedan spara värdet på den. Senare kan taggen skannas igen och skicka värdet tillbaka för att återställa en cer
Bygg Kodi / OSMC Infraröd mottagare och återställ hatt för Raspberry Pi: 5 steg (med bilder)
Bygg Kodi / OSMC Infraröd mottagare och Återställ hatt för Raspberry Pi: Bygg en Kodi / OSMC IR -mottagare och Återställ hatt för Raspberry Pi 3 Från ett rum vill jag: Styr Kodi / OSMC som körs på en Raspberry Pi med en fjärrkontroll Se om Raspberry Pi är påslagenOch jag skulle vilja att min familj