Помогите написать скетч с использованием библиотеки IRremote.

android2202
Offline
Зарегистрирован: 16.07.2019

Хочу чтоб при комбинации кнопок выполнялся определеный участок программы, но не знаю как сделать это с этой библиотекой (я новичек в этом деле).


Пытался осуществить задумку с помощью вложенных условий, задумывалось это так, я нажимаю на ик пульте одну кнопку затем нажимаю вторую и при такой комбинации программа выполняется. но что-то идет не так. 

 

#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(); // принимаем следующую команду 
}
} 




проблема в том что я не знаю как сделать так что бы после нажатия определенной кнопки, сигнал принимался и записывался в ту же переменную еще раз.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

android2202 пишет:

но не знаю как сделать это с этой библиотекой 

А как это сделать с другой библиотекой (или вовсе без библиотек) знаете?

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

android2202 пишет:
что бы после нажатия определенной кнопки, сигнал принимался и записывался в ту же переменную еще раз

Оно так и делается.

Во-первых, в программе должно быть только одно условие if(irrecv.decode( &results)). Не надо менять алгоритм из примера, там всё уже предусмотрено.

Во-вторых, если надо чтобы действие было по определённым кнопкам, в неком порядке, то никто не смотрит саму кнопку, надо смотреть порядок кнопок. Первый нужный код пришёл - установить флаг (переменную bool). Второй нужный пришёл - второй флаг и т. д. Какой-то ненужный код пришёл - сбросить флаги. Классический кодовый замок же. Гуглите у Alexgyver пример по кодовому замку, там всё максимально понятно, надо только приспособить на IRRemote.

android2202
Offline
Зарегистрирован: 16.07.2019

Огромное спасибо, вы указали путь, это то что мне нужно было. Видите ли, я ещё новичку, и в этом случае понимал что мне не хватает знаний, я просто не знал куда копать...
Флажки как я до этого не додумался, спасибо большое, ещё раз пересмотрю видео alexgyver'a. И скорее всего все получится. Ещё раз огромное спасибо!

android2202
Offline
Зарегистрирован: 16.07.2019

Нет, буду учится.

android2202
Offline
Зарегистрирован: 16.07.2019

ЕвгенийП пишет:

android2202 пишет:

но не знаю как сделать это с этой библиотекой 

А как это сделать с другой библиотекой (или вовсе без библиотек) знаете?


Нет, буду учится.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

А вот это аргумент! Очень даже похвально! Учиться никогда не поздно и вообще не стыдно!