Главная chevron_right Переменные и константы chevron_right Константы chevron_right HIGH | LOW

HIGH | LOW

Константы HIGH и LOW задают логические уровни цифровых выводов: конкретное напряжение зависит от режима вывода (INPUT или OUTPUT) и логики платы.

Полная статья

Описание

HIGH и LOW — встроенные константы Arduino, которые обозначают два возможных состояния цифрового вывода: логическую единицу и логический ноль. Вы встретите их везде, где скетч работает с цифровыми сигналами: управляет светодиодом, читает кнопку, общается с датчиком.

Константы используются вместе с функциями digitalRead() и digitalWrite(). В логическом смысле HIGH соответствует true / 1, а LOWfalse / 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() до начала чтения.

Полезные материалы