Sadržaj:
- Korak 1: Šta će vam trebati
- Korak 2: Rješenje
- Korak 3: Iza kulisa…
- Korak 4: Dodatne mogućnosti čitanja/ poboljšanja
Video: Oporavak pogrešno konfiguriranog Bluetooth modula HC-06: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Iz čistog maksimalizma, ja sam svoj HC-06 Bluetooth (slave) modul konfigurirao na brzinu prijenosa od 1, 382, 400 bauda pomoću naredbe AT+BAUDC. Od kada je Arduino povezan s njim, nije mogao koristiti modul s bibliotekom SoftwareSerial. Pokušao sam vratiti brzinu prijenosa s Arduino hardverskom serijom (pinovi 0 i 1) bez sreće.
Pokušao sam i proguglati temu, ali nisam našao prolazno rješenje. Možda bi korištenje računara sa ugrađenim serijskim portom moglo biti rješenje (s pomakom logičkog nivoa od 12V do 3V3), ali moj računar nema ovaj zastarjeli port, pa sam morao smisliti drugo rješenje.
Korak 1: Šta će vam trebati
- Arudino/Genuino ploča sa zadanim Atmel ATMEGA328P-PU MCU (@16MHz).
- Bluetooth-modul HC-06 koji sluša na 1, 382, 400 bauda
- Osnovni arduino IDE sa
Korak 2: Rješenje
Imajte na umu da je ovaj Instructable i rješenje napravljeno za scenarij od 1, 382, 400 bauda (AT+BAUDC). Rješenje neće raditi za bilo koju drugu brzinu prijenosa. Za rješavanje drugih slučajeva, pogledajte korake počevši od koraka 3.
Rješenje je zaista jednostavno.
- Spojite VCC pin HC-06 na pin 5V Arduina.
- Spojite GND pin HC-06 na GND pin Arduina.
- Spojite RXD pin HC-06 na pin 2 Arduina.
- Ostavite HC-06 TXD pin nepovezan (ili ga spojite na pin 8).
- Otpremite hc06reset.ino skicu.
- Program će postaviti HC-06 u 115, 200 baud način (AT+BAUD8).
- Koristite obnovljeni HC-06 modul kao i prije.
Korak 3: Iza kulisa…
Knjižnica SoftwareSerial koja dolazi s Arduino IDE -om može prenositi najviše 115, 200 bita/sekundi, pa nije dovoljno brza za komunikaciju na željenoj brzini prijenosa podataka 1, 382, 400. S obzirom na to da zadana Arduino ploča radi na 16MHz, teoretski nekomprimirani maksimalni bitrejt je 16 000 000 bita/sek. Do sada smo dobri!
Na osnovu mog razumijevanja SoftwareSerial.cpp, serijska komunikacija se vrši postavljanjem izlaznog pina High (= 1) ili Low (= 0) s obzirom na kašnjenje (koje dolazi iz brzine prijenosa) između promjena.
- Izlazni pin je prema zadanim postavkama visok (znači da nema podataka)
- a zatim se prenosi startni bit (koji povlači pin nisko)
- 8 bita podataka prenesenih iz LSB -a u MSB, (+5V kada su bit 1 i 0 u suprotnom) tada
- prenosi se stop bit (koji povlači pin visoko)
Na ovaj način 1 bajt se prenosi pomoću 10 bita.
Poruka koju moramo poslati je AT+BAUD8 (bez / n, / r na kraju). Ova naredba vraća HC-06 na brzinu od 115, 200 bauda kojom se mogu baviti obične biblioteke.
Za slanje bitova brzinom 1, 382, 400 bita/sek, za svaki bit imamo 1/1, 382, 400 sekundi vremena (to je otprilike 723,38 ns) za svaki bit. Arduino radi na 16 000 000 MHz, pa svaki ciklus traje 1/16 000 000 sekundi - to je 62,5 ns po ciklusu.
Pomoću koda sklopa AVR -a možemo koristiti naredbu OUT za postavljanje izlaznog pina visoko ili nisko, a NOP za čekanje točno jednog ciklusa CPU -a. Obje naredbe troše tačno 1 procesorski ciklus. Na ovaj način vrijeme bita od 723,38 ns može biti pokriveno sa 11 do 12 arduino instrukcija po prenesenom bitu. Treba uzeti u obzir jednu stvar: naredba OUT postavlja cijeli bajt odjednom, pa moramo odabrati PORTx gdje to nije problem. Korištenje ATMEGA328P-PU na primjer PORTD (arduino pinovi 0-7) savršeno je za ovo stanje. Nakon postavljanja bita, mora proći samo odgovarajuće vrijeme koje obavi 10 do 11 NOP -ova i to je to.
Detalje izračuna možete pronaći u Excel datoteci ispod. Ova datoteka generirala je potrebne skupne upute za program. Nakon lijepljenja generiranog koda moralo se izvršiti samo nekoliko zamjena.
Korak 4: Dodatne mogućnosti čitanja/ poboljšanja
- Možda se može napraviti brža biblioteka SoftwareSerial pomoću tehnike opisane u prethodnom koraku.
- FedericoK2 je napravio odličan alat koji generira kôd za oporavak HC-06 za svaki mogući bitrate. Pristupite web stranici ovdje: https://tools.krum.com.ar/save_your_hc-06/ Hvala FedericoK2
Preporučuje se:
Oporavak Bluetooth slušalica: 6 koraka
Oporavite svoje Bluetooth slušalice: Vjerojatno ste napustili Bluetooth i žičane slušalice koje leže zbog nekih sitnih problema. Ovi problemi mogu uključivati, između ostalog, slomljeno kućište slušalica, unutrašnje puknuće kabela, oštećene utikače. Obično se ovi oštećeni uređaji akumuliraju o
Oporavak starih napajanja računara: 12 koraka (sa slikama)
Oporavak starih napajanja za računare: Od 1990 -ih, svijet su napali računari. Situacija se nastavlja do danas. Stariji računari, do 2014 … 2015, uglavnom su van upotrebe. Kako svaki računar ima napajanje, veliki broj njih je napušten u obliku otpada
Lemljenje SSS konfiguriranog štitnika za gitaru: 3 koraka
Lemljenje SSS konfiguriranog štitnika za gitaru: U uputama ću proći kroz proces ožičenja vašeg vlastitog štitnika za gitaru. Prije svega, ako radite na ovom projektu, trebali biste pokušati pristojno razumjeti dijelove koji ulaze u proces. SSS format je u osnovi tri
L.A.R.S. (Sistem za pokretanje i oporavak): 7 koraka (sa slikama)
L.A.R.S. (Sistem za pokretanje i oporavak): PregledOvaj projekat je sistem za pokretanje i oporavak (LARS) sastavljen od različitih modela i sklopova. Svi zajedno predstavljaju sistem za oporavak pogodan za vodene rakete na maloj nadmorskoj visini. Raketa se sastoji od nekoliko dijelova, napravljenih od
Prsten solarnog znaka skidan: Učinio sam to pogrešno pa ne morate: 11 koraka
Prsten solarnog znaka skidan: Učinio sam to pogrešno pa ne morate: Dobio sam zvono na vratima, što je prilično odlično. Bravo za Ring. Zatim sam dobio Ring Stick-up kameru kada su se odvijale sve internetske prodaje za dan zahvalnosti. 50 USD popusta, a oni su mi BESPLATNO poslali ovaj sjajni solarni znak u obliku prstena (samo 49 USD!). Siguran sam da