#include <Servo.h>//Including Servo Motor Library
#include <IRremote.h>//Including IR reciever Library
Servo gate;//Declaring the Servo Motors
Servo gate2;
//Declaring the Arduino Pins to which the components are connected to
int RECV_PIN = 3;
int first = 4;
int second = 5;
int third = 6;
int fourth = 7;
int redLed = 9;
int greenLed = 10;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup(){
//Declaring Components as input or output
pinMode(first, INPUT_PULLUP);
pinMode(second, INPUT_PULLUP);
pinMode(third, INPUT_PULLUP);
pinMode(fourth, INPUT_PULLUP);
pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);
//Setting up the IR reciver
irrecv.enableIRIn();
//Declaring the pin location of teh Servo Motor
gate.attach(2);
//Startng the Serial Monitor
Serial.begin(9600);
}
void blinkGreenLed(){//To blink the green LED
for(int i = 0; i<3; i++){
digitalWrite(greenLed, HIGH);
delay(100);
digitalWrite(greenLed, LOW);
delay(100);
}
}
void blinkRedLed(){//To blink the Red LED
for(int i = 0; i<3; i++){
digitalWrite(redLed, HIGH);
delay(100);
digitalWrite(redLed, LOW);
delay(100);
}
}
void loop(){
if (IrReceiver.decode()) {//Recieving and decoding the IR values from the IR receiver
Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX); // Print “old” raw data
IrReceiver.resume(); // Enable receiving of the next value
}
if(IrReceiver.decodedIRData.decodedRawData == 0xEA15FF00){//Blinking Green LED and opening the gate when “Plus” is pressed on the IR remote
blinkGreenLed();
gate.write(90);
delay(500);
}
else if(results.value == 0xF807FF00){//Blnking Red LED and closing the servo when “Minus” is pressed on the IR remote
blinkRedLed();
gate.write(0);
}
else if(digitalRead(first) == LOW && digitalRead(second) == HIGH && digitalRead(third) == HIGH && digitalRead(fourth) == LOW){//Opening the servo when teh switches are placed in a certain combination
blinkGreenLed();
gate.write(90);
}
else{//Keeping the servo closed
blinkRedLed();
gate.write(0);
}
}