- Komponenter, der kræves
- Hvordan fungerer IR-kommunikation?
- Kredsløbsdiagram
- Programmering til Arduino IR Remote Decoder
- Gemme IR-dekoderdata i Excel-ark
IR (infrarød) kommunikation er enkel, billig og udbredt trådløs kommunikationsteknologi. IR-lys svarer noget til det synlige lys, bortset fra at bølgelængden er lidt længere. Denne egenskab ved IR gør det ikke detekterbart for det menneskelige øje og perfekt til trådløs kommunikation.
Der er mange applikationer, hvor du skal afkode IR-signaler for at betjene nogle enheder med IR-fjernbetjening. Så i denne vejledning skal vi bruge TSOP1838 IR-modtageren til at bygge en IR Remote Decoder ved hjælp af Arduino. Hex-koden for hver knap logges på Microsoft Excel-ark. Denne enkle IR-fjernbetjeningsdekoder kan bruges i projekter som IR-fjernbetjeningsrobot, hjemmeautomation og andre IR-kontrollerede projekter.
Tidligere brugte vi IR-fjernbetjening og TSOP-modtager til at opbygge mange nyttige applikationer som:
- IR fjernstyret TRIAC lysdæmper kredsløb
- IR fjernstyret hjemmeautomatisering ved hjælp af Arduino
- IR-fjernstyret hjemmeautomatisering ved hjælp af PIC Microcontroller
- Mobiltelefonstyret vekselstrøm ved hjælp af Arduino og Bluetooth
Komponenter, der kræves
- Arduino Uno / Arduino Nano
- IR-modtager (TSOP1838)
- Jumper Wires
- Brødbræt
Hvordan fungerer IR-kommunikation?
Ligesom andre kommunikationssystemer har infrarød kommunikation også en sender og modtager. Senderen ser ud som en LED, men den producerer lys i IR-spektret i stedet for det synlige spektrum. Mens IR-modtager er en fotodiode indlejret med en forforstærker, der ændrer IR-lyset til et elektrisk signal. Til IR-kommunikation skal både sender og modtager peges på hinanden. For at lære mere om IR-sender og modtager kredsløb, følg linket.
Når der trykkes på en fjernbetjeningsknap, udsender IR-LED'en (sender) infrarødt lys. Dette lys modtages af modtageren, der typisk er en fotodiode eller fototransistor. Men IR-lyset udsendes også af solen, pærer og alt andet, der producerer varme. Dette kan forstyrre sendersignalet, så sendersignalet moduleres ved hjælp af en bærefrekvens mellem 36 kHz og 46 kHz for at forhindre det. Efter modtagelse af signalet demodulerer IR-modtageren signalet og konverterer det til binært, inden det sendes til mikrocontrolleren.
Her bruger vi en tv-fjernbetjening til at sende IR-signal og TSOP1838 med Arduino til at modtage dem.
Tjek også forskellige IR-baserede applikationer her, herunder TV-fjernbetjening Jammer Circuit og IR-testerkredsløb.
Kredsløbsdiagram
Kredsløbsdiagrammet til IR Remote Decoder ved hjælp af Arduino er angivet nedenfor:
Forbindelserne er meget enkle, da IR-modtagersensoren kun har tre ben, Vs, GND og Data. Forbind Vs og GND-stift på IR-modtageren til 3,3 V GND-stift på Arduino og Data-stift til Digital pin 2 på Arduino.
Programmering til Arduino IR Remote Decoder
Den komplette kode til Arduino IR-dekoderen findes i slutningen af siden.
For at afkode IR-fjernbetjeningen skal vi først downloade og tilføje et IR-bibliotek til Arduino IDE. Du kan downloade IR Remote-biblioteket herfra. Efter download af filen skal du åbne din Arduino IDE og gå til Skitse> Inkluder bibliotek> Tilføj.Zip-bibliotek . Vælg biblioteksfilen, og klik på 'Åbn'.
Start din kode ved at inkludere IR Remote-biblioteksfilen.
#omfatte
Derefter defineres Arduino-stiften, hvor du tilsluttede datapinnen på IR-modtageren. I mit tilfælde er det tilsluttet D2-stiften i Arduino.
int IRPIN = 2;
Derefter oprette en instans til IR-modtager pin.
IRrecv irrecv (IRPIN);
I den næste linje skal du definere et objekt til decode_results- klassen, det vil blive brugt af IR-modtageren til at sende den dekodede information.
resultat af dekodningsresultater;
Inden i opsætningsfunktionen () skal du starte den serielle kommunikation og starte IR-modtageren ved at kalde IRrecv- funktionen aktiverIRIn ().
ugyldig opsætning () {Serial.begin (9600); Serial.println ("Aktivering af IRin"); irrecv.enableIRIn (); Serial.println ("Aktiveret IRin"); Initialiser_strømmer (); }
I løkken () funktion, irrecv.decode konstant søger efter nye signal, og hvis et nyt signal er modtaget, vil det modtagne signal kode gemmes i en result.value funktion.
ugyldig sløjfe () {if (irrecv.decode (& resultat)) {Serial.print ("Værdi:"); Serial.println (resultat.værdi, HEX); Skriv_streamer (); irrecv.resume (); } forsinkelse (500); }
For at sende data til et Excel-ark fra Arduino bruger vi PLX-DAQ. Ved hjælp af funktionen Write_streamer () sender vi dataene serielt i et bestemt mønster ligesom at vise værdien på seriel skærm. Nøglelinjerne forklares nedenfor:
ugyldig Write_streamer () {Serial.print ("DATA"); // skriv altid "DATA" for at angive følgende som Data Serial.print (","); // Gå til næste kolonne ved hjælp af et "," Serial.print (result.value, HEX); // Gem dato på Excel Serial.print (","); // Gå til næste kolonne ved hjælp af en "," Serial.println (); // Slut på række gå til næste række}
Når hardwaren og programmet er klar, er det tid til at uploade programmet til dit Arduino Nano Board. Efter uploaden af koden skal du pege fjernbetjeningen mod IR-modtageren og trykke på fjernbetjeningsknapperne. Hex-koden for hver knap udskrives på den serielle skærm.
Gemme IR-dekoderdata i Excel-ark
Nu for at sende data til et Excel-ark skal vi bruge PLX-DAQ. Det er en Excel Plug-in-software, der hjælper dig med at skrive værdier fra Arduino til direkte i et Excel-ark på din bærbare computer eller pc. Brug linket til at downloade filen. Efter downloadet skal du udpakke filen og klikke på.exe-filen for at installere den. Det opretter en mappe med navnet PLX-DAQ på dit skrivebord.
Åbn nu ' PLX-DAQ regneark'- filen fra skrivebordsmappen. Hvis makroer er deaktiveret på din Excel, vil du se en sikkerhedsblok som vist i nedenstående billede:
Klik på Indstillinger-> Aktivér indholdet -> Udfør -> OK for at aktivere makroerne. Herefter får du følgende skærmbillede:
Vælg nu baudhastigheden som “9600” og den port, som din Arduino er tilsluttet, og klik derefter på Opret forbindelse for at starte datastreamingen. Dine værdier skal begynde at blive logget som vist på billedet nedenfor.
Sådan kan en Arduino IR Remote Decoder let bygges til at konvertere IR-fjernsignalerne til ækvivalent HEX-kode.
Komplet Arduino-kode med en demo-video er angivet nedenfor.