Die Experimente mit der Infrarot Fernbedienung werden fortgesetzt und einige neue Codes ausprobiert…

Schaltungsaufbau und der erste Test:

Pin 1 vom TSOP kommt an Arduino-Pin 11.

Pin 2 vom TSOP kommt an Arduino Ground.

Pin 3 vom TSOP kommt an Arduino 5 Volt.

Nun wollen wir den Infrarot-Empfänger mal testen. Im Seriellen Monitor der Arduino Software sollen die HEX-Werte ausgegeben werden mit denen wir später dann auch das Programm steuern.

int receiverpin =11;
#include <IRremote.h>
IRrecv irrecv(receiverpin);
decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
}

void loop()
{
if (irrecv.decode(&results))
{
Serial.print(results.value, HEX);
Serial.print(" ");
irrecv.resume();
}
}

Aufgabenstellung:

Diese Infrarot-Projekt soll folgende Aufgabe erfüllen:

Taste 1 = rote LED leuchtet

Taste 2 = grüne LED leuchtet

Taste 3 = rote und grüne LED leuchten

Taste 4 = rote LED blinkt

Taste 5 = grüne LED blinkt

Taste 6 = rote und grüne LED blinken

Als IR-Receiver kommt auch immer noch der TSOP 4830 zum Einsatz.

Programmierung:

int receiverpin =11;
#include <IRremote.h>
IRrecv irrecv(receiverpin);
decode_results results;

void setup()
{
irrecv.enableIRIn();
// for-Schleife gelöscht
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
}

void translateIR()
{
switch(results.value)
{
case 0x810: pinOn(2);
break;
case 0x410: pinOn(3);
break;
case 0xC10: pinOn(4);
break;
case 0x210: pinOn(5);
break;
case 0xA10: pinOn(6);
break;
case 0x610: pinOn(7);
break; 
}
}

void pinOn(int pin)
{
digitalWrite(pin, HIGH);
}

void loop()
{
if(irrecv.decode(&results))
{
translateIR();
for (int z = 0 ; z < 2 ; z++)
{
irrecv.resume();
}
}
}


Dieser Code hat noch einen kleinen Schönheitsfehler: Die vorherige LED wird nicht ausgeschaltet, doch darum kümmern wir uns dann im nächsten Artikel.

Von Torsten