цифровая электроника
вычислительная техника
встраиваемые системы

 



Как получить с Arduino настоящий аналоговый сигнал

Автор: Mike(admin) от 7-11-2023, 23:55

Хотя чтение аналоговых сигналов с использованием Arduino не является проблемой, ситуация может измениться на противоположную, когда вам нужно генерировать фактические аналоговые выходные сигналы с помощью микроконтроллера. В данном материале вы узнаете, почему стандартная функция analogWrite не то, что нужно в идеале, и мы рассмотрим другие варианты для создания правильных аналоговых сигналов, используя вашу любимую Arduino-совместимую плату разработки.


К сожалению, генерирование фактических аналоговых выходов с большинством плат Arduino не так просто, как вызов функции analogWrite. В то время как некоторые платы (такие как Arduino Nano 33 IOT) поставляются с возможностями цифро-аналогового преобразователя (DAC), большинство популярных Arduino (таких как UNO) не имеют такого. В результате вызов функции analogWrite на выводе, который не имеет надлежащих аналоговых выходных возможностей, приведет к тому, что Arduino генерирует цифровой сигнал, широтно-импульсной модуляцией (ШИМ). Этот сигнал ШИМ затем имеет коэффициент заполнения пройденного аналогового значения. Так, например, если вы хотите вывести значение 128, используя функцию analogWrite с разрешением восьми битов на выводе, который не имеет надлежащих аналоговых выходных возможностей, прошивка Arduino будет генерировать сигнал ШИМ с коэффициентом заполнения примерно 50%.


Как получить с Arduino настоящий аналоговый сигнал

В то время как этот подход работает отлично для простых задач, таких как включение светодиода или управление двигателем, ШИМ-сигналы не используются с реальными аналоговыми входами других устройств, поскольку данные сигналы являются цифровыми.


Некоторые платы Arduino имеют встроенный преобразователь ЦАП, который может взять несколько бит и генерировать правильные аналоговые выходные сигналы. Следующие официальные платы Arduino поддерживают фактические аналоговые выходы: все платы Arduino MKR, Nano 33 IoT, все платы Zero. Следовательно, самый простой способ добавления фактических аналоговых выходов к проекту – использовать одну из поддерживаемых плат Arduino с реальными аналоговыми выходами. Тем не менее, существует множество других совместимых с Arduino устройств, таких как Seeeduino xiao, которые также имеют встроенный ЦАП.


Вы можете использовать внешний модуль ЦАП или шилд для Arduino, если ваш проект требует определенного Arduino, у которого нет встроенного ЦАП. Многие из этих модулей имеют высокое разрешение от десяти до двенадцати битов. Однако, чтобы не использовать все цифровые контакты ввода/вывода Arduino, эти модули часто используют другие методы связи, например, I2C, чтобы получить биты, используя только несколько линий цифровой связи. Такие модули внутренне преобразуют передаваемое значение в напряжение, которое напоминает входное значение перед генерацией правильного аналогового выходного сигнала. Например, MCP4725 – это популярный 12-битный ЦАП, доступный в удобном, небольшом корпусе.


Как получить с Arduino настоящий аналоговый сигнал

Наконец, вы также можете разработать и создать свою цепь ЦАП для вашего проекта Arduino. Этот подход идеально подходит для более опытных пользователей и проектов, где экономическая эффективность важнее точности. В зависимости от реализации вы можете сэкономить несколько сотен рублей, внедрив простую схему ЦАП, такую как стандартная цепочка резисторов R-2R. Тем не менее, более сложные решения могут также использовать выделенный чип ЦАП, например, MCP4725.


Как получить с Arduino настоящий аналоговый сигнал

Вы можете выбрать из нескольких вариантов при поиске способов добавить фактические возможности аналоговых выводов в ваши проекты Arduino. Самый простой метод-использовать Arduino или любую совместимую плату, которая включает в себя цифровой преобразователь (ЦАП). Если это невозможно, вы можете использовать внешний модуль ЦАП или шилд. Наконец, создание пользовательского ЦАП является вариантом, особенно когда решение должно быть рентабельным, а точность не имеет первостепенного значения.




© digitrode.ru


Теги: Arduino




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий
Цитата
  • Группа: Посетители
  • ICQ:
  • Регистрация: 17.11.2023
  • Статус: Пользователь offline
  • Комментариев: 11
  • Публикаций: 0
^
Слова не глотай.