// 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 ");
         }
        }
          
 
 
}