- Componenten vereist
- Hoe werkt IR-communicatie?
- Schakelschema
- Programmering voor Arduino IR Remote Decoder
- De IR Remote Decoder-gegevens opslaan in een Excel-blad
IR-communicatie (infrarood) is een eenvoudige, goedkope en veelgebruikte draadloze communicatietechnologie. IR-licht lijkt enigszins op het zichtbare licht, behalve dat de golflengte iets langer is. Deze eigenschap van IR maakt het onzichtbaar voor het menselijk oog en perfect voor draadloze communicatie.
Er zijn veel toepassingen waarbij u de IR-signalen moet decoderen om sommige apparaten met een IR-afstandsbediening te bedienen. Dus in deze tutorial gaan we de TSOP1838 IR-ontvanger gebruiken om een IR Remote Decoder te bouwen met Arduino. De hexadecimale code voor elke knop wordt gelogd naar Microsoft Excel Sheet. Deze eenvoudige IR Remote Control Decoder kan worden gebruikt in projecten zoals IR Remote Control Robot, Domotica en andere IR-gestuurde projecten.
Eerder gebruikten we een IR-afstandsbediening en TSOP-ontvanger om veel nuttige toepassingen te bouwen, zoals:
- IR-afstandsbediend TRIAC-dimmercircuit
- IR-afstandsbediende huisautomatisering met Arduino
- Huisautomatisering met IR-afstandsbediening met behulp van PIC Microcontroller
- Mobiele telefoongestuurde AC met Arduino en Bluetooth
Componenten vereist
- Arduino Uno / Arduino Nano
- IR-ontvanger (TSOP1838)
- Doorverbindingsdraden
- Breadboard
Hoe werkt IR-communicatie?
Net als andere communicatiesystemen heeft infraroodcommunicatie ook een zender en ontvanger. De zender ziet eruit als een led, maar produceert licht in het IR-spectrum in plaats van in het zichtbare spectrum. Terwijl de IR-ontvanger een fotodiode is die is ingebed met een voorversterker die het IR-licht in een elektrisch signaal verandert. Voor IR-communicatie moeten zowel de zender als de ontvanger op elkaar worden gericht. Volg de link voor meer informatie over het IR-zender- en ontvangercircuit.
Wanneer een knop op de afstandsbediening wordt ingedrukt, zendt de IR-LED (zender) infrarood licht uit. Dit licht wordt ontvangen door de ontvanger, die typisch een fotodiode of fototransistor is. Maar het IR-licht wordt ook uitgezonden door de zon, gloeilampen en al het andere dat warmte produceert. Dit kan het zendersignaal storen, dus om te voorkomen wordt het zendersignaal gemoduleerd met een draaggolffrequentie tussen 36 kHz en 46 kHz. Bij ontvangst van het signaal demoduleert de IR-ontvanger het signaal en converteert het naar binair voordat het naar de microcontroller wordt gestuurd.
Hier gebruiken we een tv-afstandsbediening voor het verzenden van IR-signalen en TSOP1838 met Arduino om ze te ontvangen.
Controleer hier ook verschillende IR-gebaseerde applicaties, waaronder TV Remote Control Jammer Circuit en IR-testercircuit.
Schakelschema
Het schakelschema voor IR Remote Decoder met Arduino wordt hieronder gegeven:
De verbindingen zijn heel eenvoudig omdat de IR-ontvanger-sensor maar drie pinnen heeft: Vs, GND en Data. Verbind Vs en GND-pin van IR-ontvanger met 3.3V GND-pin van Arduino en Data-pin met digitale pin 2 van Arduino.
Programmering voor Arduino IR Remote Decoder
De volledige code voor de Arduino IR-decoder staat aan het einde van de pagina.
Om de IR-afstandsbediening te decoderen, moeten we eerst een IR-bibliotheek downloaden en toevoegen aan Arduino IDE. U kunt de IR Remote-bibliotheek hier downloaden. Na het downloaden van het bestand, open je je Arduino IDE en ga je naar Sketch> Inclusief bibliotheek> Add.Zip-bibliotheek . Selecteer het bibliotheekbestand en klik op 'Openen'.
Start uw code door het IR Remote-bibliotheekbestand toe te voegen.
# omvatten
Definieer daarna de Arduino-pin waarop u de datapin van de IR-ontvanger hebt aangesloten. In mijn geval is het verbonden met de D2-pin van Arduino.
int IRPIN = 2;
Maak daarna een instantie voor de IR-ontvangerpin.
IRrecv irrecv (IRPIN);
Definieer in de volgende regel een object voor de klasse decode_results , het zal door de IR-ontvanger worden gebruikt om de gedecodeerde informatie te verzenden.
decode_results resultaat;
Binnen in de setup () functie, inleiding van de seriële communicatie, en start de IR-ontvanger door te bellen naar de IRrecv functie enableIRIn ().
void setup () {Serial.begin (9600); Serial.println ("IRin inschakelen"); irrecv.enableIRIn (); Serial.println ("Ingeschakelde IRin"); Initialize_streamer (); }
In de loop () functie irrecv.decode voortdurend controleert nieuw signaal en wanneer een nieuw signaal wordt ontvangen, wordt het ontvangen signaal code worden opgeslagen in een result.value functie.
void loop () {if (irrecv.decode (& resultaat)) {Serial.print ("Waarde:"); Serial.println (result.value, HEX); Write_streamer (); irrecv.resume (); } vertraging (500); }
Voor het verzenden van gegevens naar een Excel-sheet vanuit Arduino gebruiken we PLX-DAQ. Met de functie Write_streamer () verzenden we de gegevens serieel in een specifiek patroon, net zoals de waarde op een seriële monitor wordt weergegeven. De hoofdlijnen worden hieronder uitgelegd:
void Write_streamer () {Serial.print ("DATA"); // schrijf altijd "DATA" om het volgende aan te duiden als Data Serial.print (","); // Ga naar de volgende kolom met een "," Serial.print (result.value, HEX); // Bewaar datum op Excel Serial.print (","); // Ga naar de volgende kolom met een "," Serial.println (); // Einde van rij naar volgende rij}
Zodra de hardware en het programma klaar zijn, is het tijd om het programma te uploaden naar je Arduino Nano Board. Richt na het uploaden van de code de afstandsbediening op de IR-ontvanger en druk op de afstandsbedieningstoetsen. De hex-code voor elke knop wordt op de seriële monitor afgedrukt.
De IR Remote Decoder-gegevens opslaan in een Excel-blad
Om gegevens naar een Excel-blad te sturen, gaan we PLX-DAQ gebruiken. Het is een Excel Plug-in-software die u helpt om waarden van Arduino rechtstreeks naar een Excel-sheet op uw laptop of pc te schrijven. Gebruik de link om het bestand te downloaden. Pak het bestand na het downloaden uit en klik op het.exe-bestand om het te installeren. Er wordt een map met de naam PLX-DAQ op uw bureaublad gemaakt.
Open nu het ' PLX-DAQ-spreadsheet'- bestand vanuit de bureaubladmap. Als macro's zijn uitgeschakeld op uw Excel, ziet u een beveiligingsblok zoals weergegeven in de onderstaande afbeelding:
Klik op Opties-> Inhoud inschakelen -> Voltooien -> OK om de macro's in te schakelen. Hierna krijg je het volgende scherm te zien:
Selecteer nu de baudrate als "9600" en de poort waarop uw Arduino is aangesloten en klik vervolgens op Connect om de datastreaming te starten. Uw waarden zouden moeten worden geregistreerd, zoals weergegeven in de onderstaande afbeelding.
Dit is hoe een Arduino IR Remote Decoder eenvoudig kan worden gebouwd om de IR-afstandsbedieningssignalen om te zetten in equivalente HEX-code.
Volledige Arduino-code met een demovideo wordt hieronder gegeven.