подскажите пожалуйста как прописать в скетче коды полученные с пульта ду чтоб при нажатии на кнопку с этим кодом выполнялась команда пока не нажмешь другую кнопку. можно набросок этого участка, хотя бы узнать как прописывать коды. заранее спасибо!
Код (C): const int IR_COMMAND1 = 0x1234; const int IR_COMMAND2 = 0xabcd; // etc int last_code = 0; void loop() { bool mode_switch = false; int new_code = read_ir_sensor(); if (new_code) { mode_switch = (last_code!=new_code); last_code = new_code; } switch (last_code) { case IR_COMMAND1: { if (mode_switch) { /* begin action 1 */ } else { /* continue action 1 */ } break; } case IR_COMMAND2: { if (mode_switch) { /* begin action 2 */ } else { /* contine action 2 */ } break; } // etc } }
Код (C): const int IR_COMMAND1 = 0x1234; // определяем код команды 1 const int IR_COMMAND2 = 0xabcd; // определяем код команды 2 // etc // определяем коды других команд, если есть int last_code = 0; // код последней команды, изначально 0 - значит ничего не делать void loop() { bool mode_switch = false; // true, если новая команда отличается от старой, false в противном случае int new_code = read_ir_sensor(); // некоторая функция, возвращающая код команды с ИК приемника, либо 0, если ничего не принято if (new_code) // если поступила новая команда, new_code будет не 0 { mode_switch = (last_code!=new_code); // если старый и новый код не совпадают, значит произошло переключение режима работы, запоминаем это last_code = new_code; // сохраняем код последней команды } switch (last_code) // выбираем действие по коду команды { case IR_COMMAND1: // реакция на команду 1 { if (mode_switch) { /* begin action 1 */ } // если получена новая команда и изменился режим работы else { /* continue action 1 */ } // если та же команда получена повторно break; // выходим из switch() } case IR_COMMAND2: // реакция на команду 1 { if (mode_switch) { /* begin action 2 */ } // если получена новая команда и изменился режим работы else { /* contine action 2 */ } // если та же команда получена повторно break; // выходим из switch() } // etc // реакция на другие команды, аналогично примеру выше } }
const int IR_COMMAND1 = 0x1234; const int IR_COMMAND2 = 0xabcd; в этих строках вместо 0x1234 пишем свой код кнопки? и в самом начале порт который будет работать если выполняется условие как правильно прописать? подскажите.
Да, пишем свой код После строки int new_code = read_ir_sensor(); вставьте Код (C): Serial.print("ID Code:");Serial.println(new_code, DEC); чтобы видеть, какие коды соответствуют каким кнопкам Не забудьте в setup() начать обмен по последовательному порту с ПК (Serial.begin...)