Какое напряжение и ток может потреблять цифровой вход Arduino Uno?
У меня есть цифровой выход 24 В постоянного тока и 0,5 А от контроллера ABB IRC5. Мне нужно подать этот цифровой выход на цифровой вход Arduino Uno. Как мне это сделать?
@Sri Harsha, 👍0
Обсуждение4 ответа
Лучший ответ:
Одно из распространенных заблуждений заключается в том, что ограничение тока контакта GPIO применяется к входам. Это не так.
Максимальный сток 40 мА применим только в том случае, если вывод установлен в положение ВЫХОД и находится в НИЗКОМ состоянии — в этот момент вывод соединяется с землей через МОП-транзистор.
- Читайте: Что такое контакт GPIO?
Однако, когда контакт находится в режиме INPUT, он имеет высокое сопротивление. Это означает, что он не поглощает и не создает ток (за исключением очень небольшого тока утечки). Единственное, что имеет значение, это напряжение. Это должно:
- Никогда не превышайте напряжение VCC, превышающее 0,3 В (5,3 В при питании от 5 В)
- Никогда не опускайтесь ниже -0,3В
- Имеют логические уровни, находящиеся в пределах пороговых значений входа:
- Ниже 0,3 × VCC для LOW
- Выше 0,6 × VCC для ВЫСОКОГО уровня
Вы можете подключить вход к сигналу 5 В и 1 000 000 гигаампер, и все будет хорошо.
Однако, если вы случайно установите контакт на ВЫХОД и установите НИЗКИЙ уровень, сразу же появится дым. По этой причине обычно добавляют небольшой встроенный резистор (возможно, 100–470 Ом), чтобы ограничить любой ток в цепи, если вывод когда-либо будет установлен в положение OUTPUT и LOW.
Однако еще одно «Однако: если вы используете делитель напряжения для уменьшения входного напряжения до соответствия приведенным выше значениям (как показано @user43648 и подходящим значениям, указанным @EdgarBonet), встроенный резистор бессмысленен. Сам делитель напряжения будет иметь очень высокий выходной импеданс, что сильно ограничивает ток. Этот импеданс аналогичен сопротивлению, эквивалентному обоим резисторам, включенным параллельно с вашим входом.
Какой вариант снижения напряжения будет для меня лучшим, сэр? Пожалуйста, не обращайте внимания, сэр, я механик, у меня очень мало знаний в этой области., @Sri Harsha
@SriHarsha Если вы не имеете дело с высокими частотами, достаточно простого делителя напряжения. – Маженко, @Majenko
Можете ли вы поделиться ссылкой на этого, сэр? Я хочу пройти через это, @Sri Harsha
Что касается делителей напряжения? https://en.wikipedia.org/wiki/Voltage_divider, @Majenko
Ссылка действительно оказалась очень полезной. Спасибо @Маженко. Вы заработали +1., @dRIFT sPEED
У вас есть два разных вопроса. На первый можно ответить с помощью поиска в Google, это буквально первый результат.
В Arduino Uno используется микроконтроллер atMEGA328, абсолютный максимальный ток которого составляет 40 мА (источник или приемник) на каждый GPIO. Кроме того, общий ток через шины питания или заземления (т. е. общий ток всех OP, которые нужны выводам GPIO для стока или истока) рассчитан максимум на 150–200 мА.
И не следует подавать напряжение более 5 В.
Что касается второго вопроса, Google снова может помочь.
Vin — это напряжение 24 В от контроллера, Vout — цифровой вход 5 В для Arduino. После этого используйте формулу делителя напряжения для расчета значений R1 и R2. Надеюсь, ты сможешь это сделать? При этом я разочарован, потому что чувствую, что вы приложили 0 усилий для исследования этого вопроса.
В дополнение к ответу пользователя 43648 стоит отметить следующее:
- Согласно техническому описанию предел 40 мА «является рейтингом стресса». только и функциональная работа устройства [...] не подразумевается» за пределами максимального проверенного тока, который составляет 20 мА.
- Входное напряжение должно быть не менее 3 В, чтобы контакт был гарантированно будет читаться высоко.
- При измерении напряжения через делитель напряжения сопротивление 10 кОм является несколько типичный порядок величины резисторов.
Учитывая вышеизложенное, я бы предложил использовать сопротивление 47 кОм для верхнего резистора.
и 10 кОм для нижнего. Это должно дать около 4,2 В на
входной контакт, который находится рядом с серединой соответствующего диапазона для
закрепите для чтения HIGH
.
Сэр, не стоит ли нам беспокоиться о течении? Какой будет выходной ток? Я механик, понятия не имею об этих вещах... пожалуйста, помогите..., @Sri Harsha
Вы прочитаете высокий/низкий уровень вывода с помощью функции digitalRead(). Входной ток составит максимум 1 мкА, 0,000001 А. Практически ничего. pinLevel = digitalRead (inputPin);, @CrossRoads
В дополнение к делителю потенциала у меня возникнет соблазн закрепить входной контакт на земле с помощью стабилитрона между 4V7 и 5V1 на случай, если нижний резистор или его паяные соединения выйдут из строя. даже при использовании последовательного резистора относительно высокого номинала напряжение 24 В имеет большой потенциал для разрушения входного контакта, если не всего чипа. Однако самый безопасный метод — использовать оптоизолятор и изолировать неприятные высокие напряжения от чувствительных компонентов цифрового уровня.
- Как использовать SPI на Arduino?
- Как создать несколько запущенных потоков?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Вы хотите снизить напряжение или обнаружить его?, @Nick Gammon
просто чтобы обнаружить, сэр, @Sri Harsha
Зачем тогда ты спрашиваешь о нынешнем? Это все равно, что спросить: «Насколько тяжелый самолет я могу увидеть в небе в свой телескоп?». Чтобы его обнаружить, вас не волнует его вес. И чтобы обнаружить напряжение, вам не важен его ток (если только ток не очень-очень мал)., @Nick Gammon