#include <IRremote.h>
#include <Servo.h>
const int servo_signal_pin = 9;
const int green_led_pin = 4;
const int red_led_pin = 3;
const int button_pin = 2;
const int remote_input = 8;
unsigned long value_0 = 3910598400;
unsigned long value_1 = 4077715200;
unsigned long value_2 = 3877175040;
unsigned long value_3 = 2707357440;
unsigned long value_4 = 4144561920;
unsigned long value_5 = 3810328320;
unsigned long value_6 = 2774204160;
unsigned long value_7 = 3175284480;
unsigned long value_8 = 4092259158;
unsigned long value_9 = 3041591040;
unsigned long value_pause = 1470693120;
unsigned long value_plus = 3927310080;
unsigned long value_minus = 4161273600;
int last_state = 0;
IRrecv irrecv(remote_input); // An dieser Stelle wird ein Objekt definiert, dass den Infrarotsensor an Pin 11 ausliest.
Servo servoMotor;
decode_results results;
void traffic_light() {
if (digitalRead(red_led_pin) == 1) {
digitalWrite(red_led_pin, LOW);
digitalWrite(green_led_pin, HIGH);
delay(5000);
digitalWrite(green_led_pin, LOW);
}
}
void setup() {
pinMode(button_pin, INPUT);
//pinMode(remote_input, INPUT);
pinMode(red_led_pin, OUTPUT);
pinMode(green_led_pin, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn();
servoMotor.attach(servo_signal_pin, 900, 1500);
}
void loop() {
int button_state = digitalRead(button_pin);
digitalWrite(red_led_pin, HIGH);
if (button_state == 1 && last_state == 0) {
Serial.println("Yeah Button");
traffic_light();
}
last_state = button_state;
if (irrecv.decode()) {
unsigned long remote_data = irrecv.decodedIRData.decodedRawData;
Serial.println(remote_data);
if (remote_data == value_pause) {
Serial.println("Yeah Remote");
traffic_light();
}
irrecv.resume();
if (remote_data == value_plus) {
servoMotor.write(40);
}
if (remote_data == value_minus) {
servoMotor.write(-40);
}
}
// char output[100];
// sprintf(output, "Button State: %d Last State: %d", button_state, last_state);
// Serial.println(output);
}