ir и кнопка совместная работа
- Войдите на сайт для отправки комментариев
Вс, 31/08/2014 - 20:24
здравствуйте, нужна помощь, мучаюсь уже неделю над простым для кого то кодом, и не могу добиться результата
хочу сделать чтобы свет включался от пульта, но осталась возможность включать с выключателя, сотни раз переделывал разные коды, но радобает либо от пульта, либо от кнопки, а вместе никак. в чем я ошибаюсь? заранее спасибо))
#include <IRremote.h> int RECV_PIN = 11; //vkhod IK priyemnika const int buttonPin = 2; IRrecv irrecv(RECV_PIN); decode_results results; int a=0; // peremennaya pereklyucheniya rezhima , pri nazhatii knopki ona prinimayet znacheniye +1 int b=0; void setup() { irrecv.enableIRIn(); // vklyuchit? priyemnik pinMode(13, OUTPUT); pinMode(buttonPin, INPUT); } void loop() { if (digitalRead (buttonPin == HIGH)) { (b=b+1); } else {b=0;} if (irrecv.decode(&results)) { delay(300); // zaderzhka pered vypolneniyem opredeleniya knopok , chtoby izbezhat? bystroye dvoynoye nazhatiye if (results.value == 0xFF1AE5) {a=a+1;} // obrabotka nazhitya klavishi , zdes? peremennaya prinimayet znacheniye +1 if (a==1 || b==1) {digitalWrite(13, HIGH);} else {digitalWrite(13, LOW); a=0;} { // delay(50); //pauza mezhdu povtorami // } // irrecv.resume(); // } }
Сведите a и b в одну переменную, причем не int, а boolean
не знаю в том направлении я шел как мне сказали или нет, но зажечь диод получилось(причем как и хотел зажигается и кнопкой и пультом), только он не тухнет блин XD что куда добавить??
причем если boolean поменять на int, то работать не будет
причем если boolean поменять на int, то работать не будет
Вот как раз boolean будет работать как надо
Для
есть два режима: true - свет включен и false - свет выключен, а для переключения достаточно
... и получается что-то типа так:
спасибо большое, все заработало)) только странно срабатывает, может с первого раза, а может только с третьего, почему так получается?
должен нормально срабатывать. может дребезг контактов мешает
можно вот так сделать:
только странно срабатывает, может с первого раза, а может только с третьего, почему так получается?
с этими b и c и не такой полтергейст может быть
дребезг контактов это на кнопке, а на пульте должно нормально срабатывать.... что то с кодом не то,
добавил delay, но все равно через раз как то срабатывает
буду мучать код))
ну, можно натыкать в код Serial.print, и посмотреть что происходит
вобщем все оказалось легче чем я думал. просто открыл пример Debounce и совсестил с библиотекой IR. и без каких либо переменных b и с
vdk, спасибо за помощь, иногда просто мозг замучивается))), и в итоге сам придумываю себе проблемы)
мож кому пригодится