Как использовать цифровой контакт на датчике для аналогового на arduino uno

Я работаю над автономным огнетушителем. У меня закончились контакты. Во время работы над проектом у меня возник следующий вопрос

Необходимо ли, чтобы вывод DO в датчике пламени был на цифровом выводе PWM в Arduino. У меня есть сомнения, поскольку, когда я подключил его к выводу без PWM, он не работал.

Во-вторых, я могу использовать аналоговый вывод в Arduino для вывода DO датчика пламени или выводов триггера/эха ультразвукового датчика.

Спасибо.

, 👍1

Обсуждение

Возможно, вы могли бы добавить URL / ссылки на датчик пламени. Как сейчас - совершенно непонятно!, @MatsK

http://www.theorycircuit.com/arduino-flame-sensor-interface/ У меня есть датчик, имеющий только цифровой выходной контакт, @user471651

@MatsK теперь ясно, @user471651


2 ответа


1

PWM расшифровывается как широтно-импульсная модуляция и доступна, только когда цифровой вывод находится в режиме OUTPUT.

И ДА, вы можете подключить D0 датчика пламени к любому цифровому выводу на Arduino.

И да, можно подключить D0 датчика пламени к аналоговому выводу, но почему бы не использовать A0 датчика пламени и не подключить его к аналоговому выводу на Arduino?

,

У меня только 3х контактный датчик пламени, @user471651

Хорошо, тот, на который вы ссылались, четырехконтактный...., @MatsK

@MatsK, на этом сайте показаны оба, @jsotola


0

Вы можете использовать аналоговые контакты (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