Na internetu postoji mnogo članaka o tome kako napraviti vlastiti daljinski upravljač za televizor pomoću Arduina, ali trebao mi je univerzalni daljinski upravljač za upravljanje televizorom i media playerom. Glavna prednost mog univerzalnog daljinskog upravljača je što su tipke u Android telefonskoj aplikaciji dvonamjenske, ali pogledajte video.
Daljinski upravljač je vrlo prikladan jer se gotovo isti gumbi na ekranu koriste za upravljanje televizorom i uređajem. Jedna je razlika u tome što " AV"u načinu upravljanja televizorom mijenja se u gumb" ◻
" (stop) kada prelazite na način upravljanja uređajem. Slike prikazuju dva načina rada, lijevo je način upravljanja televizorom, desno je način upravljanja uređajem.
Pa, sada ću vam reći nešto o stvaranju takvog daljinskog upravljača. Za uređaj sam koristio daljinski upravljač za ERGO TV i daljinski upravljač za DUNE HD TV101W media player.
Za primanje podataka s daljinskih upravljača koje sam koristio infracrveni senzor TSOP1138 (analog TSOP4838) na radnoj frekvenciji od 38 kHz i spojio ga na Arduino ploču prema shemi:
Ova skica neće biti potrebna za određivanje kodiranja prijenosa podataka i čitanje koda gumba daljinskog upravljača.
Na skici u retku int RECV_PIN = 11; označite naš pin broj 4
Nakon učitavanja skice otvorite "port monitor" i pritiskom na tipke daljinskog upravljača pogledajte primljene podatke.
Slika prikazuje primjer skeniranja gumba za uključivanje s daljinskog upravljača TV-a i daljinskog upravljača playera. Sada stvaramo tablicu za kodove gumba.
Dobio sam ga kao na slici iznad. Ispod natpisa televizor kodovi gumba daljinskog upravljača televizora; ispod natpisa Igrač- kodovi s daljinskog upravljača media playera.
Sada odspojimo naš infracrveni prijemnik signala s Arduino ploče i na njega spojimo HC-05 Bluetooth modul i infracrvenu LED diodu prema dijagramu na fotografiji.
Nakon toga prelazimo izravno na skicu.
Skica
#uključi
If (x == 97) (irsend.sendNEC(0x807F08F7, 32); kašnjenje(40);
Promijenite vrijednost 807F08F7 u:
If (y == 1) ( //kodovi gumba za daljinski upravljač TV-a if (x == 97) ( irsend.sendNEC(0x12345678, 32); delay(40); )
Gdje je 12345678 kod za vaš gumb.
Nakon uređivanja skice koristeći svoje kodove gumba, prenesite skicu na Arduino ploču i nastavite s instaliranjem aplikacije na svom telefonu.
Uključujemo Bluetooth u telefonu, tražimo svoj uređaj, stvaramo par, zatim pokrećemo aplikaciju Pult na telefonu.
Nakon pokretanja imat ćemo ekran s crvenom bluetooth ikonom u donjem desnom kutu, što signalizira da nismo spojeni na svoj uređaj.
Nakon toga kliknite na ovu ikonu. Trebali bismo vidjeti prozor s popisom svih dostupnih bluetooth uređaji, gdje odabiremo svoj uređaj za povezivanje.
Sada se vraćamo na glavni ekran i već možemo kontrolirati TV:
Za prebacivanje u način upravljanja trebamo pritisnuti gumb s oznakom "Igrač". Kao što sam ranije rekao, naš gumb s oznakom "AV" promijenit će se u gumb " ◻ ":
Za prekid veze s našim uređajem jednostavno držite pritisnutu tipku "Power" nekoliko sekundi.
Pa, nekoliko fotografija mog gotovog uređaja.
Ispalo je sasvim dobro, čini se. Čekam komentare na članak.
Modul IR prijemnika u kombinaciji s IR daljinskim upravljačem omogućit će vam jednostavnu implementaciju daljinskog upravljanja Arduino ploča.
To nije ništa više od VS1838B IR prijemnika s kabelskim snopom koji preporučuje proizvođač instaliranim na ploči.
Za rad s ovim modulom izvan kutije potreban vam je daljinski upravljač s frekvencijom od 38 kHz.
Prednost ove ploče je push-in konektor, koji vam omogućuje da zamijenite IR prijemnik s drugim koji radi na frekvenciji potrebnoj za vaš projekt bez lemljenja.
Napon napajanja: 2,7 - 5,5V
Frekvencija modulacije: 38kHz
Raspon temperature: - 20 ... + 80°C
Sučelje: Digitalno
Modul je opremljen tropinskim 2,54 mm konektorom
: spaja se na GND pin
: spaja se na +5V izlaz
: spaja se na digitalni pin (D2 u primjeru)
Za rad s ovim modulom morate instalirati biblioteku IRRemote
Preuzmite, raspakirajte i stavite u mapu knjižnica u mapi Arduino. Ako je Arduino IDE bio otvoren u trenutku dodavanja biblioteke, ponovno pokrenite okruženje.
Očitavanje tipki daljinskog upravljača
Za čitanje očitanja daljinskog upravljača ispunite skicu u nastavku. Izbacit će kodiranje pritisnutih tipki na priključak.
Kao primjer ćemo koristiti daljinski upravljač, kao na slici, jer Ovaj tip daljinskog upravljača je uključen u set
O razlikama u logici rada raznih daljinskih upravljača možete pročitati u originalnom članku člana naše zajednice pod nadimkom
Primjer programski kod:
#uključiNa monitoru porta trebali biste vidjeti sljedeće:
Držanjem svake tipke gotovo sekundu dobivamo 10-ak kodova. Prvi je kod gumba. A nakon toga počinje se pojavljivati standardni kod koji javlja da je gumb zaglavljen.
Neka LED na Arduino ploči (D13) zasvijetli kada je prvi gumb kodiran i ugasi se kada je drugi gumb kodiran.
Primjer koda:
// Testirano na Arduino IDE 1.0.3#uključiDanašnji članak će se baviti spajanjem TSOP34836 IR prijemnika na Aduino UNO ploču. U te svrhe možete koristiti bilo koji prijemnik koji imate i koji je frekvencijski kompatibilan s vašim daljinskim upravljačem. Raspored pinova prikazan je na slici.
1. Vout – izlaz prijemnika.
2. GND – “zemlja”, zajednička žica.
3. Vcc – napajanje.
Prijenos podataka od IR daljinskog upravljača do prijemnika odvija se pomoću RC5 protokola, koji je niz impulsa. Spajanje se izvodi prema sljedećoj shemi.
I nakon prikupljanja dobivamo nešto poput ovoga:
Za obradu podataka koje prenosi daljinski upravljač koristimo biblioteku IRremote, ta je biblioteka priložena članku. Zalijepite sljedeći kod:
#include "IRremote.h" IRrecv irrecv(11); // Navedite pin na koji je prijamnik spojen decode_results results; void setup() ( Serial.begin(9600); // Postavite brzinu COM porta irrecv.enableIRIn(); // Počnite primati ) void loop() ( if (irrecv.decode(&results)) // Ako podaci stigao ( Serial .println(results.value, HEX); // Pošalji primljene podatke na konzolu irrecv.resume(); // Prihvati sljedeću naredbu ) )
Sada u konzoli COM porta možete vidjeti kod pritisnute tipke u HEX formatu.
To je sve, sada možete koristiti ovaj sklop u svojim uređajima. Ispod je primjer jednog praktične aplikacije IR prijemnik.
Kao demonstracija, bit će prikazano kako upravljati servom pomoću IR daljinskog upravljača.
Dijagram uređaja:
Ovako bi to trebalo izgledati:
Za upravljanje uređajem koristimo sljedeći kod:
#include "Servo.h" #include "IRremote.h" IRrecv irrecv(11); decode_results rezultati; Servo servoMain; int servPoz = 90; //Početni položaj servo int lastPoz = 0; void setup() ( irrecv.enableIRIn(); servoMain.attach(10); // Servo je priključen na pin 10 servoMain.write(servPoz); ) void loop() ( if (irrecv.decode(&results)) ( int res = results.value; Serial.println(res, HEX); if(res==0xFFFF906F) // Ako se pritisne gumb "+" ( lastPoz=res; servPoz++; servoMain.write(servPoz); ) else if( res== 0xFFFFA857) // Ako se pritisne gumb "-" ( servPoz--; lastPoz=res; servoMain.write(servPoz); ) else if(res==0xFFFFFFFF) // Ako se gumb drži ( if( lastPoz==0xFFFF906F) servPoz++; // Drži "+" if(lastPoz==0xFFFFA857) servPoz--;// Drži "-" servoMain.write(servPoz); ) irrecv.resume(); delay(100); ) )
Daljinski upravljač koji se koristi je neka vrsta kineskog, kada pritisnete "+" servo se okreće u jednom smjeru, kada pritisnete "-" okreće se u drugom smjeru.
nanbaby.ru - Zdravlje i ljepota. Moda. Djeca i roditelji. Slobodno vrijeme. Život Kuća