Я создаю проект, который выводит звук через Arduino на компьютерный динамик с питанием. Этот звуковой сигнал исходит из таблицы синусоидальной волны, которую я просматриваю на разных частотах, устанавливая вывод ШИМ в wave_table[0], затем wave_table[1] и т. д.
Я хотел бы модулировать громкость этого сигнала, но я не хочу просто делить значение волновой таблицы на целое число, потому что я беспокоюсь, что это исказит звук — вместо диапазона 0-255. для синусоиды это может быть, например, только 0-3, и тогда это уже не хорошая форма синусоиды.
Есть ли способ, которым я могу использовать второй контакт Arduino PWM для управления усилителем, чтобы изменить аналоговый сигнал, поступающий от Arduino, чтобы изменить громкость, прежде чем он попадет в динамик?
Спасибо!!
Вероятно, вы можете использовать второй ШИМ для генерации напряжения, а затем отправить его в VCA, или получить внешний цифровой потенциометр (DPOT) и использовать его для изменения коэффициента усиления операционного усилителя, если вы хотите добавить дополнительные микросхемы. Однако, если вам не нужно столько уровней громкости и у вас уже есть несколько аппаратных ШИМ на Arduino, вы можете просто соединить их вместе через несколько последовательных резисторов, чтобы создать летнюю схему. Предполагая, что ваш компьютерный динамик имеет встроенный усилитель с высоким входным сопротивлением, вы сможете добавить несколько (например, 4) ШИМ-выходов вместе через резисторы 1K.
Пока ШИМ были синхронизированы, какими они должны быть, вы должны получить 1/4, 2/4, 3/4 и полную амплитуду, используя 4 канала (например). Просто заставьте их все генерировать одно и то же и отключите некоторые ШИМ (установив для них цифровой 0), если хотите уменьшить громкость.
[РЕДАКТИРОВАТЬ] На самом деле, если подумать над проблемой еще немного, вы можете сделать это с еще меньшим аппаратным обеспечением, если будете использовать цифровые выходы в качестве затухания. Рассмотрим следующую схему:
смоделируйте эту схему - схема, созданная с помощью CircuitLab
Каждый цифровой ввод-вывод в основном дает вам один бит управления громкостью, и вы можете получить столько битов, сколько у вас есть дополнительных вводов-выводов. Ваша самая высокая громкость будет со всеми цифровыми входами/выходами, установленными на «high-Z» или вход, так как ваш усилитель будет просто видеть ШИМ. Установка любого из цифровых входов/выходов на выход со значением '0' приведет к ослаблению сигнала (например, если цифровой 0 выводит '0', ваш аудиосигнал будет ослаблен на 50% из-за деления напряжения). в приведенном выше случае у вас будет 8 уровней громкости, но вы можете легко расширить схему, если вам нужно больше битов. Вы также можете сделать его логарифмическим, тщательно подобрав номиналы резисторов.
Вы можете использовать потенциометр с цифровым управлением между выходом фильтра и аудиовходом. Вот пример использования DS1669. ( http://pdfserv.maximintegrated.com/en/ds/DS1669.pdf)http://pdfserv.maximintegrated.com/en/ds/DS1669.pdf
Игнасио Васкес-Абрамс
Энди ака
Уоррен Янг
Уоррен Янг