ЦАП на Arduino Leonardo
Я новичок в Arduino. Для начала я пытаюсь собрать ЦАП с помощью Arduino Leonardo. У меня есть цифровой сигнал, поступающий от моего двойного дифференциального компаратора. Я хочу преобразовать это в аналоговый сигнал.
Во-первых, я прочитаю цифровой сигнал на цифровом выводе (может кто-нибудь указать мне, какой из них подходит? Их так много. Я был ошеломлен). Затем я посылаю сигнал ШИМ (опять перепутал с выводом). Затем я использую простую RC-цепь, чтобы отфильтровать ШИМ-сигнал и получить простую синусоиду.
Я иду в правильном направлении? Если нет, пожалуйста, любое предложение будет полезно.
@Jack, 👍0
Обсуждение1 ответ
Да, вы идете в правильном направлении.
Компараторы
Вы еще не описали, как вы планируете подключить 2 компаратора к Arduino, но я думаю, что это будет что-то похожее на это:
В приведенной выше схеме X и Y являются либо высокими, либо низкими в зависимости от аналоговых напряжений A, B, C & D. Ниже я создал таблицу истинности с некоторыми произвольными выходными напряжениями. Столбец value
соответствует значению, необходимому для функция AnalogWrite()
.
Примечание. Если вам нужно, чтобы аналоговый выход мог подавать некоторый ток, вы можете добавить операционный усилитель в единичное усиление на выходе RC-фильтра.
Примеры для чтения
Для вывода аналогового значения лучше всего подходят 4 встроенных примера/учебника:
Диммер: отправка последовательных значений для изменения яркости светодиода.
Затухание: используйте аналоговый выход (вывод ШИМ) для затухания светодиода.
AnalogInOutSerial">AnalogInOutSerial: считывание аналогового входного контакта, отображение результата, а затем использование этих данных для затемнения или увеличения яркости. светодиод.
Прочитать строку ASCII: проанализируйте строку целых чисел, разделенных запятыми, чтобы погасить светодиод.
Общим для всех этих примеров является функция analogWrite().
функция:
// записывает аналоговое значение (диапазон от 0 до 255):
analogWrite(pin, value);
Диммер – это простой пример, когда последовательное значение считывается, а затем выводится на один из контактов ШИМ.
Затухание — вероятно, самый простой пример использования analogWrite( ) (выход ШИМ).
Я включил Analog In Out Serial, так как он использует map() команда.
Я включил Прочитать строку ASCII, так как она показывает, как анализировать несколько значений последовательной строки.
Выводы ШИМ
Вы можете использовать контакты 3, 5, 6, 9, 10, 11 и 13 на Arduino Leonardo для вывода ШИМ с помощью <code>analogWrite()</code>.
Управление
Я рекомендую следующие учебники для вашего контроля. Вы можете использовать либо if-else или switch-case.
Спасибо за ваш подробный ответ. Но у меня есть только 1 компаратор, как мне изменить его под свои нужды?, @Jack
Какие аналоговые напряжения вам нужны? (Один для вашего НИЗКОГО сигнала и один для вашего ВЫСОКОГО). Что вы пробовали и что не сработало?, @sa_leinad
- Улучшенное циклическое переключение цветов RGB.
- Распиновка аналога Arduino Pro Micro
- Последовательные порты на Arduino UNO/Leonardo инициализируются по-разному?
- помогите с ошибкой: не могу открыть устройство "\\.\COM6": Доступ запрещен
- Windows 10 не распознает Arduino Leonardo
- Захват ввода с включенным спящим режимом на плате ATM32u4 работает только при каждом втором чтении в спящем режиме.
- Как подключить акселерометр, GPS, микрофон и GSM-модуль к Arduino?
- Можно ли прошить hoodloader2 или шестнадцатеричные файлы на симуляторах Arduino?
Какой двойной дифференциальный компаратор вы используете. Было бы здорово, если бы вы добавили свою схему и какие-либо подробности о том, что вы пробовали и что не сработало., @sa_leinad
Двойной дифференциальный компаратор — это тип компаратора, который выдает цифровой сигнал на выходе., @Jack
@sa_leinad LM2903, @Jack
пожалуйста, опишите сигналы на входах компаратора и как они соотносятся с конечным аналоговым выходом, @jsotola
@sa_leinad: пожалуйста, проверьте отредактированное изображение. Добавил свою схему. У меня есть датчик Холла, который изменяет свое выходное напряжение в зависимости от магнитного поля. Этот выход подключен к компаратору. который выводит цифровой сигнал., @Jack
Как вы пришли к этой схеме? Я не думаю, что вижу, как резистор обратной связи 100 кОм что-то делает., @sa_leinad
Вы хотите преобразовать вход в синусоиду? Довольно просто преобразовать ШИМ-сигнал в переменное напряжение, но получить из него переменную синусоидальную волну может быть слишком сложно. Вы хотите изменить частоту выходной волны с помощью входной, амплитуды или того и другого? И какую частоту синусоиды вы надеетесь получить?, @Duncan C