- Komponenter kreves
- Hvordan fungerer IR-kommunikasjon?
- Kretsdiagram
- Programmering for Arduino IR Remote Decoder
- Lagre IR Remote Decoder Data i Excel Sheet
IR (infrarød) kommunikasjon er enkel, billig og mye brukt trådløs kommunikasjonsteknologi. IR-lys ligner noe på det synlige lyset, bortsett fra at bølgelengden er litt lengre. Denne egenskapen til IR gjør den uoppdagelig for det menneskelige øye og perfekt for trådløs kommunikasjon.
Det er mange applikasjoner der du trenger å dekode IR-signalene for å betjene noen enheter med IR-fjernkontroll. Så i denne opplæringen skal vi bruke TSOP1838 IR-mottaker til å bygge en IR Remote Decoder ved hjelp av Arduino. Heeskoden for hver knapp blir logget på Microsoft Excel-ark. Denne enkle IR-fjernkontrolldekoderen kan brukes i prosjekter som IR-fjernkontrollrobot, hjemmeautomatisering og andre IR-kontrollerte prosjekter.
Tidligere brukte vi IR-fjernkontroll og TSOP-mottaker for å bygge mange nyttige applikasjoner som:
- IR-fjernkontrollert TRIAC-dimmerkrets
- IR fjernstyrt hjemmeautomatisering ved hjelp av Arduino
- IR fjernstyrt hjemmeautomatisering ved hjelp av PIC Microcontroller
- Mobilstyrt vekselstrøm ved hjelp av Arduino og Bluetooth
Komponenter kreves
- Arduino Uno / Arduino Nano
- IR-mottaker (TSOP1838)
- Jumper Wires
- Brettbrett
Hvordan fungerer IR-kommunikasjon?
Som andre kommunikasjonssystemer, har infrarød kommunikasjon også en sender og mottaker. Senderen ser ut som en LED, men den produserer lys i IR-spekteret i stedet for det synlige spekteret. Mens IR-mottaker er en fotodiode innebygd med en forforsterker som endrer IR-lyset til et elektrisk signal. For IR-kommunikasjon skal både sender og mottaker pekes mot hverandre. For å lære mer om IR-sender og mottakerkrets, følg lenken.
Når du trykker på en fjernkontrollknapp, avgir IR-LED (sender) infrarødt lys. Dette lyset mottas av mottakeren, som vanligvis er en fotodiode eller fototransistor. Men IR-lyset sendes også ut av solen, lyspærer og alt annet som produserer varme. Dette kan forstyrre sendersignalet, så for å forhindre at modulet sendesignalet ved hjelp av en bærefrekvens mellom 36 kHz og 46 kHz. Ved mottak av signalet demodulerer IR-mottakeren signalet og konverterer det til binært før det sendes til mikrokontrolleren.
Her bruker vi en TV-fjernkontroll for å sende IR-signal og TSOP1838 med Arduino for å motta dem.
Sjekk også forskjellige IR-baserte applikasjoner her, inkludert TV-fjernkontroll Jammer Circuit og IR-testerkrets.
Kretsdiagram
Kretsdiagrammet for IR Remote Decoder ved bruk av Arduino er gitt nedenfor:
Tilkoblingene er veldig enkle da IR-mottaker-sensoren bare har tre pinner, Vs, GND og Data. Koble Vs og GND-pinnen på IR-mottakeren til 3,3 V GND-pinnen på Arduino og Data-pinnen til Digital pinne 2 på Arduino.
Programmering for Arduino IR Remote Decoder
Den komplette koden for Arduino IR-dekoder er gitt på slutten av siden.
For å dekode IR-fjernkontrollen, må vi først laste ned og legge til et IR-bibliotek til Arduino IDE. Du kan laste ned IR Remote-biblioteket herfra. Etter at du har lastet ned filen, åpner du Arduino IDE og går til Skisse> Inkluder bibliotek> Add.Zip-bibliotek . Velg biblioteksfilen og klikk på 'Åpne'.
Start koden ved å inkludere IR Remote-biblioteksfilen.
#inkludere
Deretter definerer du Arduino-pinnen der du koblet datapinnen til IR-mottakeren. I mitt tilfelle er den koblet til D2-pinnen til Arduino.
int IRPIN = 2;
Deretter oppretter du en forekomst for IR-mottakerstift.
IRrecv irrecv (IRPIN);
I neste linje, definer et objekt for decode_results- klassen, det vil bli brukt av IR-mottakeren til å sende den dekodede informasjonen.
avkode_resultat resultat;
Inne i setup () -funksjonen, start den serielle kommunikasjonen, og start IR-mottakeren ved å ringe IRrecv- funksjonen enableIRIn ().
ugyldig oppsett () {Serial.begin (9600); Serial.println ("Aktivering av IRin"); irrecv.enableIRIn (); Serial.println ("Aktivert IRin"); Initialiser_strømmer (); }
I loop () -funksjonen sjekker irrecv.decode kontinuerlig for nytt signal, og hvis et nytt signal mottas, blir den mottatte signalkoden lagret i en resultat.verdifunksjon .
void loop () {if (irrecv.decode (& result)) {Serial.print ("Value:"); Serial.println (resultat.verdi, HEX); Skriv_streamer (); irrecv.resume (); } forsinkelse (500); }
For å sende data til et Excel-ark fra Arduino bruker vi PLX-DAQ. Ved å bruke funksjonen Write_streamer () sender vi dataene serielt i et bestemt mønster akkurat som å vise verdien på seriell skjerm. Nøkkellinjene er forklart nedenfor:
ugyldig Write_streamer () {Serial.print ("DATA"); // skriv alltid "DATA" for å indikere følgende som Data Serial.print (","); // Gå til neste kolonne ved å bruke "," Serial.print (result.value, HEX); // Lagringsdato på Excel Serial.print (","); // Gå til neste kolonne ved å bruke "," Serial.println (); // End of Row flytt til neste rad}
Når maskinvaren og programmet er klart, er det på tide å laste opp programmet til Arduino Nano Board. Etter at du har lastet opp koden, peker du fjernkontrollen mot IR-mottakeren og trykker på fjernkontrollknappene. Hex-koden for hver knapp vil bli skrevet ut på den serielle skjermen.
Lagre IR Remote Decoder Data i Excel Sheet
Nå for å sende data til et Excel-ark, skal vi bruke PLX-DAQ. Det er en Excel Plug-in-programvare som hjelper deg med å skrive verdier fra Arduino til direkte i et Excel-ark på din bærbare PC eller PC. Bruk lenken til å laste ned filen. Etter nedlasting, pakk ut filen og klikk på.exe-filen for å installere den. Det vil opprette en mappe som heter PLX-DAQ på skrivebordet ditt.
Åpne nå ' PLX-DAQ regneark' -filen fra skrivebordsmappen. Hvis makroer er deaktivert på Excel, vil du se en sikkerhetsblokk som vist i bildet nedenfor:
Klikk på Alternativer-> Aktiver innholdet -> Fullfør -> OK for å aktivere makroene. Etter dette får du følgende skjerm:
Velg nå overføringshastigheten som “9600” og porten som Arduino er koblet til, og klikk deretter på Koble til for å starte datastreamingen. Verdiene dine skal begynne å bli logget som vist på bildet nedenfor.
Slik kan en Arduino IR Remote Decoder enkelt bygges for å konvertere IR-fjernsignalene til ekvivalent HEX-kode.
Komplett Arduino-kode med en demo-video er gitt nedenfor.