#include <IRremote.h>
int power = 0;
int lighton = 10;
int ldelay = 300;
int lhigh = 0;
int hbeam = 0;
int flash = 0;
#define IR_RECEIVE_PIN 8
#define IR_BUTTON_1 224
#define IR_BUTTON_2 144
#define IR_BUTTON_3 2
#define IR_BUTTON_PLAY_PAUSE 168
#define IR_BUTTON_4 162
#define IR_BUTTON_5 34
#define IR_BUTTON_6 152
void setup() {
Serial.begin(9600);
IrReceiver.begin(IR_RECEIVE_PIN);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(5, OUTPUT);
}
void loop() {
if (IrReceiver.decode()) {
delay(500);
IrReceiver.resume();
int command = IrReceiver.decodedIRData.command;
switch (command) {
case IR_BUTTON_1: {
Serial.println("Pressed on button 1 (Left Turn)");
while ((lighton> 1) && (power ==1)) {
digitalWrite(7,HIGH);
digitalWrite(5, HIGH);
delay (ldelay);
digitalWrite(7,LOW);
digitalWrite(5, LOW);
delay(ldelay);
lighton = lighton-1;
Serial.println(lighton);
}
lighton = 10;
break;
}
case IR_BUTTON_2: {
Serial.println("Pressed on button 2 (Right Turn)");
while ((lighton > 1) && (power ==1)) {
digitalWrite(4,HIGH);
digitalWrite(9, HIGH);
delay (ldelay);
digitalWrite(4,LOW);
digitalWrite(9, LOW);
delay(ldelay);
lighton = lighton-1;
Serial.println(lighton);
}
lighton = 10;
break;
}
case IR_BUTTON_3: {
Serial.println("Pressed on button 3 (High Beam)");
if ((lhigh == 1) && (hbeam == 0) && (power ==1)){
digitalWrite(10, HIGH);
hbeam = 1;
}else{
digitalWrite(10, LOW);
hbeam = 0;
}
break;
}
case IR_BUTTON_PLAY_PAUSE: {
Serial.println("Pressed on button Headlights");
if ((lhigh ==0) && (power ==1)){
digitalWrite(11,HIGH);
lhigh = lhigh +1;
}else {
digitalWrite(11, LOW);
digitalWrite(10, LOW);
hbeam =0;
lhigh =0;
}
break;
}
case IR_BUTTON_4: {
Serial.println("Power");
if (power ==0){
digitalWrite(12, HIGH);
power =1;
}else {
digitalWrite(12,LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(5,LOW);
digitalWrite(9,LOW);
power =0;
lhigh =0;
hbeam =0;
}
break;
}
case IR_BUTTON_5: {
Serial.println("Pressed on button 5 (TEST Button)");
while(flash < 10){
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
digitalWrite(9, HIGH);
delay(ldelay);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(7, LOW);
digitalWrite(9, LOW);
delay(ldelay);
flash=flash+1;
}
flash = 0;
}
break;
case IR_BUTTON_6: {
Serial.println("Pressed on button 6 (Break)");
digitalWrite(5,HIGH);
digitalWrite(9,HIGH);
delay(2000);
digitalWrite(5,LOW);
digitalWrite(9,LOW);
}
break;
default: {
Serial.println("Button not recognized");
}
}
}
}