Контакты ввода-вывода на Arduino считывают ток или напряжение?
Итак, я недавно запустил Arduino, и у меня только что возник вопрос о функции digitalRead().
Считывают ли контакты ввода-вывода напряжение или ток?
Причина, по которой я спрашиваю, заключается в подключенной схеме.
Таким образом, вывод ввода-вывода 7 находится на ВЫСОКОМ уровне, когда кнопка не нажата, потому что резистор подключен к 5 В через резистор. Когда кнопка нажата, кнопка замыкается на землю и находится на НИЗКОМ уровне. Почему он читается НИЗКО? Конечно, он все равно будет считывать 5 В, потому что он все еще подключен к 5 В через резистор?
@JamesM, 👍2
Обсуждение1 ответ
Они считывают напряжение. Когда вы закрываете кнопочный переключатель, на входе должно быть 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
- Обнаружение прерывания питания на NodeMCU
- NodeMCU - Vin контакт как выход 5V?
- Как узнать максимальный ток через VIN на плате NodeMCU?
- Как получить общее среднее полученных данных
- Затемнение этого светодиода ~ 30 В с помощью ШИМ, что мне нужно?
- Безопасно питать светодиодную ленту через ESP32 GPIO
- Подключение ACS 712 30A к солнечной панели с помощью Arduino
- Плохо ли питать arduino mega 6V через USB?
вам не нужен подтягивающий резистор на переключателе ... просто включите внутренние подтягивания, @jsotola
* Конечно, он все равно будет считывать 5 В, потому что он все еще подключен к 5 В через резистор?* В равной степени вы можете возразить, что он будет считывать 0v, потому что он подключен к Gnd через прямое короткое замыкание. Короткое замыкание будет иметь приоритет над резистором., @Nick Gammon