Kontroll LED ved bruk av IR -sensor og IR -fjernkontroll med Arduino Uno

Kontroll LED ved bruk av IR -sensor og IR -fjernkontroll med Arduino Uno
Arduino Uno med IR -mottaker er en populær kombinasjon for å bygge IR -fjernkontrollprosjekter. IR -mottakeren er en enhet som kan oppdage og motta infrarøde signaler. Sammen kan Arduino UNO- og IR -mottakeren brukes til å bygge prosjekter som kan kontrolleres av en håndholdt IR -fjernkontroll eller annen IR -sender.

Denne artikkelen dekker:

  • 1: Introduksjon til IR -sensor
  • 2: IR Sensor Pinout
  • 3: grensesnitt IR -sensor med Arduino
  • 3.1: Skjematisk
  • 3.2: Installere det nødvendige biblioteket
  • 4: Avkoding av en IR -fjernknapper
  • 4.1: Kode
  • 4.2: Output
  • 5: Kontrollerende LED med IR -fjernkontroll
  • 5.1: Skjematisk
  • 5.2: Kode
  • 5.3: Output
  • Konklusjon

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:

  • VCC
  • GND
  • UTE

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.