Mein Programm sollte eigentlich so funktionieren, dass beim drücken der einen Taste auf einer Fernbedienung der motorPin auf high gesetzt wird und der Motor sich eben dreht und bei einer anderen Taste der wieder aufhört. Die Tasten erkannt und sonst funktioniert auch alles, bis ich die Taste zum Einschalten vom Pin drücke. Der Pin schaltet sich auch an, aber danach wird im Serial Monitor nur noch
IR code:0x0
other button
angezeigt, ohne, dass überhaupt irgendwas gedrückt wird und der Pin lässt sich auch nicht mehr ausschalten. Wie fixe ich das?
das ist der Code:
#include "IRremote.h"
int receiver = 11;
int motorPin = 6;
IRrecv irrecv(receiver);
uint32_t last_decodedRawData = 0;
void translateIR()
{
if (irrecv.decodedIRData.flags)
{
irrecv.decodedIRData.decodedRawData = last_decodedRawData;
Serial.println("REPEAT!");
} else
{
Serial.print("IR code:0x");
Serial.println(irrecv.decodedIRData.decodedRawData, HEX);
}
switch (irrecv.decodedIRData.decodedRawData)
{
case 0xF807FF00: digitalWrite(6, HIGH); break;
case 0xF609FF00: digitalWrite(6, LOW); break;
default:
Serial.println(" other button ");
}
last_decodedRawData = irrecv.decodedIRData.decodedRawData;
delay(500);
}
void setup()
{
Serial.begin(9600);
Serial.println("IR Receiver Button Decode");
irrecv.enableIRIn();
pinMode(6, OUTPUT);
}
void loop()
{
if (irrecv.decode())
{
translateIR();
irrecv.resume();
}
}