Микроконтроллеры ATmega, установленные на плату Arduino имеют внутренние подтягивающие резисторы 20 кОм (резисторы, которые подключаются к питанию). Их можно использовать их вместо внешних подтягивающих резисторов, для этого необходимо в функции pinMode () задать аргумент INPUT_PULLUP.

Выводы, сконфигурированные как входы (INPUT или INPUT_PULLUP), могут быть повреждены, если они подключены к отрицательному напряжению или выше предельного уровня (5 вольт или 3 вольта).

Пример:

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