- Komponenter krävs
- Hur fungerar IR-kommunikation?
- Kretsschema
- Programmering för Arduino IR Remote Decoder
- Spara IR-avkodningsdata i Excel-ark
IR (infraröd) kommunikation är enkel, billig och allmänt använd trådlös kommunikationsteknik. IR-ljus liknar det synliga ljuset, förutom att våglängden är något längre. Denna egenskap hos IR gör den omöjlig att upptäcka för det mänskliga ögat och perfekt för trådlös kommunikation.
Det finns många applikationer där du behöver avkoda IR-signalerna för att använda vissa enheter med IR-fjärrkontroll. Så i den här handledningen ska vi använda TSOP1838 IR-mottagaren för att bygga en IR Remote Decoder med Arduino. Hexkoden för varje knapp loggas till Microsoft Excel-ark. Denna enkla IR-fjärrkontrollavkodare kan användas i projekt som IR-fjärrkontrollrobot, hemautomation och andra IR-styrda projekt.
Tidigare använde vi IR-fjärrkontroll och TSOP-mottagare för att bygga många användbara applikationer som:
- IR-fjärrstyrd TRIAC-dimmerkrets
- IR-fjärrstyrd hemautomation med Arduino
- IR-fjärrstyrd hemautomation med PIC Microcontroller
- Mobiltelefonstyrd växelström med Arduino och Bluetooth
Komponenter krävs
- Arduino Uno / Arduino Nano
- IR-mottagare (TSOP1838)
- Bygeltrådar
- Bakbord
Hur fungerar IR-kommunikation?
Liksom andra kommunikationssystem har infraröd kommunikation också en sändare och mottagare. Sändaren ser ut som en LED, men den producerar ljus i IR-spektrumet istället för det synliga spektrumet. Medan IR-mottagaren är en fotodiod inbäddad med en förförstärkare som ändrar IR-ljuset till en elektrisk signal. För IR-kommunikation ska både sändare och mottagare riktas mot varandra. För att lära dig mer om IR-sändarens och mottagarkretsen, följ länken.
När du trycker på en fjärrknapp avger IR-lysdioden (sändaren) infrarött ljus. Detta ljus tas emot av mottagaren som vanligtvis är en fotodiod eller fototransistor. Men IR-ljuset sänds också ut av solen, glödlampor och allt annat som producerar värme. Detta kan störa sändarsignalen, så att sändarsignalen moduleras med hjälp av en bärfrekvens mellan 36 kHz och 46 kHz för att förhindra. Efter mottagning av signalen demodulerar IR-mottagaren signalen och konverterar den till binär innan den skickas till mikrokontrollern.
Här använder vi en TV-fjärrkontroll för att skicka IR-signal och TSOP1838 med Arduino för att ta emot dem.
Kontrollera också olika IR-baserade applikationer här inklusive TV-fjärrkontroll Jammer Circuit och IR-testkrets.
Kretsschema
Kretsschemat för IR Remote Decoder med Arduino ges nedan:
Anslutningarna är väldigt enkla eftersom IR-mottagarsensorn bara har tre stift, Vs, GND och Data. Anslut Vs och GND-stift på IR-mottagaren till 3,3 V GND-stift på Arduino och Data-stift till Digital stift 2 på Arduino.
Programmering för Arduino IR Remote Decoder
Den kompletta koden för Arduino IR-avkodare ges i slutet av sidan.
För att avkoda IR-fjärrkontrollen måste vi först ladda ner och lägga till ett IR-bibliotek i Arduino IDE. Du kan ladda ner IR Remote-biblioteket härifrån. När du har laddat ner filen öppnar du din Arduino IDE och går till Skiss> Inkludera bibliotek> Add.Zip-bibliotek . Välj biblioteksfilen och klicka på 'Öppna'.
Starta din kod genom att inkludera IR Remote-biblioteksfilen.
#omfatta
Därefter definierar du Arduino-stiftet där du anslöt datapinnen till IR-mottagaren. I mitt fall är den ansluten till D2-stiftet i Arduino.
int IRPIN = 2;
Skapa sedan en instans för IR-mottagarstift.
IRrecv irrecv (IRPIN);
I nästa rad, definiera ett objekt för klassen decode_results , det kommer att användas av IR-mottagaren för att skicka avkodad information.
resultat för avkodningsresultat;
Inuti setup () -funktionen, initiera seriekommunikationen och starta IR-mottagaren genom att ringa IRrecv- funktionen enableIRIn ().
ogiltig installation () {Serial.begin (9600); Serial.println ("Aktiverar IRin"); irrecv.enableIRIn (); Serial.println ("Enabled IRin"); Initiera_streamer (); }
I funktionen loop () kontrollerar irrecv.decode ständigt efter ny signal och om en ny signal tas emot kommer den mottagna signalkoden att lagras i en resultatvärde- funktion.
void loop () {if (irrecv.decode (& result)) {Serial.print ("Value:"); Serial.println (result.value, HEX); Write_streamer (); irrecv.resume (); } fördröjning (500); }
För att skicka data till ett Excel-ark från Arduino använder vi PLX-DAQ. Med funktionen Write_streamer () skickar vi data seriellt i ett specifikt mönster precis som att visa värdet på seriell bildskärm. Nyckelinjerna förklaras nedan:
ogiltig Write_streamer () {Serial.print ("DATA"); // skriv alltid "DATA" för att indikera följande som Data Serial.print (","); // Flytta till nästa kolumn med "," Serial.print (result.value, HEX); // Lagringsdatum på Excel Serial.print (","); // Gå till nästa kolumn med "," Serial.println (); // Slut på rad flytta till nästa rad}
När hårdvaran och programmet är klart är det dags att ladda upp programmet till ditt Arduino Nano Board. Efter uppladdning av koden riktar du fjärrkontrollen mot IR-mottagaren och trycker på fjärrknapparna. Hexkoden för varje knapp kommer att skrivas ut på den seriella bildskärmen.
Spara IR-avkodningsdata i Excel-ark
Nu för att skicka data till ett Excel-ark ska vi använda PLX-DAQ. Det är en Excel Plug-in-programvara som hjälper dig att skriva värden från Arduino till direkt i ett Excel-ark på din bärbara dator eller PC. Använd länken för att ladda ner filen. Efter nedladdningen extraherar du filen och klickar på.exe-filen för att installera den. Det skapar en mapp med namnet PLX-DAQ på skrivbordet.
Öppna nu filen ' PLX-DAQ-kalkylark' från skrivbordsmappen. Om makron är inaktiverade i din Excel ser du ett säkerhetsblock som visas i bilden nedan:
Klicka på Alternativ-> Aktivera innehållet -> Slutför -> OK för att aktivera makron. Efter detta får du följande skärm:
Välj nu baudhastigheten som “9600” och porten som din Arduino är ansluten till och klicka sedan på Anslut för att starta dataströmningen. Dina värden bör börja loggas som visas på bilden nedan.
Så här kan en Arduino IR Remote Decoder enkelt byggas för att konvertera IR-fjärrsignalerna till motsvarande HEX-kod.
Komplett Arduino-kod med en demo-video ges nedan.