Помогите написать скетч с использованием библиотеки 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. И скорее всего все получится. Ещё раз огромное спасибо!
Нет, буду учится.
но не знаю как сделать это с этой библиотекой
А как это сделать с другой библиотекой (или вовсе без библиотек) знаете?
Нет, буду учится.
А вот это аргумент! Очень даже похвально! Учиться никогда не поздно и вообще не стыдно!