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

Установленные в режим OUTPUT выводы Arduino, находятся в высокоимпедансном состоянии, т.е. вывод может пропускать через себя ток (до 40 мА). Такого значения тока достаточно для питания небольших внешних цепей (например, светодиода), но не для питания требовательных к значению тока элементов (например, моторов). ОСТОРОЖНО: при такой настройке вывода, он может быть поврежден как при замыкании его на землю так и на питание.

Пример:

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