#include <IRremote.h>
#include <IRremoteInt.h>
// Here we have....
int RECV_PIN = 11; // Data input pin for the ky-022
int DOWN_PIN = 8; // Data output pin for the NPN transistor shorting DOWN to GND
int PTT_PIN = 10; // Data output pin for the NPN transistor shorting PTT to GND
int UP_PIN = 9; // Data output pin for the NPN transistor shorting UP to GND
// Arduino-IRremote Library Initialisation
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // IR-receiver start
Serial.println("IR-Receiver started\n");
// I set all pins to LOW for safety reasons
digitalWrite(PTT_PIN, LOW);
digitalWrite(UP_PIN, LOW);
digitalWrite(DOWN_PIN, LOW);
Serial.println("All output pins set to LOW\n");
}
// Main program
void loop() {
// Check for received signals
// Note: The 'delay' is just a placeholder for what your rig wants to recognize
// shorting the transistors as keypress ;-)
if (irrecv.decode(&results)) {
switch (results.value) {
case 0xFFE21D:
Serial.println("PTT ON\n");
digitalWrite(PTT_PIN, HIGH);
break;
case 0xFFA25D:
Serial.println("PTT OFF\n");
digitalWrite(PTT_PIN, LOW);
break;
case 0xFF22DD:
Serial.println("DOWN\n");
digitalWrite(DOWN_PIN, HIGH);
delay(250);
digitalWrite(DOWN_PIN, LOW);
break;
case 0xFF02FD:
Serial.println("UP\n");
digitalWrite(UP_PIN, HIGH);
delay(250);
digitalWrite(UP_PIN, LOW);
break;
default:
Serial.println("Ignoring this one:\t");
Serial.println(results.value, HEX);
break;
}
irrecv.resume();
}
}
Comments