Помогите написать простой код.
- Войдите на сайт для отправки комментариев
Сб, 18/06/2016 - 19:30
Нужно сделать так, чтобы при первом нажатии на кнопку диод включался, а при повторном нажатии выключался.
#include "IRremote.h"
IRrecv irrecv(2); // указываем вывод, к которому подключен приемник
decode_results results;
#define r 11
#define g 10
#define b 9
void setup() {
irrecv.enableIRIn(); // запускаем прием
Serial.begin(9600);
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
}
void loop() {
if ( irrecv.decode( &results )) { // если данные пришли
Serial.println( results.value, HEX );
if (results.value == 0xDAEA83EC || results.value == 0xBF702887 || results.value == 0xB3A56E15 || results.value == 0x8E57DA3D || results.value == 0x324F8E29 || results.value == 0xA1063983 || results.value == 0x802F1877)
{
digitalWrite(r, HIGH);
}
irrecv.resume(); // принимаем следующую команду
}
}
Много значений results.value потому что пульт по какой-то причине через раз скидывает разные значения.
Спасибо всем за помощь!!! Очень помогли!!!
для этого нужно сделать флаг переключатель, тип так.
if ( results.value == 0xDAEA83EC || results.value == 0xBF702887 || results.value == 0xB3A56E15 || results.value == 0x8E57DA3D || results.value == 0x324F8E29 || results.value == 0xA1063983 || results.value == 0x802F1877 && flag == true) { flag = false; digitalWrite(r, HIGH); } else if ( results.value == 0xDAEA83EC || results.value == 0xBF702887 || results.value == 0xB3A56E15 || results.value == 0x8E57DA3D || results.value == 0x324F8E29 || results.value == 0xA1063983 || results.value == 0x802F1877 && flag == false) { flag = true; digitalWrite(r, LOW); }Спасибо всем за помощь!!! Очень помогли!!!
Да не за что, заходите ещё.
для этого нужно сделать флаг переключатель, тип так.
if ( results.value == 0xDAEA83EC || results.value == 0xBF702887 || results.value == 0xB3A56E15 || results.value == 0x8E57DA3D || results.value == 0x324F8E29 || results.value == 0xA1063983 || results.value == 0x802F1877 && flag == true) { flag = false; digitalWrite(r, HIGH); } else if ( results.value == 0xDAEA83EC || results.value == 0xBF702887 || results.value == 0xB3A56E15 || results.value == 0x8E57DA3D || results.value == 0x324F8E29 || results.value == 0xA1063983 || results.value == 0x802F1877 && flag == false) { flag = true; digitalWrite(r, LOW); }Оооо, вот этого я и ждал. Спасибо огромное, только с пультом или с ик датчиком проблемы. Потому что разные значения с одной кнопки постоянно приходят и из-за этого всё работает через раз. Вот скриншот даже сделал.