Скетч управления с ИК пульта. Проблема
- Войдите на сайт для отправки комментариев
Зравствуйте.
Подключил ИК сенсор из комплекта IR Kit For Arduino к DFRduino RoMeo.
Залил скетч. При нажатии на ИК пульте кнопки POWER, должен зажеться светодиод подключеный к 13-му пину. При нажатии любой другой кнопки светодиод не должен загораться. У меня же зажигается и гасится с любого пульта. Подскажите в чём может быть причина.
#include <IRremote.h>
#include <IRremoteInt.h>
int Pwr=13; // LED
int valPWR=0;
int state=1;
//IR Receiver Module Pin and variable
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(Pwr,OUTPUT); // Вывод Pwr выход
digitalWrite(Pwr,LOW); // При старте записать нольв Pwr
irrecv.enableIRIn(); //Старт ИК-приёмника
}
void loop()
{
if(irrecv.decode(&results)) // Декодирование принятого сигнала по ИК
{
if(results.value==0xFD00FF); // Код кнопки POWER
{
digitalWrite(valPWR,HIGH); // Если пришёл код кнопки POWER, то valPWR в единицу
}
if(valPWR==LOW) {
state=1-state;
}
if(state==1){ // Если state=1, то
digitalWrite(Pwr,HIGH); // Пин Pwr в единицу
}else{ // Иначе
digitalWrite(Pwr,LOW); // Пин Pwr в ноль
}
delay(500); // Задержка перед приёмом следующего кода по ИК
irrecv.resume();
delay(50);
}
}
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
Вот в этом куске причина:
if(results.value==0xFD00FF); // Код кнопки POWER { digitalWrite(valPWR,HIGH); // Если пришёл код кнопки POWER, то valPWR в единицу } if(valPWR==LOW) { state=1-state; }Зачем после круглых скобок стоит ; ?
Для чего вот это действие digitalWrite(valPWR,HIGH); нужно?
И для чего вообще переменная valPWR?
#include <IRremote.h> #include <IRremoteInt.h> int Pwr = 13; // LED boolean state = 0; //IR Receiver Module Pin and variable int RECV_PIN = 2; IRrecv irrecv(RECV_PIN); decode_results results; void setup(){ pinMode(Pwr, OUTPUT); // Вывод Pwr выход irrecv.enableIRIn(); //Старт ИК-приёмника } void loop(){ if(irrecv.decode(&results)){ // Декодирование принятого сигнала по ИК if(results.value == 0xFD00FF){ // Код кнопки POWER state = !state; } digitalWrite(Pwr, state); // Пин Pwr delay(500); // Задержка перед приёмом следующего кода по ИК irrecv.resume(); delay(50); } }