HIGH LOW INPUT OUTPUT

Константы - это предопределенные выражения на языке Arduino. Они используются для облегчения чтения программ. Мы классифицируем константы по группам:

Определение логических уровней: истина и ложь (логические константы)
Есть две константы, используемые для представления правды и ложности в языке Arduino:, true и false.

false

false легче определить из двух. false определяется как 0 (ноль).

true

true часто говорят, что он определен как 1, что правильно, но у истины есть более широкое определение. Любое целое число, отличное от нуля, истинно в булевом смысле. Значения -1, 2 и -200 также определены как истина в булевом смысле.

Обратите внимание , что константы true и false набраны в нижнем регистре в отличие от HIGH, LOW, INPUT и OUTPUT.

Определение уровней выводов: HIGH и LOW

При чтении или записи на цифровой вывод имеется только два возможных значения, которые вывод / вывод может быть установлен: HIGHи LOW.

HIGH

Значение HIGH (по отношению к выводу) несколько отличается в зависимости от того, установлен ли вывод на INPUT или OUTPUT. Когда вывод сконфигурирован как с INPUT помощью pinMode() и считан с помощью digitalRead() , Arduino (ATmega) сообщит, HIGH если:

  • на выводе присутствует напряжение более 3,0 В (платы 5 В)
  • на выводе присутствует напряжение более 2,0 В (платы 3,3 В)

Пин также может быть сконфигурирован как INPUT с pinMode(), и впоследствии выставлен как HIGH с digitalWrite() . Это активирует внутренние подтягивающие резисторы на 20 кОм, которые будут подтягивать входной контакт до значения HIGH, если он не пподтянут к уровню LOW внешней схемой. Это можно сделать альтернативно, передав в INPUT_PULLUP в качестве аргумента функцию pinMode().

Когда вывод настроен на OUTPUT с помощью pinMode() и установлен на HIGH с digitalWrite(), вывод имеет вид:

  • 5 вольт (5В платы)
  • 3,3 вольта (3,3 В платы)

В этом состоянии он может источником тока, например, зажечь светодиод, который подключен через последовательный резистор к земле.

LOW

Значение LOW также имеет различное в зависимости от того, установлен ли пин на INPUT или OUTPUT. Когда пин сконфигурирован как INPUT с pinMode(), и считывается с digitalRead(), Arduino (ATmega) сообщит LOW, если:

  • на контакте присутствует напряжение менее 1,5 В (платы 5 В)
  • на выводе присутствует напряжение менее 1,0 В (прибл.) (платы 3,3 В)

Когда вывод настроен на OUTPUT с pinMode() и настроен на LOW с digitalWrite(), он имеет напряжение 0 В (для плат 5 В и 3,3 В). В этом состоянии он может потреблять ток, например, зажигать светодиод, подключенный через последовательный резистор, к напряжению +5 ​​В (или +3,3 В).

Определение режимов цифровых выводов: INPUT, INPUT_PULLUP и OUTPUT

Цифровые контакты могут быть использованы в качестве INPUT, INPUT_PULLUP или OUTPUT. 

Пины настроены как INPUT

Говорят, что контакты Arduino (ATmega), настроенные как INPUT с pinMode() находятся в состоянии высокого импеданса. Выводы, сконфигурированные как, INPUT предъявляют чрезвычайно малые требования к цепи, которую они дискретизируют, эквивалентно последовательному резистору в 100 МОм перед штырем. Это делает их полезными для чтения датчика.

Если ваш контакт настроен как INPUT и вы читаете переключатель, когда переключатель находится в разомкнутом состоянии, входной контакт будет «плавающим», что приведет к непредсказуемым результатам. Чтобы обеспечить правильное считывание при разомкнутом переключателе, необходимо использовать подтягивающий или понижающий резистор. Назначение этого резистора - вывести штырек в известное состояние, когда переключатель разомкнут. Обычно выбирается резистор 10 кОм, так как это достаточно низкое значение, чтобы надежно предотвратить плавающий вход, и в то же время достаточно высокое значение, чтобы не потреблять слишком большой ток, когда переключатель замкнут. 

Если используется понижающий резистор, входной контакт будет, LOW когда переключатель разомкнут и HIGH когда переключатель замкнут.

Если используется подтягивающий резистор, входной контакт будет, HIGH когда переключатель разомкнут и LOW когда переключатель замкнут.

Пины настроены как INPUT_PULLUP

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

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

Пины настроены как OUTPUT

Считается, что выводы, сконфигурированные как OUTPUT с pinMode() , находятся в состоянии низкого сопротивления. Это означает, что они могут обеспечить значительную величину тока для других цепей. Контакты ATmega могут подавать (обеспечивать ток) или потреблять (поглощать ток) до 40 мА (миллиампер) тока для других устройств / цепей. Это делает их полезными для питания светодиодов, потому что светодиоды обычно используют менее 40 мА. Нагрузки выше 40 мА (например, двигатели) потребуют транзистора или другой интерфейсной схемы.

Контакты, сконфигурированные как выходы, могут быть повреждены или разрушены, если они подключены либо к заземлению, либо к положительным силовым шинам.

Определение встроенных модулей: LED_BUILTIN

Большинство плат Arduino имеют контакт, подключенный к встроенному светодиоду последовательно с резистором. Константа LED_BUILTIN- это номер контакта, к которому подключен встроенный светодиод. На большинстве плат этот светодиод подключен к цифровому выводу 13.