#include <IRremote.hpp>
#include <Servo.h>
#define remote 2
int servo1 = 9;
int g = 11;
int r = 7;
float distate = 0;
float duration = 0;
float distate1 = 0;
float duration1 = 0;
const int distate_servo = 90;
Servo oleg;
int state = 0;
int state1 = 0;
void setup() {
Serial.begin(9600);
Serial.println("Ворота закрыты");
IrReceiver.begin(remote,ENABLE_LED_FEEDBACK);
pinMode(g ,INPUT);
pinMode(r , INPUT);
oleg.attach(servo1);
oleg.write(0);
digitalWrite(g, LOW);
digitalWrite(r, HIGH);
}
void loop() {
remote == LOW;
if (IrReceiver.decode())
{
switch(IrReceiver.decodedIRData.decodedRawData)
{
case 0x1FE0FF00: //Previous
Serial.println("закрыты");
oleg.write(0);
digitalWrite(r, 150);
digitalWrite(g, LOW);
break;
case 0x6F90FF00: //next
Serial.println("открыты");
oleg.write(90);
// сообщаем микро серво угол поворота
digitalWrite(g, HIGH);
delay(1000);
digitalWrite(r, HIGH);
break;
}
IrReceiver.resume();
}}
/*state = digitalRead(0x6F90FF00);
state1 = digitalRead(0x1FE0FF00);
delayMicroseconds(10);
duration1 = pulseIn(state1 ,HIGH);
distate1 = 0.017 * duration1;
duration = pulseIn(state ,HIGH);
distate = 0.017 * duration;
if(state = HIGH)
{ //oleg.write(90);
//delay(5000);// сообщаем микро серво угол поворота
digitalWrite(g,LOW);
delay(100);
digitalWrite(g, HIGH);
delay(1000);
digitalWrite(r, HIGH);
// цикл для поворота от 0 до 90 градусов
for (int i = 0; i <= 90; i++) {
oleg.write(i);
delay(5000);// сообщаем микро серво угол поворота
digitalWrite(g,LOW);
digitalWrite(r, HIGH);
}
}
if(state1 = HIGH)
{
for (int i = 90; i >= 0; i--)
{
oleg.write(i);
delay(5000);
digitalWrite(r, HIGH);
digitalWrite(g, LOW);
delay(100);
}*/