Помогите написать скетч с использованием библиотеки IRremote.
- Войдите на сайт для отправки комментариев
Втр, 16/07/2019 - 16:36
Хочу чтоб при комбинации кнопок выполнялся определеный участок программы, но не знаю как сделать это с этой библиотекой (я новичек в этом деле).
Пытался осуществить задумку с помощью вложенных условий, задумывалось это так, я нажимаю на ик пульте одну кнопку затем нажимаю вторую и при такой комбинации программа выполняется. но что-то идет не так.
#include "IRremote.h"
IRrecv irrecv(2); // указываем вывод, к которому подключен приемник
decode_results results;
int pult;
void setup() {
Serial.begin(9600); // выставляем скорость COM порта
irrecv.enableIRIn(); // запускаем прием
}
void loop() {
if ( irrecv.decode( &results )) { // если данные пришли
pult = results.value;
Serial.println( pult, HEX ); // печатаем данные
if (pult == 0x6897) {
if ( irrecv.decode( &results )) {
pult = results.value;
if (pult == 0xFFFFB04F) {
Serial.println("Выполняется программа");
}
}
}
irrecv.resume(); // принимаем следующую команду
}
}
проблема в том что я не знаю как сделать так что бы после нажатия определенной кнопки, сигнал принимался и записывался в ту же переменную еще раз.
но не знаю как сделать это с этой библиотекой
А как это сделать с другой библиотекой (или вовсе без библиотек) знаете?
Оно так и делается.
Во-первых, в программе должно быть только одно условие if(irrecv.decode( &results)). Не надо менять алгоритм из примера, там всё уже предусмотрено.
Во-вторых, если надо чтобы действие было по определённым кнопкам, в неком порядке, то никто не смотрит саму кнопку, надо смотреть порядок кнопок. Первый нужный код пришёл - установить флаг (переменную bool). Второй нужный пришёл - второй флаг и т. д. Какой-то ненужный код пришёл - сбросить флаги. Классический кодовый замок же. Гуглите у Alexgyver пример по кодовому замку, там всё максимально понятно, надо только приспособить на IRRemote.
Огромное спасибо, вы указали путь, это то что мне нужно было. Видите ли, я ещё новичку, и в этом случае понимал что мне не хватает знаний, я просто не знал куда копать...
Флажки как я до этого не додумался, спасибо большое, ещё раз пересмотрю видео alexgyver'a. И скорее всего все получится. Ещё раз огромное спасибо!
Нет, буду учится.
но не знаю как сделать это с этой библиотекой
А как это сделать с другой библиотекой (или вовсе без библиотек) знаете?
Нет, буду учится.
А вот это аргумент! Очень даже похвально! Учиться никогда не поздно и вообще не стыдно!