Как использовать цифровой контакт на датчике для аналогового на arduino uno
Я работаю над автономным огнетушителем. У меня закончились контакты. Во время работы над проектом у меня возник следующий вопрос
Необходимо ли, чтобы вывод DO в датчике пламени был на цифровом выводе PWM в Arduino. У меня есть сомнения, поскольку, когда я подключил его к выводу без PWM, он не работал.
Во-вторых, я могу использовать аналоговый вывод в Arduino для вывода DO датчика пламени или выводов триггера/эха ультразвукового датчика.
Спасибо.
@user471651, 👍1
Обсуждение2 ответа
PWM расшифровывается как широтно-импульсная модуляция и доступна, только когда цифровой вывод находится в режиме OUTPUT.
И ДА, вы можете подключить D0 датчика пламени к любому цифровому выводу на Arduino.
И да, можно подключить D0 датчика пламени к аналоговому выводу, но почему бы не использовать A0 датчика пламени и не подключить его к аналоговому выводу на Arduino?
У меня только 3х контактный датчик пламени, @user471651
Хорошо, тот, на который вы ссылались, четырехконтактный...., @MatsK
@MatsK, на этом сайте показаны оба, @jsotola
Вы можете использовать аналоговые контакты (A0-A5, но не A6 и A7) также как цифровые контакты. Таким образом, вы можете установить один из них в качестве цифрового входа, соединив его с контактом D0 вашего пожарного датчика. Вы можете прочитать этот пин с помощью digitalRead(pin)
.
Относительно вашей проблемы с ШИМ:
На Arduino Nano нет «входа ШИМ» (поскольку аппаратное обеспечение ШИМ в микроконтроллере означает импульс с модулированным выходом). Пример кода вашего датчика использует аналоговый вход (АЦП: аналого-цифровой преобразователь) (с использованием analogRead()
). Если вы хотите использовать эту функцию, вам нужно подключить контакт A0 вашего датчика к одному из A0-A7 и прочитать его с помощью analogRead()
, чтобы получить интенсивность/расстояние огня.
Будет ли if(digital read(A1)==LOW) работать, если я подключу вывод DO датчика к аналоговому выводу?, @user471651
В документации, на которую вы ссылаетесь, говорится, что она выводит НИЗКИЙ уровень, когда ничего не обнаружено, и «+ Ve» (я думаю, это означает ВЫСОКИЙ) при обнаружении пожара. Таким образом, чтобы обнаружить наличие пожара, используйте if(digitalRead(A1)==HIGH)
. Но обязательно инициализируйте пин как вход, @chrisl
- Использовать все контакты как цифровые входы/выходы
- Что такое ICSP pin (разъём)?
- Сколько датчиков может поддерживать один модуль Arduino?
- Как выбрать вывод передачи в библиотеке IRremote для Arduino Uno?
- Миграция проекта Arduino Uno R3 в Wemos D1 R2 — проблемы с распиновкой
- Штекерные контакты на Arduino Uno
- Назначение дополнительных отверстий под пины или клон Arduino
- Какие входные контакты я могу использовать на ESP8266 NodeMCU
Возможно, вы могли бы добавить URL / ссылки на датчик пламени. Как сейчас - совершенно непонятно!, @MatsK
http://www.theorycircuit.com/arduino-flame-sensor-interface/ У меня есть датчик, имеющий только цифровой выходной контакт, @user471651
@MatsK теперь ясно, @user471651