Шум при работе Arduino рядом с аналоговой аудиосхемой

Краткий обзор: мой Arduino создает много шума в аналоговой аудиосхеме, даже если физически не подключен.

Я экспериментирую с использованием Arduino в качестве низкочастотного генератора в аудиоцепях (модульные синтезаторы, гитарные эффекты и т. д.). Я использую Arduino Uno, питаемый от USB + сетевой вилки.

В качестве теста я создал простую схему. Я не думаю, что схема имеет большое значение в данном случае, но я все равно включаю ее сюда:

схема

Arduino настроен на один вывод ШИМ, подающий 0-5 В, изменяющийся в виде треугольной волны (т. е. медленно нарастающий, затем снова медленно спадающий). Он подключен к JFET, который действует как переменный резистор. Я проверил аналоговую часть схемы вручную, и она работает так, как и ожидалось.

Однако при подключении Arduino схема производит очень громкий "хлюпающий" шум, который заглушает проходящий через нее аудиосигнал, что напоминает шум, который издает кто-то, настраивающий старое коротковолновое радио. Шум "хлюпает" в такт колебаниям напряжения. Он не похож на звук в этом видео, связанном с блоком питания ПК: https://youtu.be/lXPJvSU8MwI?t=10m52s.

Это происходит даже если я физически отсоединяю вывод ШИМ от схемы — чем ближе его провод к схеме, тем громче шум, но он отчетливо слышен, даже когда они разделены воздухом в фут или больше.

Что я пробовал:

  • Подключение земли Arduino к земле аналоговой схемы и их разделение.
  • Добавление фильтрующих конденсаторов в обе цепи.
  • Поместите Arduino в алюминиевый корпус, заземлив его либо на его собственную землю, либо на землю аналоговой схемы, или на обе.
  • Питание Arduino осуществляется от моего ноутбука вместо прямого подключения к электросети.

Аналоговая схема сейчас находится на макетной плате, поэтому ожидается некоторый шум, но это далеко за пределами всего, с чем я сталкивался раньше, даже с очень плохо работающими схемами.

Я ДАЛЕКО не разбираюсь в Arduino, поэтому надеюсь, что делаю что-то глупое и легко исправимое. Я бы с радостью принял ответ, который предлагает совершенно другой способ достижения желаемого результата.

, 👍3


1 ответ


Лучший ответ:

1

Сигнал ШИМ Arduino составляет около 500 Гц, поэтому он будет слышен (читай: шум) сам по себе. Вы можете реализовать фильтр нижних частот между выводом ШИМ и вашим J-FET. Простой RC-фильтр, настроенный на 5 Гц, ослабит сигнал 500 Гц до -40 дБ, чего, вероятно, будет недостаточно для высококачественного звука. Существуют фильтры с лучшими свойствами подавления, для построения которых обычно требуются активные компоненты. Одним из простейших таких фильтров является топология Sallen-Key, которая может практически удвоить коэффициент подавления, используя один активный компонент (операционный усилитель).

Другой вариант — использовать простой RC-фильтр, но увеличить частоту ШИМ (как описано здесь) для достижения высокого коэффициента подавления. В конечном итоге, увеличение частоты за пределами слышимого диапазона (около 16 кГц) в конечном итоге решит проблему шума, хотя я бы все равно использовал RC-фильтр, чтобы поддерживать J-FET в линейном режиме. По-видимому, самая высокая частота, которую вы можете достичь при полном разрешении, составляет 62,5 кГц, что более чем достаточно.

,