Как преобразовать цифровой сигнал в аналоговое значение
У меня есть вывод spwm от arduino, и когда я читаю на аналоговом чтении, он показывает только 1023 и 0, потому что это цифровой сигнал. Есть ли способ преобразовать эти значения spwm в показания аналоговых значений
@rahul, 👍1
Обсуждение1 ответ
Проблема кажется вам ясной: для медленных систем сигнал ШИМ можно считать аналоговым, но измерения на более высоких скоростях и без фильтра выявляют цифровую природу ШИМ, и все, что вы видите, это либо высокий логический уровень (1023), либо низкий (0). Возможные решения:
- применить аппаратный фильтр (LC low-pass)
- применить фильтр в программном обеспечении (например, вычислив скользящее среднее)
- прикрепите прерывания к переднему/заднему фронту вашего сигнала и измерьте время высокого/низкого уровня для расчета рабочего цикла
Какой из этих вариантов выбрать, в основном зависит от частоты ШИМ, которую вы хотите измерить. Для низких частот я рекомендую вариант 3 (особыми случаями являются рабочие циклы около 0% и 100%, так как нет фронтов), для более высоких частот я бы использовал вариант 1/2.
Спасибо очень помогло, @rahul
- Как прочитать значение АЦП без общего заземления? (Возможно или нет!)
- Чтение постоянного напряжения батареи и использование полученного значения в формуле датчика
- Есть ли способ воспроизводить звуки с Arduino без использования звукового экрана?
- Отправка значения с одного Arduino на другой
- Использование аналогового входа для чтения кнопки
- Как работать с аналоговыми контактами в цикле?
- Arduino непрерывно считывает значение АЦП с помощью прерывания
- Распиновка аналога Arduino Pro Micro
У Arduino был 10-битный АЦП, что означает, что максимальное значение, которое вы можете прочитать, составляет 0–1023. Это аналоговый сигнал. или если вы хотите преобразовать цифровое значение в аналоговое, используйте микросхему ЦАП, легко доступную на рынке., @Vaibhav
Спасибо, попробую поискать, @rahul