Контакты ввода-вывода на Arduino считывают ток или напряжение?

Итак, я недавно запустил Arduino, и у меня только что возник вопрос о функции digitalRead().

Считывают ли контакты ввода-вывода напряжение или ток?

Причина, по которой я спрашиваю, заключается в подключенной схеме.

Таким образом, вывод ввода-вывода 7 находится на ВЫСОКОМ уровне, когда кнопка не нажата, потому что резистор подключен к 5 В через резистор. Когда кнопка нажата, кнопка замыкается на землю и находится на НИЗКОМ уровне. Почему он читается НИЗКО? Конечно, он все равно будет считывать 5 В, потому что он все еще подключен к 5 В через резистор?

, 👍2

Обсуждение

вам не нужен подтягивающий резистор на переключателе ... просто включите внутренние подтягивания, @jsotola

* Конечно, он все равно будет считывать 5 В, потому что он все еще подключен к 5 В через резистор?* В равной степени вы можете возразить, что он будет считывать 0v, потому что он подключен к Gnd через прямое короткое замыкание. Короткое замыкание будет иметь приоритет над резистором., @Nick Gammon


1 ответ


5

Они считывают напряжение. Когда вы закрываете кнопочный переключатель, на входе должно быть 0 В или цифровое "0". Когда вы открываете кнопку, резистор должен вытягивать вход на 5 В или цифру "1".

Да, он по-прежнему подключен к + 5 В через резистор, но переключатель почти 0 Ом полностью (или очень близко) к 0 В.

,

Для цифровых выводов это скорее сравнение напряжения. Они измеряют только в том случае, если напряжение выше или ниже определенного порога. Поэтому они только проверяют, является ли это ВЫСОКИМ или НИЗКИМ. Для ATmega328P на UNO любое напряжение ниже 1,5 В вернет значение LOW / 0, а все, что выше 3,5 В, вернет значение HIGH / 1. (Любое промежуточное напряжение не имеет гарантированного результата)., @Gerben

@Gerben Если мы стремимся быть здесь абсолютно точными, то фактическая спецификация для Vil (max) составляет 0,3 * Vcc, а Vih (min) - 0,5 * (0,6 * Vcc). Таким образом, если вы работаете при Vcc = 5,0 В, то получается 1,5 В и 3,5 В. Если ваш Vcc отличается от 5.0В, то эти значения также меняются. См. Техническое описание Atmel/Microchip ATmega328P на стр. 258. https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf, @jwh20