Denne artikkelen dekker:
1: Introduksjon til IR -sensor
En IR -mottaker er en enhet som kan oppdage og motta infrarøde (IR) signaler. Det brukes vanligvis i IR -fjernkontrollsystemer for å motta kommandoer fra en IR -fjernkontroller eller annen IR -sender. IR -mottakeren består av en fotodiode eller annen IR -sensitiv komponent som oppdager IR -signalene og en demodulatorkrets som avkoder signalene.
Utgangen fra IR -mottakeren er vanligvis et digitalt signal som kan behandles av en mikrokontroller eller annen elektronisk enhet. IR -mottakere brukes ofte i et bredt spekter av forbrukerelektronikk, inkludert TV -apparater, DVD -spillere, klimaanlegg og andre hvitevarer, så vel som i industri- og bilapplikasjoner.
Det er verdt å merke seg at IR -mottakersensorer kan være utsatt for forstyrrelser fra andre infrarøde kilder, for eksempel sollys eller andre IR -enheter. For å unngå dette anbefales det å peke IR -mottakersensoren direkte ved IR -fjernkontrollen, og for å holde sensoren borte fra andre infrarøde kilder.
2: IR Sensor Pinout
IR -mottakersensoren er en liten modul som vanligvis har tre pinner:
De VCC PIN er koblet til en strømforsyning, for eksempel 5V -pinnen på Arduino, for å gi strøm til sensoren. De UTE PIN er koblet til en digital inngangspinne på Arduino og GND PIN er koblet til bakkestiften på Arduino:
3: grensesnitt IR -sensor med Arduino
For å bruke IR -mottakersensoren med en Arduino UNO, et bibliotek som heter Irremote er påkrevd. Dette biblioteket kan lastes ned fra Arduino -nettstedet og lar Arduino avkode IR -signalene mottatt av sensoren. Når biblioteket er installert, kan det inkluderes i skissen (programmet) som lastes opp til Arduino.
Når IR -mottakersensoren er tilkoblet og skissen er lastet opp, kan Arduino begynne å motta og tolke signaler fra en IR -fjernkontroll. IR -signalene kan dekodes ved hjelp av en funksjon levert av Irremote -biblioteket, og de dekodede signalene kan deretter brukes til å kontrollere forskjellige enheter.
For eksempel kan et spesifikt IR -signal brukes til å slå en enhet av eller på, eller for å kontrollere lysstyrken eller temperaturen.
1: Skjematisk
Her er et grunnleggende skjema for å koble en IR -sensor til en Arduino:
IR -sensor | Arduino |
---|---|
VCC (strøm) | 5v |
GND (bakken) | GND |
Ut (output) | D8 |
Det er viktig å merke seg at forskjellige IR -sensorer kan ha forskjellige pinouts og spenninger, så det er viktig å sjekke databladet for den spesifikke sensoren du bruker.
2: Installere det nødvendige biblioteket
Det er flere IR -eksterne biblioteker tilgjengelig for Arduino. Du kan bruke et av disse bibliotekene i henhold til ditt krav og IR -ekstern protokoll du bruker.
Vi installerer Irremote bibliotek av Arminjo.
4: Avkoding av en IR -fjernknapper
Det er flere IR -fjernkontrakter tilgjengelig, for eksempel for TV -apparater, klimaanlegg og hjemmeautomatiseringssystemer. Ved å avkode en IR -fjernkontroll kan vi designe en universell fjernkontroll for alle disse apparatene.
For å avkode en IR -fjernkontroll, laste opp den nedenfor gitte koden og trykk på knappene på IR -fjernkontrollen, og følg deretter seriemonitoren til Arduino IDE. Eksempelskissen vil skrive ut IR -signalet i HEX -format og protokollen som brukes.
Pakk ut nøkkelkodene til IR -fjernknappene du vil bruke i prosjektet. Ved å bruke disse nøkkelkodene og Irremote -bibliotekfunksjonene kan vi kontrollere de ønskede handlingene når de tilsvarende knappene trykkes på IR -fjernkontrollen.
1: Kode
Last opp koden gitt nedenfor gjennom Arduino IDE på Arduino Uno:
#include /*Inkludert IR -eksternt bibliotek* /
Irrecv ir (8); /*D8 arduino pin definert*/
void setup ()
Ir.enableirin (); /*IR -kommunikasjon aktivert*/
Serie.Begynn (9600); /*Seriell baud rate definert*/
void loop ()
hvis (ir.dekode ()) / *IR ekstern bibliotekfunksjon for å avkode ekstern * /
Serie.Println (ir.Decodedirdata.dekodedrawdata, hex); /*Skriv ut hex -verdi*/
forsinkelse (1000);
Ir.gjenoppta (); /*Vent til neste inngang* /
Kode startet med å inkludere et IR -eksternt bibliotek. Etter det definerte vi Arduino Digital Pin som IR -signalet vil bli lest. Neste i oppsett () Del vi initialiserer IR -kommunikasjonen og baudfrekvensen er definert.
I Løkke() En del av koden Vi avkoder det mottatte IR -signalet i HEX -format som deretter skrives ut på Serial Monitor.
2: Output
Etter å ha lastet opp koden, trykket vi på tre knapper rød, grønn og blå på IR -fjernkontrollen.
Følgende Hex Kode er innhentet for den røde, grønne og blå knappen på IDE -seriemonitoren.
IR Remote -knapp | Hex -kode |
---|---|
Rød knapp | 0xFB04EF00 |
Grønn knapp | 0xfa05ef00 |
Blå knapp | 0xF906EF00 |
5: Kontrollerende LED med IR -fjernkontroll
For å kontrollere en enhet med IR -fjernkontrollen, må du bruke den dekodede Hex Signaler i skissen din. For eksempel kan du bruke en If-Else uttalelse for å sjekke det dekodede signalet og slå av eller på en bestemt enhet. Du kan også bruke de dekodede signalene for å kontrollere lysstyrken eller temperaturen på en enhet.
1: Skjematisk
Det gitte bildet forklarer forbindelsen mellom tre forskjellige fargede lysdioder med Arduino og IR -mottaker.
LED & IR -sensor | Arduino Pin |
---|---|
RØD | D5 |
GRØNN | D6 |
BLÅ | D7 |
IR -sensor ut | D8 |
2: Kode
Følgende er Arduino -koden for IR -fjernkontrolls lysdioder. Koden kan lastes opp til Arduino UNO -styret ved å åpne Arduino IDE.
#include /*Inkluder IR -eksternt bibliotek* /
Irrecv ir (8); /*IR -pin definert*/
int blå = 7; /*Blå ledet ved pinne D7*/
int grønn = 6; /*Grønn ledet ved pinne d6*/
int rød = 5; /*Rød ledet ved pinne d5*/
bool red_state = 1; /*Rød LED -tilstand*/
bool green_state = 1; /*Grønn LED -tilstand*/
bool blue_state = 1; /*Blå LED -tilstand*/
void setup ()
Ir.enableirin (); /*IR -kommunikasjon aktiverer*/
pinmode (blå, utgang); /*Blå LED -pinne satt som utgang*/
pinmode (grønn, utgang); /*Grønn LED -pinne satt som utgang*/
pinmode (rød, utgang); /*Rød LED -pinne satt som utgang*/
Serie.Begynn (9600);
void loop ()
hvis (ir.dekode ()) /*avkode IR -signal i hex -format* /
Serie.Println (ir.Decodedirdata.dekodedrawdata, hex);
/*Sjekk for IR -inngang*/
/*Rød LED -kode*/
hvis (ir.Decodedirdata.DecodedRawData == 0xFB04EF00 && Red_State == 1)
digitalwrite (rød, høy);
Serie.println ("rød ledet på");
Red_state = 0;
annet hvis (ir.Decodedirdata.DecodedRawData == 0xFB04EF00 && Red_State == 0)
digitalwrite (rød, lav);
Serie.println ("rød ledet");
Red_state = 1;
/*Sjekk for IR -utgang*/
hvis (ir.Decodedirdata.DecodedRawData == 0xfa05ef00 && Green_State == 1)
/*Grønn LED -kode*/
digitalwrite (grønn, høy);
Serie.Println ("Green LED ON");
Green_State = 0;
annet hvis (ir.Decodedirdata.DecodedRawData == 0xfa05ef00 && Green_State == 0)
digitalwrite (grønn, lav);
Serie.println ("grønn ledet");
Green_State = 1;
/*Sjekk for IR -kode*/
hvis (ir.Decodedirdata.DecodedRawData == 0xf906EF00 && blue_state == 1)
/*Blå LED -kode*/
digitalwrite (blå, høy);
Serie.Println ("Blue LED ON");
Blå_state = 0;
annet hvis (ir.Decodedirdata.DecodedRawData == 0xf906ef00 && blue_state == 0)
digitalwrite (blå, lav);
Serie.Println ("Blue LED OFF");
Blå_state = 1;
Ir.gjenoppta ();
Kode startet med å inkludere et IR -eksternt bibliotek. Etter det definerte vi Arduino Digital Pin som IR -signalet vil bli lest. Neste tre pinner for lysdioder er definert. Alle tre lysdioder har separate stater slik at vi kan bruke vekslingsfunksjonen inne i koden ved hjelp av og tilstanden.
I oppsett () Del vi initialiserer IR -kommunikasjonen og baudfrekvensen er definert. Sammen med at alle tre LED -pinnene er satt som utgang ved hjelp av pinmode () funksjon.
I Løkke() del av koden If-Else Tilstand brukes separat for alle tre lysdioder. Alle tre lysdioder styres separat ved hjelp av hex -koden.
IR Remote -knapp | Hex -kode |
---|---|
Rød knapp | 0xFB04EF00 |
Grønn knapp | 0xfa05ef00 |
Blå knapp | 0xF906EF00 |
Merk: Husk at dette er hex -koden for den eksterne vi bruker. Fjernkontrollen din kan ha en annen sekskantkode. Så bytt ut koden med hex -koden du fikk i seriemonitoren.
3: Output
Etter å ha lastet opp kode til Arduino Board, trykker du på at noen av de tre-knapps respektive lysdioder vil gløde. Hvis vi trykker på den røde knappen, vil den røde LED glød og omvendt:
Tilsvarende kan vi også gløde disse lysdiodene samtidig. For å slå av LED -en, trykk bare på knappen igjen, da vi har brukt vekslingstilstanden i Arduino -koden.
Ved hjelp av samme metode kan vi kontrollere AC -apparater ved å erstatte lysdiodene med en relébryter.
Konklusjon
Oppsummert er avkoding av en IR-fjernkontroll med en Arduino-mikrokontroller en enkel og kostnadseffektiv måte å kontrollere forskjellige enheter. Ved å koble en IR -mottaker til Arduino, laste opp en skisse og avkode IR -signalene, kan du enkelt kontrollere enheter som TV, klimaanlegg og hjemmeautomatiseringssystemer.