В скетче в массиве заданы все входы и выходы. Попробую "разложить по полочкам":
Код: Выделить всё
#define TOTAL_OUTPUTS (16) // общее количество выходов (управляемых реле)
#define TOTAL_INPUTS (10) // общее количество входов (контактов выключателей)
int outputPins[TOTAL_OUTPUTS] = {22, 24 , 26, 28, 30, 32, 34 ,36 , 23, 25, 27, 29, 31, 33, 35, 37}; // пины, отвечающие за выходы (позиции 0-15)
int inputPins[TOTAL_INPUTS] = {38, 39, 40, 41, 43, 45, 47, 49, 51, 53}; //пины, отвечающие за входы (позиции 0-9)
int directLinkedPins[TOTAL_INPUTS] = {22,24,26,28,30,32,34,36,23,25}; //пины выходов, которые управляются входами напрямую
Во-первых, контроллер управляется командами и команда turnoff0; выключит пин, который в массиве под номером 0 (это пин 22). А команда status1; выдаст статус пина из массива входов в позиции 1 (это пин 39). Ну и соответственно при изменении уровня сигнала на входе 1 будет выдана строчка типа "IN1 set to 1" или "IN1 set to 0".
О последней строчке немного подробней. Она устанавливает, что входы на соответствующих позициях управляют пинами автоматически. Т.е. в соответствии пину входа 0 (пин 38) ставится пин выхода 22, вход 1 (пин 39) управляет пином выхода 24 и так далее.