помогите с программой

shakhatov
Offline
Зарегистрирован: 24.12.2014
как прописать чтобы когда я нажимаю на кнопку пульта светодиод включался а когда отпускаю кнопку светодиод выключался 
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
int a=0; // переменная переключения режима, при нажатии кнопки она принимает значение +1
int b=0; //
int c=0; //
 

void setup()
{
irrecv.enableIRIn(); // включить приемник

pinMode(13, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT); 

} 

void loop() {
if (irrecv.decode(&results)) {
delay(300); // задержка перед выполнением определения кнопок, чтобы избежать быстрое двойное нажатие

if (results.value == 0x1000809) {a=a+1;} // обработка нажитя клавиши, здесь переменная принимает значение +1
if (results.value == 0x1008889) {b=b+1;} //ВАЖНО !!! ( 1008889 ) это код кнопки №2 - моего пульта от телевизора Panasonic - у вашего пульта будет другой код - замените на свой
if (results.value == 0x1004849) {c=c+1;}
if (results.value == 0x100C8C9) {d=d+1;}
if (results.value == 0x1002829) {e=e+1;}
if (results.value == 0x100A8A9) {f=f+1;}
if (results.value == 0x1006869) {g=g+1;}

// начинаем включать светодиоды на пинах
if (a==1){digitalWrite(13, HIGH);} else {digitalWrite(13, LOW); a=0;}
if (b==1){digitalWrite(2, HIGH);} else {digitalWrite(2, LOW); b=0;}
if (c==1){digitalWrite(3, HIGH);} else {digitalWrite(3, LOW); c=0;}
{ //
delay(50); //пауза между повторами //
} //
irrecv.resume(); // 

}

}

 

vov4ik
Offline
Зарегистрирован: 10.09.2013

byte сc = 0;

if (results.value == 0x1004849) {c=c+1; cc = 0;} else {cc++;}

if (c==1){digitalWrite(3, HIGH);}

if (cc == 3){digitalWrite(3, LOW); c = 0;} // отпустил кнопку примерно через секунду погас