HIGH | LOW
Константы HIGH и LOW задают логические уровни цифровых выводов: конкретное напряжение зависит от режима вывода (INPUT или OUTPUT) и логики платы.
Полная статья
Описание
HIGH и LOW — встроенные константы Arduino, которые обозначают два возможных состояния цифрового вывода: логическую единицу и логический ноль. Вы встретите их везде, где скетч работает с цифровыми сигналами: управляет светодиодом, читает кнопку, общается с датчиком.
Константы используются вместе с функциями digitalRead() и digitalWrite(). В логическом смысле HIGH соответствует true / 1, а LOW — false / 0. Однако конкретное напряжение на выводе зависит от того, работает ли он как вход или как выход, и от уровня логики самой платы.
HIGH
Если вывод настроен как INPUT через pinMode(), плата распознаёт сигнал как HIGH, когда напряжение превышает порог логической единицы:
- выше ~3.0 В — для 5-вольтовых плат;
- выше ~2.0 В — для 3.3-вольтовых плат.
Если вывод настроен как OUTPUT и на него подана команда digitalWrite(), он выдаёт напряжение питания логики:
- около 5 В на 5-вольтовых платах;
- около 3.3 В на 3.3-вольтовых платах.
В этом состоянии вывод отдаёт ток во внешнюю цепь — например, через токоограничивающий резистор зажигает светодиод, подключённый к земле.
LOW
Если вывод настроен как INPUT, плата распознаёт сигнал как LOW, когда напряжение ниже порога логического нуля:
- ниже ~1.5 В — для 5-вольтовых плат;
- ниже ~1.0 В — для 3.3-вольтовых плат.
Если вывод настроен как OUTPUT и переведён в LOW, на нём устанавливается около 0 В. Теперь вывод принимает ток: светодиод можно подключить через резистор к +5V или +3.3V, а вывод будет замыкать цепь на землю.
Подтяжка входа
Если вызвать digitalWrite(pin, HIGH) для вывода, работающего в режиме INPUT, на классических платах активируется внутренний подтягивающий резистор. Современный и более читаемый способ — сразу задать режим INPUT_PULLUP в pinMode().
При включённой подтяжке вход по умолчанию читается как HIGH, а при нажатии кнопки, замыкающей вывод на землю, становится LOW. Это стандартная и широко распространённая схема подключения кнопок.
Где применяется
- Управление светодиодом —
digitalWrite(pin, HIGH)зажигает,LOWгасит. - Чтение кнопки —
digitalRead()возвращаетHIGHилиLOWв зависимости от состояния контакта. - Управление реле или транзистором — логический уровень на выходе переключает нагрузку.
- Генерация цифрового сигнала — чередование
HIGHиLOWс задержками формирует прямоугольный импульс для датчиков или дисплеев.
Практические замечания
- Не оставляйте вход без подтяжки и без подключённого сигнала: «висящий в воздухе» вывод будет хаотично менять состояние из-за наводок.
- Всегда учитывайте уровень логики платы: подавать 5 В на вход 3.3-вольтового микроконтроллера небезопасно без согласования уровней.
HIGHиLOWпишутся заглавными буквами — это важно, иначе компилятор выдаст ошибку.trueиfalseв Arduino/C++, напротив, пишутся строчными.- При использовании
INPUT_PULLUPпомните об инверсной логике: нажатая кнопка даётLOW, отпущенная —HIGH. - Если
digitalRead()возвращает неожиданные значения, первым делом проверьте, задан ли режим вывода черезpinMode()до начала чтения.