Могу ли я с помощью аналогового контакта на Arduino Mega прочитать, есть ли высокое (5 В) напряжение на проводе от цифрового контакта другой платы?
Я создаю одноранговую сеть из инициирующих устройств и общего хаба , который контролирует большую часть оборудования. Он отправляет номер через Serial
на Serial1
Mega (Serial
Mega используется для связи с компьютером), но в качестве резерва он инициирует общий сигнал тревоги, отправив сигнал 5 В (с использованием digitalWrite(pin, HIGH)
) на главную плату. Как мне это сделать, чтобы завершить схему и получить чтение?
Спасибо!
@SYGMAH, 👍0
Обсуждение1 ответ
Лучший ответ:
Да, конечно, можно. Однако лучше использовать digitalRead()
, чем analogRead()
.
Вам просто нужно соединить земли двух Arduino вместе и настроить контакт на Arduino, который вы хотите воспринимать вход как INPUT или INPUT_PULLUP. Затем выполните цифровое чтение на выводе. Он вернет LOW
, если другой Arduino устанавливает на вывод LOW, и HIGH
, если другой Arduino устанавливает его HIGH.
И, как отмечает Юрай в своем комментарии, КМОП-устройства, такие как Arduino, реагируют на напряжение, а не на ток. Их входы емкостные. Они реагируют на потенциал напряжения, а не на ток. (Когда вы изначально меняете вход КМОП из одного состояния в другое, через него протекает небольшой ток, чтобы изменить состояние конденсатора, и после этого единственный ток, который течет, — это очень небольшой ток утечки. через конденсатор на входе.)
Спасибо большое, сам бы об этом не подумал. Я бы отправился на край Земли, изобретая какой-то код для передачи сигналов с Луны и обратно, просто чтобы сказать «ЭЙ» другой доске, ммао., @SYGMAH
@duncan-c, вы не должны в ответе на Arduino SE утверждать, что LOW — ложь, а HIGH — правда., @Juraj
@Юрай, почему бы тебе не предложить это? По моему опыту, мы используем переключатели, которые в нормальном состоянии обычно разомкнуты, поэтому их закрытие и включение ВЫСОКОГО напряжения будет означать изменение., @SYGMAH
@WinterfromSYGMAH HIGH
/true
и LOW
/false
— это разные константы, и их не следует использовать как взаимозаменяемые. Хуарж прав. Я отредактировал свой пост., @Duncan C
@DuncanC и Юрай, спасибо за разъяснения и помощь, @SYGMAH
формально вы всегда должны писать digitalRead(pin) == LOW
или digitalRead(pin) == HIGH
, чтобы проверить состояние. нет никакой гарантии, что значение «LOW» равно 0 на всех архитектурах Arduino. где-то может быть какой-то странный пакет MCU :-), @Juraj
- Отправка значения с одного Arduino на другой
- Чтение частоты ввода в цифровых выводах
- DHT11 аналоговый или цифровой?
- Двоичный в десятичный с использованием побитовых операторов
- Отправка минимальных данных между двумя Arduino далеко друг от друга
- Nano: все цифровые контакты ничего не выводят
- Помогите совместить цифровой и аналоговый код в программировании ардуино
- Непоследовательные результаты при чтении входных данных в поисках шаблонов всплесков
то, что вы спрашиваете, - это назначение цифрового PIN-кода. прочитать состояние цифрового вывода какого-либо другого устройства, @Juraj
5В — это значение «напряжения», а не значения «тока».... пожалуйста, отредактируйте заголовок своего сообщения., @jsotola