INPUT | INPUT_PULLUP | OUTPUT
Определение режимов цифровых выводов
Цифровые выводы могут использоваться как INPUT, INPUT_PULLUP или OUTPUT.
Изменение режима вывода с помощью pinMode() изменяет его электрическое поведение.
INPUT
Выводы Arduino (ATmega), настроенные как INPUT с помощью pinMode(), находятся в состоянии высокого импеданса. Выводы, настроенные как INPUT, предъявляют чрезвычайно малые требования к схеме, от которой они считывают сигнал, что эквивалентно последовательному резистору в 100 МОм перед выводом. Это делает их полезными для считывания данных с датчиков.
Если вы настроили вывод как INPUT и считываете состояние кнопки, когда кнопка находится в разомкнутом состоянии, входной вывод будет «плавающим», что приведёт к непредсказуемым результатам. Для обеспечения корректного считывания при разомкнутой кнопке необходимо использовать подтягивающий (pull-up) или стягивающий (pull-down) резистор. Назначение этого резистора — подтянуть вывод к известному состоянию, когда кнопка разомкнута. Обычно выбирается резистор на 10 кОм, так как это достаточно низкое значение для надёжного предотвращения плавающего входа и в то же время достаточно высокое, чтобы не потреблять слишком много тока при замкнутой кнопке. Более подробную информацию смотрите в руководстве Digital Read Serial.
Если используется стягивающий (pull-down) резистор, входной вывод будет в состоянии LOW при разомкнутой кнопке и HIGH при замкнутой.
Если используется подтягивающий (pull-up) резистор, входной вывод будет в состоянии HIGH при разомкнутой кнопке и LOW при замкнутой.
INPUT_PULLUP
Микроконтроллер ATmega на Arduino имеет внутренние подтягивающие резисторы (резисторы, подключённые к питанию внутри микросхемы), к которым вы можете обращаться. Если вы предпочитаете использовать их вместо внешних подтягивающих резисторов, вы можете использовать аргумент INPUT_PULLUP в pinMode().
Пример использования смотрите в руководстве Input Pullup Serial.
Предупреждение
Выводы, настроенные как входы с INPUT или INPUT_PULLUP, могут быть повреждены или выведены из строя при подключении к напряжениям ниже земли (отрицательным) или выше шины питания (5 В или 3 В).
OUTPUT
Выводы, настроенные как OUTPUT с помощью pinMode(), находятся в состоянии низкого импеданса. Это означает, что они могут обеспечить существенный ток для других цепей. Выводы ATmega могут отдавать (source) или поглощать (sink) ток до 40 мА (миллиампер) для других устройств/цепей. Это делает их полезными для питания светодиодов, поскольку светодиоды обычно потребляют менее 40 мА. Нагрузки свыше 40 мА (например, двигатели) потребуют транзистора или другой интерфейсной схемы.
Предупреждение
Выводы, настроенные как выходы, могут быть повреждены или выведены из строя при подключении к шине земли или питания.