Цифровые выводы Arduino при помощи функции pinMode могут быть установлены либо как вход (режим INPUT), либо как выход (режим OUTPUT).

Установленные в режим INPUT выводы Arduino, находятся в высокоимпедансном состоянии, т.е. вывод даёт маленькую нагрузку на схему, в цепь которой он включён. Подключённый к выводу микросхемы резистор 100 МОм является эквивалентом внутреннему сопротивлению. Таким образом, для перевода порта ввода из одного состояния в другое требуется маленькое значение тока, что позволяет использовать выводы Arduino для подключения различных датчиков.

Пример:

В данном примере в функции setup() задаётся режим работы цифрового вывода № 13 Arduino – как выход (светодиод) и вывода № 2 – как вход (кнопка). Также устанавливается прерывание, при нажатии на кнопку. К выводу № 2 через резистор 10 кОм подключается тактовая кнопка. Функция loop() – пустая. Вся логика программы сосредоточена в обработчике прерывания – функции interrupt. При нажатии на кнопку срабатывает прерывание, в котором считывается состояние кнопки (нажата или нет). Далее, в соответствии с состоянием кнопки, зажигается/гасится светодиод, установленный на плате Arduino.