#include <IRremote.h>
#define IR_RECEIVE_PIN 8
void setup() {
Serial.begin(9600);
IrReceiver.begin(IR_RECEIVE_PIN);
}
void loop() {
if (IrReceiver.decode()) {
IrReceiver.resume();
Serial.println(IrReceiver.decodedIRData.command);
}
if ( IrReceiver.decodedIRData.command == 69 ) {
// Activate servo motor for 5 seconds
servoMotor.write(180); // Open position
delay(1000);
servoMotor.write(0); // Close position
delay(1000);
if (digitalRead(IR_SENSOR_1_PIN) == HIGH) {
// Turn off red LED and turn on green LED 1
digitalWrite(RED_LED_PIN, LOW);
digitalWrite(GREEN_LED_1_PIN, HIGH);
// Delay 2 seconds
delay(2000);
// Turn on green LED 2
digitalWrite(GREEN_LED_2_PIN, HIGH);
// Delay 3 seconds
delay(2000);
// Turn on green LED 3 and activate DC motor for 3 seconds
digitalWrite(GREEN_LED_3_PIN, HIGH);
digitalWrite(DC_MOTOR_PIN, HIGH);
delay(3000);
digitalWrite(DC_MOTOR_PIN, LOW);
// Reset LED states
digitalWrite(GREEN_LED_2_PIN, LOW);
digitalWrite(GREEN_LED_3_PIN, LOW);
}
// Check if IR sensor 2 is activated
if (digitalRead(IR_SENSOR_2_PIN) == HIGH) {
// Reset LED states
digitalWrite(RED_LED_PIN, HIGH);
digitalWrite(GREEN_LED_1_PIN, LOW);
digitalWrite(GREEN_LED_2_PIN, LOW);
digitalWrite(GREEN_LED_3_PIN, LOW);
digitalWrite(DC_MOTOR_PIN, LOW);
}
}
else if ( IrReceiver.decodedIRData.command == 70 ) {
// Activate servo motor for 10 seconds
servoMotor.write(90); // Open position
delay(2000);
servoMotor.write(0); // Close position
delay(1000);
if (digitalRead(IR_SENSOR_1_PIN) == HIGH) {
// Turn off red LED and turn on green LED 1
digitalWrite(RED_LED_PIN, LOW);
digitalWrite(GREEN_LED_1_PIN, HIGH);
// Delay 2 seconds
delay(3000);
// Turn on green LED 2
digitalWrite(GREEN_LED_2_PIN, HIGH);
// Delay 3 seconds
delay(3000);
// Turn on green LED 3 and activate DC motor for 3 seconds
digitalWrite(GREEN_LED_3_PIN, HIGH);
digitalWrite(DC_MOTOR_PIN, HIGH);
delay(10000);
digitalWrite(DC_MOTOR_PIN, LOW);
// Reset LED states
digitalWrite(GREEN_LED_2_PIN, LOW);
digitalWrite(GREEN_LED_3_PIN, LOW);
}
// Check if IR sensor 2 is activated
if (digitalRead(IR_SENSOR_2_PIN) == HIGH) {
// Reset LED states
digitalWrite(RED_LED_PIN, HIGH);
digitalWrite(GREEN_LED_1_PIN, LOW);
digitalWrite(GREEN_LED_2_PIN, LOW);
digitalWrite(GREEN_LED_3_PIN, LOW);
digitalWrite(DC_MOTOR_PIN, LOW);
}
}
IrReceiver.resume();
}