Ich möchte Sinn a PWM-Signal von einer elektronischen Platine. Ich möchte dieses Signal mit der Funktion "analogRead (A0)" auf meinem Arduino-Board lesen. Daher habe ich einen Tiefpassfilter 1. Ordnung hergestellt, der aus einem Widerstand, einem Kondensator und einem Operationsverstärkerpuffer besteht.
Zuerst produzierte ich a PWM-Signal vom D9-Pin meines Arduino. Das Tastverhältnis des PWM-Signals nimmt ab Und ständig. Der PWM-Generierungscode:
pwmWrite(led, brightness);
brightness = brightness + fadeAmount;
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
Nach meinen Berechnungen z Tiefpassfilter, Widerstand sein sollte und Kondensator ist .
Aber ich habe verwendet Widerstand, weil nicht haben . In diesem Fall wird die Grenzfrequenz des Tiefpassfilters verwendet . Ich lese dieses Signal vom A0-Pin mit analogRead und ADC-Sampling. Der Lesecode lautet:
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);
Ich habe die Ergebnisse unten hinzugefügt. Die Zahlen sind in 0-1023 skaliert (Arduinos ADC-Wert)
Abbildung 1 zeigt PWM-Signal, von dem ich das Signal mit Überblendung testen möchte Zu Einschaltdauer mit .
Abbildung 2 zeigt das LPF-Signal ohne Puffer.
Abbildung 3 zeigt das LPF-Signal vom Ausgang des Operationsverstärkerpuffers.
Gibt es ein Problem in Zahlen? Warum zeigt Abbildung 2 0,7 von 1023 und schneidet nach dem ADC-Wert von 700 ab. Liegt es am Operationsverstärker?
Warum zeigt Abbildung 2 0,7 von 1023 und schneidet nach dem ADC-Wert von 700. Ist es für Operationsverstärker?
Sie müssen mit ziemlicher Sicherheit einen Rail-to-Rail (R2R)-Operationsverstärker verwenden, der in der Lage ist, eine anständige Leistung nahe der oberen Stromschiene zu erzeugen. Wenn Sie so etwas wie einen LM324 verwenden, ist die weiche Klemmung, die Sie oben in der Wellenform sehen, wahrscheinlich darauf zurückzuführen, dass es sich bei den hohen Teilen des Eingangssignals und auch bei den hohen Teilen des Ausgangssignals nicht um R2R handelt.
JRE
Benutzer16222
Adem Gül
Adem Gül