// robotics blocks - Trafic light - Kids road Gase
#include <IRremote.h>
#include <ESP32Servo.h>
#define PIN_RECEIVER
IRrecv receiver(PIN_RECEIVER);
const int servoPin = 18;
int PIN_RECEIVER 27;
int pos = 90;
#define ledRed 4
#define ledGreen 2
Servo servo;
char gateState=0; // 0= close , 1 = open
void setup()
{
receiver.enableIRIn(); // Start the receiver
// initialize serial for debugging
Serial.begin(115200);
Serial.println("start....system");
pinMode(PIN_RECEIVER, INPUT_PULLUP);
pinMode(ledRed,OUTPUT);
pinMode(ledGreen,OUTPUT);
servo.attach(servoPin, 500, 2400);
servo.write(90);
digitalWrite(ledGreen,HIGH);
Serial.println("pagar tutup");
}
void loop() {
if (receiver.decode()) {
translateIR();
receiver.resume(); // Receive the next value
}
if ( (buttonOpenState==0) && (gateState==0))
{ // open gate
digitalWrite(ledGreen, LOW);
digitalWrite(ledRed, HIGH);
for (pos =90; pos <= 180; pos = pos + 1) {
servo.write(pos);
// Serial.println(pos);
digitalWrite(ledRed, HIGH);
delay(15);
}
gateState=1;
Serial.println("pagar tutup");
}
if( (buttonCloseState==0) && (gateState==1) )
{ // close gate
if(pos>=180) // check if gate is already opemed
{
for (pos =180; pos >= 90; pos =pos- 1) {
servo.write(pos);
// Serial.println(pos);
delay(15);
}
gateState=0;
digitalWrite(ledRed , LOW);
digitalWrite(ledGreen,HIGH);
Serial.println("pagar buka ");
}
}
}