Благодаря тому, что в начале программы мы определили FIRST_KEY_PIN и KEY_COUNT, мы можем подключать произвольное количество кнопок к любым идущим друг за другом цифровым пинам, и для корректировки программы нам не придется менять параметры цикла for. Изменить понадобится лишь эти константы:
перед считыванием порта мы задаем смещение на номер первого используемого порта —FIRST_KEY_PIN.
Функция digitalRead(pin) возвращает состояние порта, номер которого передан ей параметромpin. Это может быть состояние HIGH или LOW. Или, выражаясь иначе: высокое напряжение или низкое, 1 или 0, true или false
Мы используем логический оператор отрицания «не» !. Если keyUp имеет значение 0, выражение!keyUp будет иметь значение 1 и наоборот.
Поскольку мы собрали схему с подтягивающим резистором, при нажатии кнопки мы будем получать на соответствующем порте 0.
Действия, описанные в условном выражении if, выполняются, когда его условие имеет значение «истина» (единица). Поэтому для выполнения действия по нажатию, мы инвертируем сигнал с кнопки.