Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • OS
  • Control IR Arduino. Controlăm orice echipament de control de la distanță acasă prin IR de pe o pagină web

Control IR Arduino. Controlăm orice echipament de control de la distanță acasă prin IR de pe o pagină web

De obicei telecomenzi telecomandă TV, cablu, player Blu-ray iar sistemele stereo nu numai că ocupă spațiu, dar fac și dificilă gestionarea tuturor acestor dispozitive. Puteți lua în considerare achiziționarea telecomanda universala, dar de obicei sunt scumpe și uneori nu oferă nivelul necesar de control sau interfață. Acest proiect creează un dispozitiv care poate trimite și primi coduri de control de la distanță de pe o pagină web standard. Puteți programa funcționalitatea necesară de pe orice smartphone sau computer!

Acest proiect folosește modulul Arduino Yún, care este special conceput pentru a controla dispozitivele care acceptă conexiune retea. Yún are două procesoare, dintre care primul rulează sistemul de operare sistem Linuxși se poate conecta la cablu sau retea fara fir. Al doilea procesor îndeplinește aceleași funcții ca și procesorul din modulul Arduino Leonardo. Prin urmare, oferă o bună compatibilitate cu bibliotecile și hardware-ul Arduino.

Acest proiect folosește un LED infraroșu și un receptor pentru a trimite și a primi semnale de telecomandă. Lumina infraroșie este invizibilă pentru ochiul uman, dar este ușor detectată de senzorii electronici. Pentru o transmisie mai fiabilă a semnalului, dispozitivele folosesc lumină infraroșie modulată, ceea ce elimină posibilitatea de a primi semnale false. Receptorul infrarosu este dispozitiv mic, care primește semnale în infraroșu modulate la o frecvență specifică, de obicei 38 kHz. Folosind acest receptor, modulul Arduino determină biții de informații care sunt trimise de la panoul de control.

Trimiterea comenzilor către dvs centru multimedia se va realiza folosind interfață web simplă, care rulează local pe modulul Yún și este disponibil pentru majoritatea browserelor web moderne. Site-ul web ușurează munca de management dispozitiv cu infraroșuși vă permite să procesați chiar și mai multe comenzi simultan. De exemplu, apăsarea butonului „Urmăriți filmul” poate trimite un semnal pentru a porni televizorul, playerul Blu-ray și pentru a le conecta la intrarea televizorului.

Acest proiect necesită o anumită experiență în rularea schițelor Arduino și utilizarea instrumentelor din linia de comandă. Componente electronice proiectul poate fi instalat pe un breadboard.

Pasul #1: Conectarea componentelor

  • Conectați LED-ul cu infraroșu la modulul Yún prin trecerea unui fir de la anodul LED (plumb lung) la Ieșire digitală 13 module Yún.
  • Folosind un rezistor de 100 ohmi, conectați catodul LED (conductivul mai scurt) la pinul de împământare al senzorului IR (conductorul mijlociu al senzorului).
  • Conectați pinul de detectare al senzorului infraroșu (pinul din stânga când este privit din partea din față a senzorului) la pinul digital 11 al modulului Yún.
  • Conectați pinul de masă al senzorului infraroșu (pinul mijlociu) la pinul de masă al modulului Yún.
  • În cele din urmă, conectați cablul de alimentare al senzorului (pinul extrem din dreapta când este privit din partea din față a senzorului) la pinul de 5 volți al modulului Yún.

Pasul 2: Instalați dependențe de software

  • Când este introdus Card microSDîn modulul Yún, porniți Yún prin conectare USB Micro cablu B la modulul Yún și adaptor USB nutriție.
  • Asigurați-vă că Yún este configurat și conectat la rețeaua dvs. wireless. Configurarea modulului Yún este indicată pe această pagină.
  • Conectează la Linie de comanda Yún folosind SSH. Acest proces descrise pe această pagină.
  • Odată conectat la linia de comandă, veți vedea versiunea de firmware. Acest proiect testat cu versiunea BusyBox v1.19.4 din 2014-04-10 și mai recent. Daca folosesti mai mult versiune veche, apoi urmați următoarele instrucțiuni.
  • La promptul de comandă, rulați următoarele comenzi pentru a actualiza managerul de pachete:
actualizare opkg
  • Apoi, instalați PIP, managerul de pachete Python:
opkg install distribuie && opkg instalează python-openssl && opkg instalează python-expat && easy_install pip

Acest proces durează câteva minute. Este posibil să vedeți câteva mesaje de avertizare, dar le puteți ignora.

  • Creați un director pe cardul SD pentru a salva pachetele Python:
mkdir /mnt/sda1/python-packages
  • Instalați cadrul Flask Python:
pip install --target /mnt/sda1/python-packages flask

Este posibil să vedeți câteva mesaje de avertizare, dar le puteți ignora.

  • Actualizați calea de căutare pentru fișierele pachetului Python:
echo „export PYTHONPATH=/mnt/sda1/python-packages” >> /etc/profile
  • Creați directoare în care mediul Arduino IDE va încărca fișierele serverului web:
mkdir /mnt/sda1/Arduino mkdir /mnt/sda1/arduino/www
  • Reporniți Arduino Yún pentru a actualiza calea de căutare a fișierelor Python.

  • Descărcați biblioteca IR. (Arduino IRremote, bibliotecă creată de Ken Shirriff.)
    Dezarhivați arhiva, redenumiți folderul cu Arduino_ IRremotă- maestru pe Arduino_ IRremotăși importați folderul Arduino_IRremote ca bibliotecă în mediu Dezvoltare Arduino IDE. informatii detaliate indicat
  • Încărcați schița dvs Telecomanda inteligentă Controlați Arduino de la arhiva zip de aici.
    Dezarhivați arhiva și trageți folderul SmartRemoteControl la folderul cu Schiță Arduino. Deschideți schița în Arduino IDE.
  • Compilați schița și încărcați-o în modulul Yún prin WiFi selectând opțiunea corespunzătoare din lista de porturi Arduino Yún. Asigurați-vă că încărcați schița prin WiFi, astfel încât scripturile python necesare să fie copiate în modulul Yún! După descărcarea schiței, deschideți Serial Monitor în Arduino IDE (acest lucru poate dura câteva minute).
  • Îndreptați telecomanda spre senzor infrarosuși apăsați câteva butoane de pe telecomandă. Ar trebui să vedeți codul pe monitorul serial. Dacă codul nu este afișat, verificați conexiunile circuitului senzorului.

Pasul #4: Configurați codurile de control de la distanță

  • Acum puteți configura activități și coduri de control de la distanță asociindu-le cu fișier XML configuratii. Folosind editor de text, deschideți fișierul Activități. xmlîntr-un subdirector www schițe foldere pe computer. (Din Arduino IDE, faceți clic pe meniul Sketch și selectați „Show Sketch Folder”).
  • Luați în considerare formatul operațiunilor exemplu din fișier. Fiecare bloc de operare definește un nume de atribut care va apărea ca un buton pe pagina web a telecomenzii. În cadrul fiecărei operații, blocul de cod conține o secvență de coduri în infraroșu care trebuie executate. În exemplu, comanda Sony A90 (pornire/oprire) este mai întâi executată pentru a porni televizorul, apoi comanda Panasonic (pornire/oprire) pentru a porni playerul Blu-ray. Fiecare cod are un parametru șir care este ieșirea directă de date a codului de la distanță detectat din schița Arduino.
  • Adăugați comenzile în fișier prin copierea exemplului și modificarea numelor și codurilor. Când telecomanda este îndreptată către senzorul infraroșu, apăsați butoanele și notați cu atenție secvența specifică a codului infraroșu. Copiați secvența în configurația opcode.
  • De îndată ce primești fișierul necesar configurație, salvați fișierul și încărcați din nou schița în modulul Yún prin WiFi. Pentru a actualiza fișierul de configurare, editați fișierul și încărcați schița prin WiFi folosind IDE-ul Arduino.

Pasul #5: Pornirea serverului cu o interfață web

  • Pentru a porni serverul, conectați modulul Yún prin SSH. Pentru a porni serverul, executați următoarea comandă:
python /mnt/sda1/arduino/www/SmartRemoteControl/server.py
  • Când serverul pornește cu succes, veți vedea mesajul:
* Rulează pe http://0.0.0.0:5000/ * Repornește cu reloader
  • Dacă vedeți o eroare, verificați toate dependențele instalate în pașii anteriori.
  • În browserul dvs. web, introduceți http://arduino.local:5000/. Dacă browserul nu acceptă adresa URL mDNS (cum ar fi Windows, Android și unele distribuții Linux) introduceți http:// arduino_ ip_ abordare:5000/, unde arduino_ ip_ abordare este adresa IP a lui Arduino Yún. Adresa IP este situată în partea de jos a IDE-ului Arduino atunci când conectați Yún (Figura 2).
  • Odată ce pagina se încarcă, veți vedea o listă cu acțiunile butoanelor configurate. Dacă vedeți o eroare, verificați dacă dependențele sunt instalate corect, schița este încărcată și dacă serverul rulează fără erori.
  • Pentru a opri serverul, faceți clic combinația Ctrl-Cîn fereastra de comandă în care a fost pornit serverul.

Pasul #6: Utilizarea interfeței web

  • Pentru utilizare telecomandă inteligentăîndreptați LED-ul spre dispozitive electroniceși faceți clic pe unul dintre butoane active. Dacă dispozitivul necesar nu pornește, încercați să mutați LED-ul mai aproape de dispozitivele necesare. Gama de LED-uri este mică, aproximativ 6 picioare. Este necesar să adăugați un tranzistor pentru a crește raza de acțiune a LED-ului. Sunt furnizate informații detaliate Aici.
  • De asemenea, puteți testa codurile în infraroșu deschizând Yún Serial Monitor în Arduino IDE și trimițând codul în infraroșu ca comandă. De exemplu, trimiterea codului „SONY: C A90” (fără ghilimele) va face ca hardware-ul să trimită o comandă către pornind Sony A90. ("C" reprezintă bitul de lungime a comenzii, 12, convertit în hexazecimal).
  • Pentru pornire automată server la încărcare, editați fișierul / etc/ rc. localîn modulul Yún (folosind editorul nano sau vi) și adăugați rândul următor inainte de cu linia „ieșire 0” la sfârșit:
PYTHONPATH=/mnt/sda1/python-packages python /mnt/sda1/arduino/www/SmartRemoteControl/server.py
  • Pentru recunoașterea vorbirii, alergați browser Google Crom. Faceți clic pe butonul „Vorbiți” și browser Chrome va cere permisiunea de a folosi microfonul. Apoi rostiți numele operației active și așteptați până când este recunoscută. De exemplu, pentru a efectua operația „Filme”, apăsați butonul „Vorbiți” și rostiți cuvântul „Filme” în microfon. Expresii precum „Play Movies” sau „Run Movies” nu sunt acceptate - este recunoscut doar numele clar al operațiunii active.

Există multe articole pe Internet despre cum să-ți faci propria telecomandă a televizorului folosind Arduino, dar aveam nevoie de o telecomandă universală pentru a-mi controla televizorul și playerul media. Principalul avantaj al telecomenzii mele universale este că butoanele din aplicația pentru telefon Android au dublu scop, dar uită-te la videoclip.



Telecomanda este foarte convenabilă, deoarece aproape aceleași butoane de pe ecran sunt folosite pentru a controla televizorul și playerul. O diferență este că „ AV„în modul de control al televizorului se schimbă într-un buton” " (opriți) când treceți la modul de control al playerului. Imaginile arată două moduri, în stânga este modul de control al televizorului, în dreapta este modul de control al playerului.

Ei bine, acum vă voi spune puțin despre crearea unei astfel de telecomenzi. Pentru aparat am folosit telecomanda pentru televizorul ERGO si telecomanda pentru media player-ul DUNE HD TV101W.

Pentru a primi date de la telecomenzi, am folosit un senzor infraroșu TSOP1138 (analog cu TSOP4838) la o frecvență de funcționare de 38 kHz și l-am conectat la placa Arduino conform schemei:

Această schiță nu va fi necesară pentru a determina codarea transmisiei de date și pentru a citi codul butoanelor telecomenzii.

În schița din linia int RECV_PIN = 11; indicați numărul nostru de pin 4

După încărcarea schiței, deschideți „monitorul portului” și, apăsând butoanele telecomenzii, priviți datele primite.

Imaginea prezintă un exemplu de scanare a butonului de pornire de la telecomanda televizorului și telecomanda playerului. Acum creăm un tabel pentru codurile butoanelor.

L-am prins ca in poza de mai sus. Sub inscriptie televizor codurile butoanelor telecomenzii TV; sub inscriptie Jucător- coduri de la telecomanda playerului media.

Acum deconectam receptorul de semnal infraroșu de la placa Arduino și îl conectăm la acesta modul Bluetooth HC-05 și LED infraroșu conform diagramei din fotografie.

După aceea, trecem direct la schiță.

Schiță

#include IRsend irsend; int y = 1; void setup() ( Serial.begin(9600); ) void loop() ( if (Serial.available() > 0) ( int x = Serial.read(); if (x == 49) ( y = 1; ) if (x == 50) ( y = 2; ) if (y == 1) ( // codurile butoanelor pentru telecomanda televizorului if (x == 97) ( irsend.sendNEC(0x807F08F7, 32); delay(40) ); ) dacă (x == 98) ( irsend.sendNEC(0x807FA857, 32); delay(40); ) dacă (x == 99) ( irsend.sendNEC(0x807F708F, 32); delay(40); ) dacă (x == 100) ( irsend.sendNEC(0x807FF00F, 32); delay(40); ) if (x == 101) ( irsend.sendNEC(0x807F30CF, 32); delay(40); ) if (x == 102) ( irsend.sendNEC(0x807FB04F, 32); delay(40); ) if (x == 103) ( irsend.sendNEC(0x807F9867, 32); delay(40); ) if (x == 104) ( irsend .sendNEC(0x807F58A7, 32); delay(40); ) if (x == 105) ( irsend.sendNEC(0x807FD827, 32); delay(40); ) if (x == 106) ( irsend.sendNEC(0xC87) , 32); delay(40); ) if (x == 107) ( irsend.sendNEC(0x807F48B7, 32); delay (40); ) if (x == 108) ( irsend.sendNEC(0x807FB847, 32); delay(40); ) if (x == 109) ( irsend.sendNEC(0x807F6897, 32); întârziere (40); ) ) if (y == 2) ( //codurile butoanelor telecomenzii playerului media if (x == 97) ( irsend.sendNEC(0xFDC23D, 32); delay(40); ) if (x == 98) ( irsend. sendNEC(0xFDE01F, 32); delay(40); ) if (x == 99) ( irsend.sendNEC(0xFD18E7, 32); delay(40); ) if (x == 100) ( irsend.sendNEC (0xFDE817, 32); întârziere(40); ) dacă (x == 101) ( irsend.sendNEC(0xFDA857, 32); întârziere(40); ) dacă (x == 102) ( irsend.sendNEC(0xFD6897, 32); ); întârziere (40); ) dacă (x == 103) ( irsend.sendNEC(0xFDA857, 32); întârziere (40); ) dacă (x == 104) ( irsend.sendNEC(0xFD6897, 32); întârziere( 40); ) dacă (x == 105) ( irsend.sendNEC(0xFDE817, 32); delay(40); ) dacă (x == 106) ( irsend.sendNEC(0xFD18E7, 32); delay(40); ) dacă (x == 107) ( irsend.sendNEC(0xFD9867, 32); delay(40); ) dacă (x == 108) ( irsend.sendNEC(0xFD28D7, 32); delay(40); ) dacă (x = = 109) ( irsend.sendNEC(0xFD20DF, 32); delay(40); ) ) ) )


În schiță va trebui să editați codurile butoanelor, și anume în rândurile:

Dacă (x == 97) ( irsend.sendNEC(0x807F08F7, 32); delay(40);
Schimbați valoarea 807F08F7 la:

Dacă (y == 1) ( //codurile butoanelor pentru telecomanda televizorului if (x == 97) ( irsend.sendNEC(0x12345678, 32); delay(40); )
Unde 12345678 este codul butonului dvs.

După editarea schiței folosind codurile butoanelor, încărcați schița în Placa Arduinoși continuați cu instalarea aplicației pe telefon.

Pornim Bluetooth în telefon, căutăm dispozitivul nostru, creăm o pereche, apoi lansăm aplicația Pult la telefon.

La pornire vom avea un ecran cu roșu pictograma bluetoothîn colțul din dreapta jos, ceea ce indică faptul că nu suntem conectați la dispozitivul nostru.

După aceea, faceți clic pe această pictogramă. Ar trebui să vedem o fereastră cu o listă cu toate cele disponibile dispozitive bluetooth, unde ne selectăm dispozitivul pentru a ne conecta.

Acum ne-am întors din nou ecranul principalși deja putem controla televizorul:

Pentru a trece la modul de control trebuie să apăsăm butonul etichetat "Jucător". După cum am spus mai devreme, butonul nostru etichetat „AV” se va schimba într-un buton „ ":

Pentru a vă deconecta de la dispozitivul nostru, țineți apăsat butonul „Power” timp de câteva secunde.

Ei bine, câteva fotografii cu dispozitivul meu terminat.

A ieșit destul de bine, se pare. Astept comentarii la articol.

În această lecție ne vom uita la conectarea unui receptor IR la Arduino. Vă vom spune ce bibliotecă ar trebui utilizată pentru receptorul IR și vă vom demonstra o schiță pentru testarea funcționării receptor infrarosu de la telecomandă și analizează comenzile în C++ pentru a primi un semnal. Să observăm imediat că senzorul IR Arduino nu este potrivit pentru fiecare telecomandă; frecvența semnalului poate diferi.

Dispozitiv receptor IR. Principiul de funcționare

Receptoarele de radiații infraroșii sunt acum utilizate pe scară largă în aparate electrocasnice, mulțumită preț accesibil, simplitate și ușurință în utilizare. Aceste dispozitive vă permit să controlați dispozitivele folosind o telecomandă și pot fi găsite în aproape orice tip de echipament. Dar, în ciuda acestui fapt, modulul Bluetooth câștigă treptat din ce în ce mai multă popularitate.

Principiul de funcționare al unui receptor IR. Procesarea semnalului de la telecomandă

Receptorul IR de pe Arduino este capabil să primească și să proceseze semnal infrarosu, sub formă de impulsuri de o durată și o frecvență date. Folosit la fabricarea senzorilor de obstacole și a telemetrului pentru Arduino. De obicei, receptorul IR are trei picioare și este format din următoarele elemente: fotodioda PIN, amplificator, filtru trece banda, detector de amplitudine, filtru integrator si tranzistor de iesire.

Sub influența radiației infraroșii într-o fotodiodă, care are între pȘi n regiunile au creat o regiune suplimentară de semiconductor ( i-regiune), curentul începe să curgă. Semnalul merge la un amplificator și apoi la un filtru trece-bandă, care este reglat la o frecvență fixă: 30; 33; 36; 38; 40 și 56 kiloherți și protejează receptorul de interferențe. Interferența poate fi cauzată de orice aparat de uz casnic.

Pentru ca semnalul de la telecomandă să fie recepționat de receptorul IR Arduino, telecomanda trebuie să fie la aceeași frecvență cu care este setat filtrul din receptorul IR. Prin urmare, nu orice telecomandă va funcționa. Ar trebui să selectați un receptor IR și un transmițător IR cu aceeași frecvență. După filtru, semnalul merge la un detector de amplitudine care integrează filtrul și tranzistorul de ieșire.

Cum se conectează un receptor IR la Arduino

Carcasele receptoarelor cu infraroșu conțin un filtru optic pentru a proteja dispozitivul de câmpurile electromagnetice externe; acestea au o formă specială pentru a focaliza radiația primită pe o fotodiodă. Pentru a conecta receptorul IR la Arduino UNO, se folosesc trei picioare, care sunt conectate la - GND, 5V și A0. Vă recomandăm să folosiți 3,3 volți pentru a începe pentru a nu arde senzorul IR în timpul configurării.

Pentru această lecție vom avea nevoie de următoarele detalii:

  • Placa Arduino Uno / Arduino Nano / Arduino Mega;
  • tabla de paine;
  • receptor IR;
  • telecomandă;
  • 1 LED și rezistor de 220 Ohm;
  • fire mascul-mascul si barbat-fema.

Schema de conectare a receptorului IR la portul analog Arduino

Conectați receptorul IR conform diagramei prezentate mai sus și conectați LED-urile la pinii 12 și 13. Înainte de a descărca programul, va trebui să instalați biblioteca IRremote.h, dacă nu este deja instalată. Această bibliotecă nu se aplică bibliotecilor de mediu standard Programare Arduino IDE. Puteți descărca biblioteca IRremote.h și schița finită într-o arhivă de la Google Drive link .

Schiță pentru receptorul IR Arduino:

#include // conectați biblioteca pentru receptorul IR IRrecv irrecv(A0); // indică pinul la care este conectat receptorul IR decode_results rezultate; void setup () // procedura de configurare ( irrecv.enableIRIn (); // începe să primească un semnal infraroșu pinMode(13, IEȘIRE); // pinul 13 va fi ieșirea pinMode(12, OUTPUT); // pinul 12 va fi ieșirea pinMode(A0, INPUT); // pinul A0 va fi intrarea (ing. „input”) Serial.begin(9600); // conectați monitorul portului) bucla void () // bucla procedura ( if (irrecv.decode (&rezultate)) // dacă datele au sosit, executați comenzile( Serial .println(results.value); // trimite datele primite către port // aprinde și stinge LED-urile, în funcție de semnalul primit if (results.value == 16754775) ( digitalWrite (13, HIGH); ) if (results.value == 16769055) ( digitalWrite (13, LOW); ) if (results.value == 16718055) ( digitalWrite (12, HIGH); ) if (results.value == 16724175) ( digitalWrite (12, LOW); ) irrecv.resume (); // Accept următorul semnal pe receptorul IR } }

Explicații pentru cod:

  1. Biblioteca IRremote.h conține un set de comenzi și vă permite să simplificați schița;
  2. Declarația decode_results atribuie rezultatele numelui variabilei semnalelor primite de la telecomandă.

Senzorul IR poate fi utilizat în multe dispozitive de pe microcontrolerul Arduino, inclusiv controlul de la distanță a unui servo drive pe Arduino de la un receptor IR. La configurare, ar trebui să porniți monitorul Port Arduino IDE și află ce semnal este trimis de cutare sau cutare buton de pe telecomandă. Codurile rezultate ar trebui folosite în schiță după semnul dublu egal în condițiile if().

De asemenea, citește des:

Telecomanda cu infraroșu este una dintre cele mai multe moduri simple interacțiunea cu dispozitivele electronice. Deci, în aproape fiecare casă există mai multe astfel de dispozitive: televizor, Centrul muzical, video player, aer conditionat. Dar cel mai mult aplicație interesantă telecomandă cu infraroșu - telecomandă a robotului. De fapt, în această lecție vom încerca să implementăm această metodă de control folosind popularul controler Arduino Uno.

1. Telecomanda IR

Ce este nevoie pentru a învăța un robot să se supună unei telecomenzi cu infraroșu (IR)? În primul rând, avem nevoie de telecomanda în sine. Puteți folosi o telecomandă TV obișnuită sau puteți achiziționa o telecomandă în miniatură pentru radioul auto. Aceste tipuri de telecomenzi sunt adesea folosite pentru a controla roboții.

Această telecomandă are 10 butoane digitaleși 11 butoane pentru manipularea muzicii: volum, derulare înapoi, redare, oprire etc. Mai mult decât suficient pentru scopurile noastre.

2. Senzor IR

În al doilea rând, pentru a primi un semnal de la telecomandă avem nevoie de un senzor IR special. În general, putem detecta radiația infraroșu cu o fotodiodă/fototranzistor convențional, dar spre deosebire de acesta, senzorul nostru IR percepe semnalul infraroșu doar la o frecvență de 38 kHz (uneori 40 kHz). Această proprietate permite senzorului să ignore o mulțime de zgomote luminoase străine de la aprinderea lămpilor și a soarelui.

Pentru acest tutorial vom folosi popularul senzor IR VS1838B, care are următoarele caracteristici:

  • frecvență purtătoare: 38 kHz;
  • tensiune de alimentare: 2,7 - 5,5 V;
  • consum de curent: 50 µA.

Pot fi utilizați și alți senzori, de exemplu: TSOP4838, TSOP1736, SFH506.

3. Conexiune

Senzorul are trei fire (trei picioare). Dacă vă uitați la senzorul din partea receptorului de semnal IR, așa cum se arată în figură,

  • apoi în stânga va fi o ieșire către controler,
  • în centru - contact negativ de putere (masă),
  • iar în dreapta - contactul de putere pozitivă (2,7 - 5,5V).

Schema schematică a conexiunii

Aspectul aspectului

4. Program

După conectarea senzorului IR, vom scrie un program pentru Arduino Uno. Pentru aceasta vom folosi bibliotecă standard IRremotă, care este conceput special pentru a simplifica munca de recepție și transmitere a semnalelor IR. Folosind această bibliotecă, vom primi comenzi de la telecomandă și, pentru început, pur și simplu le vom afișa în fereastra monitorului portului serial. Acest program ne va fi util pentru a înțelege ce cod oferă fiecare buton.

#include "IRremote.h" IRrecv irrecv(2); // indică pinul la care este conectat receptorul rezultate decode_results; void setup() ( Serial.begin(9600); // setați viteza portului COM irrecv.enableIRIn(); // începeți să primiți ) void loop() ( dacă (irrecv.decode(&rezultatele)) ( // dacă datele sosite Serial .println(results.value, HEX); // imprimă datele irrecv.resume(); // acceptă următoarea comandă ))

Încărcați programul pe Arduino. După aceea, încercăm să primim comenzi de la telecomandă. Deschideți monitorul portului serial (Ctrl+Shift+M), ridicați telecomanda și îndreptați-o către senzor. Apăsând diferite butoane, observăm codurile corespunzătoare acestor butoane în fereastra monitorului.

Problemă la încărcarea programului

În unele cazuri, atunci când încercați să încărcați un program în controler, poate apărea o eroare:

TDK2 nu a fost declarat în domeniul său de aplicare

Pentru a o remedia, ștergeți doar două fișiere din folderul bibliotecă. Să mergem la explorator. Accesați folderul în care este instalată aplicația Arduino IDE (cel mai probabil „C:\Program Files (x86)\Arduino”). Apoi la folderul bibliotecii:

…\Arduino\libraries\RobotIRremote

Și ștergeți fișierele: IRremoteTools.cppȘi IRremoteTools.h. Apoi, repornim Arduino IDE și încercăm să încărcăm din nou programul pe controler.

5. Controlați LED-ul utilizând telecomanda IR

Acum că știm ce coduri corespund butoanelor telecomenzii, încercăm să programăm controlerul să pornească și să stingă LED-ul atunci când sunt apăsate butoanele de volum. Pentru a face acest lucru avem nevoie de coduri (pot varia în funcție de telecomandă):

  • FFA857 - creșterea volumului;
  • FFE01F - scăderea volumului.

Ca LED, folosim LED-ul încorporat pe pinul nr. 13, astfel încât schema de conectare va rămâne aceeași. Deci, programul:

#include "IRremote.h" IRrecv irrecv(2); // indică pinul la care este conectat receptorul rezultate decode_results; void setup() ( irrecv.enableIRIn(); // începeți să primiți) void loop() ( if (irrecv.decode(&rezultatele)) ( // dacă datele sosesc comutați (results.value) ( ​​​​cazul 0xFFA857: digitalWrite( 13, HIGH); break; case 0xFFE01F: digitalWrite(13, LOW); break; ) irrecv.resume(); // acceptă următoarea comandă ))

Îl încărcăm în Arduino și îl testăm. Clic vol+— LED-ul se aprinde. Clic vol-- iese afara. Acum, știind cum funcționează totul, puteți controla motoarele roboților sau alte dispozitive microelectronice de casă în locul unui LED!

receptor IR și telecomandă cu infraroșu telecomandă - cea mai comună și simplă metodă de control echipament electronic. Spectrul de radiații infraroșii nu este vizibil pentru ochiul uman, dar este recepționat perfect de receptoarele IR care sunt încorporate în dispozitive electronice. module Arduino telecomanda sunt folosite pentru control diverse tehniciîn linia de vedere.

Utilizarea pe scară largă a emițătorilor IR a devenit posibilă datorită costului redus, simplității și ușurinței de utilizare. Radiația IR se află în intervalul de la 750 la 1000 de microni - aceasta este cea mai apropiată parte a spectrului de lumina vizibilă. În regiunea radiației infraroșii, proprietățile optice se pot schimba diverse materiale. Unele ochelari, de exemplu, devin opace la razele IR, în timp ce parafina, dimpotrivă, este transparentă în spectrul IR.

Radiația este înregistrată folosind materiale fotografice speciale, pe baza cărora sunt realizate receptoarele. Pe lângă corpurile încălzite (Soarele, lămpile incandescente sau lumânările), sursa de radiație infraroșie poate fi dispozitive cu stare solidă - LED-uri IR, lasere. Radiația în domeniul infraroșu are o serie de caracteristici care le fac ușor de utilizat în telecomenzi:

  • Emițătoarele în stare solidă (LED-uri IR) sunt ieftine și compacte.
  • Razele infraroșii nu sunt percepute sau detectate de ochiul uman.
  • Receptoarele IR sunt, de asemenea, ieftine și de dimensiuni mici.
  • Interferență scăzută, deoarece emițătorul și receptorul sunt reglate pe aceeași frecvență.
  • Absent Influență negativă asupra sănătății umane.
  • Reflectanță ridicată din majoritatea materialelor.
  • Emițătorii IR nu afectează funcționarea altor dispozitive.

Telecomanda funcționează după cum urmează. Când apăsați butonul, semnalul este codificat în lumină infraroșie, receptorul îl primește și efectuează acțiunea necesară. Informațiile sunt codificate ca o secvență logică de pachete de impulsuri cu o anumită frecvență. Receptorul primește această secvență și demodulează datele. Pentru a primi un semnal, se folosește un microcircuit care conține un fotodetector (fotodiodă), amplificatoare, un filtru trece-bandă, un demodulator (un detector care vă permite să izolați anvelopa semnalului) și un tranzistor de ieșire. Are și filtre – electrice și optice. Astfel de dispozitive funcționează la o distanță de până la 40 de metri. Metoda IR de transmitere a datelor există în multe dispozitive: aparate electrocasnice, în echipamente industriale, calculatoare, linii de fibră optică.

Receptor IR Arduino

Pentru a citi semnalul IR veți avea nevoie de placa Arduino în sine, o placă de breadboard, un receptor de semnal IR și jumperi. Există o mare varietate de receptoare diferite, dar este mai bine să utilizați TSOP312 sau altele potrivite pentru Arduino. Datele de la telecomandă la receptor pot fi transmise prin protocolul RC5 sau NEC.

Pentru a determina ce picior îi aparține, trebuie să vă uitați la senzorul din partea receptorului. Apoi pe receptor contactul central este împământat, în stânga este ieșirea către microcontroler, în dreapta este puterea.

Pentru comoditate, puteți utiliza module de receptor IR gata făcute.

Conectarea receptorului IR la Arduino

Ieșirile receptorului IR sunt conectate la Arduino la GND, 5V și Intrare digitală. Diagrama pentru conectarea senzorului la al 11-lea pin digital este prezentată mai jos.

Iată cum arată circuitul cu modulul receptor infraroșu:


Biblioteci pentru lucrul cu IR

Pentru a lucra cu dispozitive IR, puteți utiliza biblioteca IRremote, care simplifică construcția sistemelor de control. Puteți descărca biblioteca. După descărcare, copiați fișierele în folderul \arduino\libraries. Pentru a vă conecta la schița dvs., trebuie să adăugați biblioteci fișier antet#include .

Pentru a citi informații, utilizați exemplul IRrecvDumpV2 din bibliotecă. Dacă telecomanda există deja în lista celor recunoscute, atunci scanarea nu este necesară. Pentru a citi codurile trebuie să rulați Mediul ARduino IDE și deschideți exemplul IRrecvDemo de la IRremote.

Există o a doua bibliotecă pentru lucrul cu semnale IR - aceasta este IRLib. Funcționalitatea este similară cu cea anterioară. În comparație cu IRremote, IRLib are un exemplu pentru determinarea frecvenței unui senzor IR. Dar prima bibliotecă este mai simplă și mai convenabil de utilizat.

După încărcarea bibliotecii, puteți începe să citiți semnalele primite. Următorul cod este folosit pentru aceasta.

Operatorul decode_results este necesar pentru a atribui rezultatele numelui variabilei semnalului primit.

În cod trebuie să rescrieți „HEX” în „DEC”.

Apoi, după încărcarea programului, trebuie să deschideți monitorul serial și să apăsați butoanele de pe telecomandă. va apărea pe ecran diverse coduri. Trebuie să faceți o notă care să indice ce buton îi corespunde codul primit. Este mai convenabil să înregistrați datele obținute într-un tabel. Acest cod poate fi apoi scris în program, astfel încât dispozitivul să poată fi controlat. Codurile sunt scrise în memoria plăcii Arduino EEPROM însăși, ceea ce este foarte convenabil, deoarece nu trebuie să programați butoanele de fiecare dată când porniți telecomanda.

Se întâmplă ca la încărcarea unui program să fie afișată eroarea „TDK2 nu a fost declarat în domeniul său”. Pentru a o remedia, trebuie să mergeți în Explorer, să mergeți în folderul în care este instalată aplicația Arduino IDE și să ștergeți fișierele IRremoteTools.cpp și IRremoteTools.h. După aceasta, trebuie să reîncărcați programul pe microcontroler.

Concluzie

Utilizarea telecomenzii Arduino ir face viața mai ușoară pentru utilizator. Poate acționa ca o telecomandă telefon mobil, tabletă sau computer - tot ce aveți nevoie este software special. Folosind Arduino, puteți centraliza tot controlul. Cu un singur buton de pe telecomandă puteți efectua mai multe acțiuni simultan - de exemplu, porniți televizorul și Blu-Ray în același timp.

Cele mai bune articole pe această temă