Фильтр нижних частот для ШИМ-сигнала 20 кГц

Я хочу почувствовать 20 к ЧАС г ШИМ-сигнал с электронной платы. Я хочу прочитать этот сигнал с помощью функции «analogRead (A0)» на моей плате Arduino. Поэтому я сделал ФНЧ 1-го порядка, который состоит из резистора, конденсатора и буфера операционного усилителя.

Сначала я произвел 20 к ЧАС г ШИМ-сигнал с контакта D9 моего Arduino. Рабочий цикл ШИМ-сигнала затухает с 0 % и 100 % непрерывно. Код генерации ШИМ:

pwmWrite(led, brightness);
brightness = brightness + fadeAmount;
if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ; 
}   

По моим расчетам, для 20 к ЧАС г фильтр нижних частот, резистор должен быть 82 к Ом и конденсатор 100 п Ф .

Но я использовал 68 к Ом резистор, потому что нет 82 к Ом . При этом частота среза ФНЧ настраивается. 23 к ЧАС г . Я читаю этот сигнал с вывода A0 с помощью аналогового чтения и выборки АЦП. Код чтения:

int c;
long a;
for(c=0;c <32;c++) {
    pwm_deger=analogRead(A0);
    a += pwm_deger;
}

int f = a / 32;
Serial.println("pwm_deger:");
Serial.println(f);
delay(200);

Я добавил результаты ниже. Цифры масштабируются в диапазоне 0-1023 (значение АЦП Arduino).

  • На рис. 1 показано 20 к ЧАС г Сигнал ШИМ, который я хочу проверить, с затуханием сигнала 0 % к 100 % рабочий цикл с 200 м с .

  • На рис. 2 показан сигнал ФНЧ без буфера.

  • На рис. 3 показан сигнал ФНЧ с выхода буфера операционного усилителя.

Есть ли проблемы с цифрами? Почему на рисунке 2 показано значение 0,7 из 1023 и срезание после значения АЦП 700. Это из-за операционного усилителя?


Рисунок 1

Рисунок 1 – Тестовый сигнал


Фигура 2:

Рисунок 2 – Выходной сигнал ФНЧ без буферного ОУ


Рисунок 3:

Рисунок 3 – Выход ФНЧ с буферным операционным усилителем

Вам нужно опубликовать схему фильтра и буфера и то, как вы все это подключили к Arduino. Правильно пометьте детали (включая номер детали операционного усилителя).
Вы заявляете, что есть 3 рисунка, но показаны только 2, И в фактическом сообщении RAW показаны 4 ссылки img (1,2,4,5). Предполагая, что частота составляет 20 кГц, точка 3 дБ будет на частоте 20 кГц, и, таким образом, амплитуда будет уменьшена на 0,707.
Привет, я не могу больше добавлять рисунок или схему, потому что у меня недостаточно репутации. Это позволяет мне макс. 2 ссылка.
Кстати, описания уже написаны на рисунках. Если я расскажу вам о схеме, то на выводе D9 Arduino есть базовый RC-фильтр (с резистором и конденсатором). А выход этого фильтра поступает на неинвертирующий вход ОУ LMV324. Здесь есть простая буферная схема, а выход LM324 идет на аналоговый вывод A0 Arduino. Операционный усилитель VCC - это 5 В от Arduino.

Ответы (1)

Почему на рисунке 2 показано 0,7 от 1023 и отсечение после значения АЦП 700. Это для операционных усилителей?

Вам почти наверняка потребуется использовать операционный усилитель «от шины к шине» (R2R), способный обеспечить приличный выходной сигнал, близкий к верхней шине питания. Если вы используете что-то вроде LM324, мягкое ограничение, которое вы видите в верхней части сигнала, вероятно, связано с тем, что он не является R2R в высоких частях входного сигнала, а также в высоких частях выходного сигнала.

Спасибо за ваш ответ. Да, я использовал LMV324 в своем проекте. Можете ли вы предложить мне любой операционный усилитель R2R с эффективной стоимостью?
@AdemGül не совсем. Попробуйте использовать кого-то вроде TI или ADI, но TI, вероятно, будет самым дешевым.