Как подать звуковой сигнал на АЦП Arduino?
Обновлено Редакция GAW
АЦП Arduino UNO измеряет напряжение только от 0 до опорного, обычно 5 В, а звуковой сигнал переменный — он в равной мере уходит выше и ниже нуля. Поэтому его сдвигают на середину диапазона: постоянную составляющую отсекает конденсатор, а уровень 2,5 В задаёт делитель.
Пассивная схема
Сигнал через конденсатор C подают на точку между двумя резисторами по 10 кОм, включёнными от 5 В на общий провод. Делитель держит вход на 2,5 В, а для конденсатора оба резистора работают параллельно — 5 кОм. Это заодно укладывается в рекомендацию даташита: источник для АЦП — не больше 10 кОм. Конденсатор и резисторы образуют фильтр верхних частот:
TI советует ставить эту частоту на две декады ниже самой низкой частоты сигнала.
| C при R = 5 кОм | Частота среза | Подходит для сигнала от |
|---|---|---|
| 1 мкФ | 32 Гц | 3,2 кГц |
| 10 мкФ | 3,2 Гц | 320 Гц |
| 100 мкФ | 0,32 Гц | 32 Гц |
Посчитать другие сочетания поможет калькулятор RC-фильтра.
Когда нужен усилитель
Шаг 10-битного АЦП при опорном 5 В — около 4,9 мВ. Сигнал с амплитудой 50 мВ займёт всего десяток шагов в каждую сторону, и форма потеряется. Тогда сигнал усиливают операционным усилителем с однополярным питанием: делитель задаёт половину питания на неинвертирующем входе, и выход в покое стоит на середине — как в прил. A.3.18 справочника TI. При питании 5 В берут ОУ с выходом rail-to-rail: у LM358 выход не доходит до плюса питания примерно на 1,5 В, и верх волны срежется. Готовая схема с расчётом — усилитель на ОУ для АЦП, а основы — в статье «Операционный усилитель».
Частота выборки
Сам АЦП ATmega328P делает до 15 тыс. выборок в секунду, но для полных 10 бит его тактовая частота должна быть 50–200 кГц. На 16 МГц ближайший подходящий предделитель — 128: 16 МГц / 128 / 13 тактов ≈ 9,6 тыс. выборок в секунду, как у analogRead(), и звук до 4,8 кГц. Всё, что выше половины частоты выборки, превратится в ложные низкие частоты, поэтому перед входом ставят фильтр нижних частот. Как АЦП выбирает и измеряет — в статье «АЦП».
Похожие вопросы
Можно ли подать сигнал с линейного выхода прямо на аналоговый вход?
Только через конденсатор и смещение. Звуковой сигнал переменный и уходит ниже нуля, а ATmega328P по даташиту допускает на выводе не меньше −0,5 В. Без смещения отрицательная половина волны не измеряется и может повредить вход.
Какую частоту звука может оцифровать Arduino UNO?
С analogRead() — около 9,6 тыс. выборок в секунду, то есть звук до 4,8 кГц: на 16 МГц предделитель 128 даёт АЦП 125 кГц, а преобразование длится 13 тактов. Предделитель 64 даёт 250 кГц и больше выборок, но выше 200 кГц Microchip не гарантирует полное разрешение 10 бит.
Какое опорное напряжение выбрать для слабого звукового сигнала?
Внутреннее опорное ATmega328P 1,1 В: шаг АЦП станет около 1,07 мВ вместо 4,9 мВ при 5 В. Смещение входа тогда ставят на середину этого диапазона — около 0,55 В, а амплитуда сигнала не должна превышать 0,55 В.
Источники
- Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B) — 24.1 — до 15 тыс. выборок в секунду при полном разрешении 10 бит; 24.4 — для полного разрешения тактовая частота АЦП 50–200 кГц, преобразование 13 тактов АЦП; 24.6.1 — источник с выходным сопротивлением до 10 кОм, составляющие выше половины частоты выборки убирают фильтром нижних частот; 24.7 — код 0x000 соответствует общему проводу, 0x3FF — опорному напряжению минус шаг; 24.2 — внутреннее опорное 1,1 В; 29.1 — напряжение на выводе от −0,5 В до VCC + 0,5 В
- Mancini R. (ed.). Op Amps For Everyone. Texas Instruments, SLOD006B, 2002 — прил. A.3.18 — инвертирующий усилитель переменного тока с однополярным питанием: делитель задаёт VCC/2, выход в покое на середине питания; уравнение A-26 — частота среза разделительной RC-цепи; её ставят на две декады ниже самой низкой частоты сигнала
- Texas Instruments. LM358, LM358A, LM358B, LM358BA, LM2904x Industry-Standard Dual Operational Amplifiers (SLOS068AB, October 2024) — разд. 5.7 — у LM358 выход при питании 5 В не доходит до V+ примерно на 1,5 В
Нашли ошибку?
Смотрите также
- Усилитель на ОУ с однополярным питаниемВиртуальная земля, rail-to-rail, входной ток, полоса, MCP6002 и LM358
- Операционный усилительПринцип работы, основные схемы и формулы, параметры реальных ОУ и их выбор
- АЦПКвантование, формула кода, SAR, время выборки, погрешности, передискретизация
- RC-фильтр и постоянная времениЧастота среза, подбор R и C, время заряда