Код (C++): #include <IRremote.h> IRrecv irrecv(2); // указываем вывод, к которому подключен приемник decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // запускаем прием } void loop() { constexpr long unsigned int a[2][3] = //база с кодами кнопок {0xFFA25D,0xFF629D,0xFFE21D},{0xFFA25D,0xFF629D,0xFFE21D}; if ( irrecv.decode( &results )) { // если данные пришли switch(results.value){ case a[0][0]: Serial.print("1"); break; case a[0][1]: Serial.print("2"); break; } irrecv.resume(); // принимаем следующую команду } } Работаю с ИК приёмником и пультом. Для удобства хотел сделать массив "a" с кодами кнопок, но при попытке его создания выходит ошибка: error:expected unqualified-id before '{' token {0xFFA25D,0xFF629D,0xFFE21D},{0xFFA25D,0xFF629D,0xFFE21D}; ________________________________^
Пример: Код (C++): const unsigned int iALARM[6][16] = { // расписание [порядковый номер][режим] 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 830, 835, 835, 920, 930, 1015, 1035, 1120, 1140, 1225, 1240, 1325, 1335, 1420, 1430, 1515, 830, 900, 905, 945, 955, 1035, 1055, 1135, 1155, 1235, 1250, 1330, 1340, 1420, 1430, 1510, 830, 915, 930, 1005, 1020, 1055, 1115, 1150, 1210, 1245, 1300, 1335, 1345, 1420, 1430, 1505, 830, 910, 925, 1005, 1020, 1100, 1115, 1155, 1210, 1250, 1300, 1340, 1350, 1430, 3000, 3000, 830, 905, 920, 955, 1010, 1045, 1100, 1135, 1150, 1225, 1235, 1310, 1320, 1355, 3000, 3000, };
Можно заполнять двухмерный массив Код (C++): unsigned long array [2][3] = { {0xFFA25D,0xFF629D,0xFFE21D}, {0xFFA25D,0xFF629D,0xFFE21D} };
+ Тем более, что значения в нем почему-то просто повторяются: Код (C++): {0xFFA25D,0xFF629D,0xFFE21D}, {0xFFA25D,0xFF629D,0xFFE21D}
клавиатура 3х7 с разными кодами на ИК пульт. Просто по коду кнопки определяется какая была нажата кнопка. Хотя зависит от задачи.