Cuprins:
- Pasul 1: Cum arată un senzor IR?
- Pasul 2: Placă / modul senzor IR Breakout
- Pasul 3: Piese și componente necesare
- Pasul 4: Conectarea senzorului IR la Arduino
- Pasul 5: Găsiți codul corespunzător fiecărei chei de pe telecomandă
- Pasul 6: Controlați un set de LED-uri folosind telecomanda IR
- Pasul 7: Depanare
- Pasul 8: Ce să faci în continuare?
Video: Utilizarea senzorului infraroșu cu Arduino: 8 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Ce este un senzor cu infraroșu (aka IR)?
Un senzor IR este un instrument electronic care scanează semnalele IR în limite specifice de frecvență definite de standarde și le convertește în semnale electrice pe pinul său de ieșire (numit de obicei pin de semnal). Semnalele IR sunt utilizate în principal pentru transmiterea comenzilor prin aer pe distanțe scurte (de obicei câțiva metri), cum ar fi ceea ce ați lucrat deja la telecomandele TV sau la alte dispozitive electronice similare.
Protocol de comunicare IR
Fiecare semnal reprezintă un cod specific. Semnalele electrice pot fi convertite înapoi la datele reale / codul trimis de expeditor. Când apăsați un buton de pe telecomanda televizorului, acesta generează un semnal corespunzător codului butonului (de ex. Pornit / Oprit, Creștere volum etc.) și îl trimite către un receptor (în acest caz televizorul dvs.). Atât expeditorul, cât și destinatarul au convenit asupra unui set de coduri, astfel încât receptorul să știe ce să facă în funcție de fiecare cod. Modul în care un cod ar trebui să fie modulat (modelat) ca semnal este definit în standarde diferite și fiecare producător de senzori încearcă în mod normal să producă un produs compatibil cu acestea, astfel încât să poată fi utilizat pe diferite dispozitive. Unul dintre cele mai cunoscute protocoale standard este de la NEC. Puteți găsi un scurt istoric al protocoalelor IR pe Wikipedia sub titlul IR pentru consumatori.
Pasul 1: Cum arată un senzor IR?
Senzorii IR sunt disponibili pe diferite pachete. Aici puteți vedea câteva ambalaje tipice pentru un receptor IR.
Pasul 2: Placă / modul senzor IR Breakout
Le puteți cumpăra, de asemenea, ca un modul IR / placă de descărcare pe eBay, Aliexpress sau Amazon. Astfel de module încorporează în mod normal unul dintre senzorii menționați mai sus, cu un pachet plăcut și prietenos împreună cu un LED care ar clipi atunci când senzorul detectează un semnal. Procedând astfel, veți observa dacă sunt transferate date. Vă sugerez să începeți cu unul dintre aceste module.
Notă: dacă aveți un senzor IR brut, nimic nu se va schimba, cu excepția faptului că ar trebui să verificați fișa tehnică a senzorului pentru a vă asigura că îl conectați corect, deoarece altfel s-ar putea să aveți un fum albastru frumos cu un miros care să dureze ora. Știi ce vreau să spun;)
Pasul 3: Piese și componente necesare
Aici puteți găsi lista componentelor de care ar trebui să completați acest tutorial:
Link-uri eBay:
- 1 x Arduino Uno:
- 1 x modul senzor IR cu telecomandă:
- Rezistențe de 4 x 220 ohmi:
- 4 x LED:
- 8 x cablu Dupont:
- 1 x panou fără sudură:
- 1 x Mini panou de lucru (opțional):
Link-uri Amazon.com:
- 1 x Arduino Uno:
- 1 x modul senzor IR cu telecomandă:
- 1 x panou fără sudură:
- Rezistențe de 4 x 220 ohmi:
- 4 x LED:
- 8 x cablu Dupont:
- 1 x Mini panou de lucru (opțional):
Pasul 4: Conectarea senzorului IR la Arduino
Configurarea conexiunii senzorului IR la Arduino este foarte simplă. Pe lângă pinul VCC și GND, senzorul are un singur pin de ieșire care ar trebui conectat la unul dintre pinii digitali ai Arduino. În acest caz, este conectat la pinul 13.
Am încercat să demonstrez atât modulul senzorului IR, cât și configurarea senzorului IR brut. După cum se poate vedea pe imagini, poziția pinilor VCC și GND de pe modulul senzorului este opusă senzorului brut. Cu toate acestea, este posibil să nu fie cazul senzorului dvs., așa cum am menționat în pasul anterior, în cazul utilizării senzorului brut, verificați mai întâi fișa tehnică.
Pasul 5: Găsiți codul corespunzător fiecărei chei de pe telecomandă
Pentru a programa Arduino să facă ceva când apăsați o tastă de pe telecomandă, ar trebui să aveți mai întâi codul corespunzător acelei taste. Codul cheie este un număr prezentat în mod normal ca hexazecimal. Fiecare telecomandă are propriul set de coduri cheie, în timp ce este posibil ca două controlere să partajeze același cod în scopuri diferite. Având coduri cheie diferite, împreună cu utilizarea unor intervale de frecvență diferite, asigură faptul că două telecomenzi de pe dispozitive diferite nu ar avea interferențe. De aceea, când vă schimbați canalul TV, playerul DVD nu reacționează deloc.
Pentru a detecta codurile pentru telecomanda IR, trebuie mai întâi să rulați o schiță simplă care încearcă să citească codul de la senzor atunci când apăsați o tastă și o trimite prin portul serial către computerul dvs., unde îl puteți accesa utilizând instrumentele Serial Monitor de IDE Arduino. Așa face schița atașată acestei secțiuni. Ar fi mai bine să apăsați fiecare buton pentru a vedea codul și a scrie lista codurilor undeva, astfel încât să nu mai aveți nevoie să rulați acest cod în viitor. Lista codurilor cheie pe care le vedeți ca tabel în imagine sunt de fapt coduri pe care le-am primit când apăsați butoanele telecomenzii mele IR ieftine.
De asemenea, puteți accesa codul sursă real partajat pe editorul meu web Arduino de la ir-key-code-logger.
Notă: Nu vă fie teamă dacă vedeți un cod ca FFFFFF undeva între ele. Înseamnă că ați apăsat și menținut apăsat un buton pentru o vreme. Vom reveni asupra ei mai târziu. Deocamdată ignorați-le și concentrați-vă pe alte coduri.
Pasul 6: Controlați un set de LED-uri folosind telecomanda IR
Acum că avem un cod pentru fiecare buton, este timpul să ne concentrăm asupra modului în care le putem folosi. În mod normal, utilizați telecomanda IR pentru a trimite comenzi către Arduino pentru a face ceva cum ar fi aprinderea sau oprirea unei lămpi, mutarea unui robot într-o direcție specifică, afișarea ceva pe un ecran LCD / OLED etc. Aici încercăm să demonstrăm procesul folosind un simplu circuit format din 4 LED-uri în diferite culori. Vrem să pornim sau să oprim fiecare dintre ele printr-un buton dedicat al telecomenzii IR. După cum puteți vedea pe schemă, trebuie să conectați Arduino în modul următor la LED-uri și senzor:
Arduino GND -> senzor IR GND.
Arduino VCC -> senzor IR VCC.
Arduino 13 -> ieșire semnal senzor IR.
Arduino 2 -> Anodul LED-ului albastru (pinul mai scurt al LED-ului albastru)
Arduino 3 -> Anodul LED-ului verde (pinul mai scurt al LED-ului verde)
Arduino 4 -> Anodul LED-ului galben (pinul mai scurt al LED-ului galben)
Arduino 5 -> Anodul LED-ului roșu (pinul mai scurt al LED-ului roșu)
Arduino GND -> Catodul tuturor LED-urilor printr-un rezistor de 220 ohmi (pinul mai lung al LED-urilor)
Puteți găsi codul corespunzător acestui circuit în fișierul atașat sau pe editorul meu web Arduino la ir-led-control.
Pasul 7: Depanare
În timp ce vă configurați proiectul și urmați pașii, puteți întâlni multe situații ciudate. Iată lista cu câteva erori obișnuite pe care le puteți obține atunci când lucrați cu senzorul IR.
Obținerea FFFFFF la apăsarea unei taste
Când apăsați un buton, puteți observa că de cele mai multe ori raportează un cod precum FFFFFF. Acest lucru se întâmplă când apăsați un buton și îl țineți apăsat pentru o vreme, chiar și pentru o perioadă scurtă de timp. Scenariul este că atunci când apăsați butonul inițial, telecomanda IR trimite codul butonului și atâta timp cât țineți apăsat butonul, acesta repetă trimiterea FFFFFF, ceea ce înseamnă că utilizatorul încă mai apasă butonul raportat recent. Ar fi bine. Puteți doar să le omiteți. Codul real este cel pe care l-ați primit chiar înainte de FFFFFF pe monitorul serial.
Senzorul IR nu reacționează deloc și pare că se încălzește
Taie puterea !!! Dacă sunteți sigur că schița loggerului de coduri de chei este corectă, atunci problema poate fi din cauza configurării greșite a firelor dvs. Scenariul care mi s-a întâmplat a fost că pentru modulul meu IR (cel atașat la placă) am conectat VCC și GND în mod opus (din cauza faptului că nu am folosit culori adecvate pentru firele mele de conectare). Procedând astfel, componenta senzorului a ars și s-a ridicat un fum albastru frumos. Am cumpărat un pachet de senzori IR brut și am încercat să-l înlocuiesc și acum funcționează ca un farmec:). Din păcate, am făcut aceeași greșeală când testam cu senzorul IR brut și de data aceasta nu s-a întâmplat nimic, cu excepția faptului că senzorul s-a încălzit. Deci, verificați întotdeauna circuitul înainte de a porni alimentarea!
Uneori senzorul detectează un cod pe care nu l-am mai văzut până acum
Aceasta este una dintre cele mai frecvente probleme. Cel mai probabil se datorează unuia dintre următoarele motive:
Nu vă îndreptați telecomanda IR direct către senzor
Acest lucru va duce la apariția unor coduri noi (mai ales coduri mai lungi) pe care nu le-ați mai primit niciodată și, în mod normal, nu se potrivesc cu lungimea codurilor pe care le aveți deja. Așa că nu uitați să îndreptați întotdeauna telecomanda către senzorul dvs.
Folosiți o telecomandă IR ieftină (ca cea pe care am folosit-o în acest tutorial)
În loc să utilizați telecomenzi imprevizibile ieftine, puteți încerca același scenariu folosind telecomanda TV sau DVD Player sau telecomanda IR a oricăror dispozitive pe care le aveți. În mod normal, acestea au o bună calitate a semnalului / hardware-ului (și, desigur, sunt mai scumpe) și, pe baza experienței mele, funcționează bine chiar dacă nu vă îndreptați telecomanda direct către senzor.
De unde știu dacă un cod înregistrat nu este un gunoi
Codurile sunt prezentate în mod normal în format hexazecimal. Dacă le convertiți la valoarea binară corespunzătoare, veți observa că reprezentarea binară a ultimului octet este negarea octetului. Dacă știți acest lucru, puteți face această verificare în codul dvs. pentru a vă asigura că codul pe care l-ați primit este de fapt unul valid sau nu. De exemplu, dacă ați obținut FF7A85, reprezentarea sa binară ar fi următoarea:
1111 1111 0111 1010 1000 0101
De la stânga la dreapta, fiecare lot de 4 cifre reprezintă reprezentarea unui caracter în numărul hexazecimal original. După cum puteți vedea, lotul corespunzător lui 7 este 0111 și lotul corespunzător lui 8 este 1000, care este negația exactă a acestuia. Prin negare, vreau să spun că toate 0 ar fi 1 și toate 1 ar fi înlocuite cu 0. Același lucru este valabil și pentru următorul care este A (1010) și 5 (0101).
Pasul 8: Ce să faci în continuare?
Acum e rândul tău. Depinde de imaginația ta să vezi ce poți face cu acest mic senzor simplu în mână. Iată câteva idei pentru a începe:
- Utilizați telecomanda IR a unuia dintre dispozitivele pe care le aveți acasă (TV, Stereo etc.) și încercați să o utilizați în proiectul dvs. Arduino
- Încercați să porniți toate LED-urile simultan apăsând o tastă și apoi opriți-le folosind o altă tastă
- Utilizați butonul Sus / Jos al telecomenzii pentru a porni / opri LED-urile unul câte unul până când toate se aprind / opresc
- Creați un semafor folosind LED-uri și controlați-l folosind telecomanda
- Dacă aveți la îndemână un mic motor DC, încercați să porniți / opriți sau să schimbați direcția de rotație prin telecomandă IR
- Puteți utiliza telecomanda televizorului pentru a vă controla robotul sau pentru a activa / dezactiva unii senzori / actuatori de pe acesta
Spuneți-mi despre comentarii, ce ați face (sau ați făcut deja) folosind telecomanda IR.
Recomandat:
Utilizarea plăcii senzorului complex Arts pentru a controla datele pure prin WiFi: 4 pași (cu imagini)
Utilizarea plăcii senzorului complex Arts pentru a controla datele pure prin WiFi: ați dorit vreodată să experimentați controlul gestual? Faceți lucrurile să se miște cu o mișcare a mâinii? Controlați muzica cu o răsucire a încheieturii mâinii? Acest instructable vă va arăta cum! Placa senzorului pentru arte complexe (complexarts.net) este un microc versatil
Neopixel Ws2812 Rainbow LED Glow Cu M5stick-C - Rularea Rainbow pe Neopixel Ws2812 Utilizarea M5stack M5stick C Utilizarea Arduino IDE: 5 pași
Neopixel Ws2812 Rainbow LED Glow Cu M5stick-C | Rularea Rainbow pe Neopixel Ws2812 Utilizarea M5stack M5stick C Utilizarea Arduino IDE: Bună băieți, în acest instructables vom învăța cum să utilizați LED-uri neopixel ws2812 sau benzi LED sau matrice LED sau inel cu LED cu placa de dezvoltare m5stack m5stick-C cu Arduino IDE și vom face un model curcubeu cu el
Utilizarea senzorului de distanță cu ultrasunete și a ieșirii monitorului serial: 6 pași
Utilizarea senzorului de distanță cu ultrasunete și a ieșirii monitorului serial: Hei băieți! Doriți să aflați cum să utilizați o ieșire de monitor serial. Ei bine, aici aveți tutorialul perfect despre cum să faceți acest lucru! În acest instructable, vă voi ghida prin pașii simpli necesari pentru a detecta distanța folosind senzorul cu ultrasunete și pentru a raporta
Utilizarea senzorului de amprentă digitală pentru prezența la timp în combinație cu soluția XAMP: 6 pași (cu imagini)
Utilizarea senzorului de amprentă digitală pentru prezența în timp în combinație cu soluția XAMP: Pentru un proiect școlar, am căutat o soluție cu privire la modul de urmărire a prezenței elevilor. Mulți dintre studenții noștri vin târziu. Este o treabă plictisitoare care le verifică prezența. Pe de altă parte, există o mulțime de discuții, deoarece elevii vor spune adesea
Utilizarea senzorului de mișcare cu RaspberryPi și Telegram Bot: 4 pași
Utilizarea senzorului de mișcare cu RaspberryPi și Telegram Bot: Bună băieți. În această postare vom folosi Raspberry Pi Telegram Bot cu senzor PIR (mișcare)