Indholdsfortegnelse:
- Trin 1: Hvad du får brug for
- Trin 2: Løsningen
- Trin 3: Bag kulisserne …
- Trin 4: Yderligere læsning/ forbedringsmuligheder
Video: Gendan forkert konfigureret HC-06 Bluetooth-modul: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Af ren maksimalisme konfigurerede jeg mit HC-06 Bluetooth (slave) -modul til en baudhastighed på 1, 382, 400 baud med AT+BAUDC-kommandoen. Lige siden Arduino tilsluttet det ikke var i stand til at bruge modulet med SoftwareSerial bibliotek. Jeg forsøgte at gendanne baudhastigheden med Arduinos hardware -serie (pins 0 & 1) uden held.
Jeg forsøgte også at Google emnet uden at finde en acceptabel løsning. Måske kunne brug af en computers indbyggede serielle port have været en løsning (med 12V til 3V3 logisk niveauforskydning), men min computer har ikke denne forældede port, så jeg måtte finde på en anden løsning.
Trin 1: Hvad du får brug for
- Arudino/Genuino-kort med standard Atmel ATMEGA328P-PU MCU (@16MHz).
- Et HC-06 Bluetooth-modul, der lytter til 1, 382, 400 baud
- Grundlæggende arduino IDE fra
Trin 2: Løsningen
Bemærk, at denne instruks og løsningen er lavet til 1, 382, 400 baud (AT+BAUDC) scenario. Løsningen fungerer ikke for andre baudhastigheder. For at behandle andre sager henvises til trin, der starter fra trin 3.
Løsningen er virkelig enkel.
- Tilslut HC-06's VCC pin til 5V pin af Arduino.
- Tilslut HC-06's GND-pin til GND-pin på Arduino.
- Tilslut HC-06's RXD-pin til pin 2 på Arduino.
- Lad HC-06's TXD-pin være tilsluttet (eller tilslut til pin 8).
- Upload skitse hc06reset.ino.
- Programmet indstiller HC-06 til 115, 200 baud-tilstand (AT+BAUD8).
- Brug dit genoprettede HC-06-modul som før.
Trin 3: Bag kulisserne …
SoftwareSerial -biblioteket, der leveres med Arduino IDE, kan højst transmittere 115, 200 bits/sekund, så det er ikke hurtigt nok til at kommunikere på den ønskede 1, 382, 400 baudhastighed. I betragtning af at et standard Arduino -kort kører på 16MHz, er den teoretiske ukomprimerede maksimale bithastighed 16.000.000 bit/sek. Vi har det godt indtil videre!
Baseret på min forståelse af SoftwareSerial.cpp udføres seialkommunikationen ved at indstille en output -pin High (= 1) eller Low (= 0) med hensyn til en forsinkelse (der stammer fra baud -hastigheden) mellem ændringerne.
- Outputpinnen er som standard høj (betyder ingen data)
- en Start bit sendes (hvilket trækker tappen lavt), derefter
- 8 bit data overført fra LSB til MSB, (+5V når bit 1 og 0 ellers) derefter
- en stopbit sendes (som trækker tappen højt)
På denne måde transmitteres 1 byte ved hjælp af 10 bits.
Beskeden vi skal sende er AT+BAUD8 (uden / n, / r i slutningen). Denne kommando sætter HC-06 tilbage til 115, 200 baud rate, som kan håndteres af almindelige biblioteker.
For at sende bits med 1, 382, 400 bits/sek hastighed har vi for hver bit 1/1, 382, 400 sekunders tid (det er cirka 723,38 ns) for hver bit. Arduino kører på 16, 000, 000 Mhz, så hver cyklus varer 1/16, 000, 000 sekunder - det er 62,5 ns pr. Cyklus.
Ved hjælp af AVR -forsamlingskode kan vi bruge kommandoen OUT til at indstille output -pin høj eller lav og NOP til at vente nøjagtigt en CPU -cyklus. Begge kommandoer spiser nøjagtigt 1 cpu -cyklus. På denne måde kan 723,38 ns bittiden dækkes af 11 til 12 arduino -instruktioner pr. Transmitteret bit. Én ting at overveje: OUT -kommandoen indstiller en hel byte på én gang, så vi er nødt til at vælge en PORTx, hvor dette ikke er et problem. Brug af ATMEGA328P-PU for eksempel PORTD (arduino pins 0-7) er perfekt til denne tilstand. Efter indstilling af boret skal der kun gå den korrekte tid, som udføres med 10 til 11 NOP'er, og det er det.
Du kan finde beregningsoplysninger i Excel -filen herunder. Denne fil genererede de nødvendige samlevejledninger til programmet. Kun få udskiftninger skulle foretages efter indsætning af den genererede kode.
Trin 4: Yderligere læsning/ forbedringsmuligheder
- Måske kan der laves et hurtigere SoftwareSerial -bibliotek ved hjælp af teknikken beskrevet i det foregående trin.
- FedericoK2 lavede et fantastisk værktøj, der genererer HC-06-gendannelseskoden for hver mulig bitrate. Få adgang til webstedet her: https://tools.krum.com.ar/save_your_hc-06/ Tak FedericoK2
Anbefalede:
Gendan din Bluetooth -øretelefon: 6 trin
Gendan din Bluetooth -øretelefon: Du har sandsynligvis forladt Bluetooth og kablede øretelefoner liggende på grund af nogle få minutters problemer. Disse problemer kan blandt andet omfatte ødelagt øretelefonhus, interne brud på kabler, beskadigede stik, blandt andre. Normalt ophobes disse beskadigede enheder af
Gendan Game Boy eller lignende elektronik: 7 trin (med billeder)
Gendan Game Boy eller lignende elektronik: Først og fremmest, tak fordi du tjekkede min tutorial! Du er fantastisk. For det andet har jeg lagt meget tid i YouTube -videoen, så se den også, det forklarer det hele. Video:
Gendan en cool gammel robot: 10 trin (med billeder)
Gendan en cool gammel robot: Mød Arlan, en sjov robot med en masse personlighed. Han bor i et videnskabslokale i 5. klasse. Jeg genopbyggede ham til at være maskot for skolens robothold, han er også klasselærer. Børnene kan lide at se teknologi i aktion, og Arlan går
Lodning af en SSS -konfigureret Guitar Pickguard: 3 trin
Lodning af en SSS -konfigureret Guitar Pickguard: I den instruktive vil jeg gennemgå processen med at tilslutte din egen SSS guitar pickguard. Først og fremmest, hvis du laver dette projekt, skal du prøve at have en anstændig forståelse af de dele, der går ind i processen. SSS -formatet er grundlæggende tre
Ring Solar Sign Teardown: Jeg gjorde det forkert, så du ikke skal: 11 trin
Ring Solar Sign Teardown: Jeg gjorde det forkert, så du ikke behøver: Jeg har en ringedørklokke, hvilket er ret fantastisk. Yay for Ring. Så fik jeg et Ring Stick-up kamera, da alt online-salg omkring Thanksgiving foregik. $ 50 rabat, og de sendte mig GRATIS dette smarte Ring -tegn til Ring (kun en værdi på $ 49!). Jeg er sikker på at