Ich hoffe das klar ist, das bei einer PWM Grundsätzlich nur eine Frequenz vom AVR kommt die abhängig vom PWM-Mode ist. Diese Frequenz kann bzw muss vorher berechnet werden und ins OCRx geladen werden.
siehe Waveform Generation Mode Bit Description des entsprechenden AVR's
Jeder MODE ist auch erklärt und hat eine Gleichung nach der die PWM-Frequenz berechnet werden kann.
Welcher AVR sitzt denn auf dem ARDUINO?? ATmega328 ??
Ich mach mal ein Beispiel falls du eine Fast-PWM nutzt ist dafür die Gleichung
fOCnxPWM = fclk_I/O/ ( N (1+TOP))
N = Teilerfaktor (1, 8, 64, 256, or 1024)
TOP = kann sein (ff, 1ff, 3ff oder das was im OCR eingetragen wird) FF = 8bit, 1FF = 9bit, 3FF = 10bit, OCR = Modes welche diese Register als ENdwert nutzen....
fclk_I/O = CPUtakt
für 8bit-FAST-PWM
fOCnxPWM = 4Mhz / ( 8 (1+ FF )) = 244,140...Hz
für 10bit-FAST-PWM
fOCnxPWM = 4Mhz / ( 8 (1+ 3FF )) = 488,28..Hz
vielleicht kannst du dir jetzt erklären, wie man auf 470Hz kommt und welcher Mode genutzt wird.
Das mit dem Tastverhältniss 100% ist logisch das dort dann auch Ue=Ua ist, denn da wirds einen kleinen Spike geben von gerademal einen Takt.
Das betrifft
0% `________________`__________________
100% .---------------------.-----------------------.
Der Ripple hängt davon ab wie schnell der Kondensator entladen/geladen wird bzw welche Last am Augang hängt !!!!!!!!!!!!Nach der Glättung bleibt ja auf der Gleichspannung immer noch eine Restwelligkeit (Ripple).
Beim idealen DA-Wandler beträgt die Ripplespannung= 20mV.
Deswegen wäre es interessant für mich zu wissen wieviel Ripple durch meinen DA-Wandler entstehen.
Hohe Last = Hoher Ripple
Keine Last = Kein Ripple
Wenn du einen Impedanzwandler an dessen Ausgang schaltest sollte das Ripple Problem verschwunden sein.
http://www.avr-asm-tutorial.net/avr_de/avr_adc500.html
Auf dieser Seite wird ein ADC mit Hilfe eines PWM-Signal hergestellt und hier findest du mal ein Bild mit verschiedenen Graphen bei verschiedenen Tiefpässen dazu auch nochmal eine Erklärung.
Lass die Gleichung mal weg und mache es dir einfacher. Setze einfach mal 30% Tastverhältniss auf die Spannung, welche den Controller versorgt, um. 30%*5/100 = 1,5VUa=4,385V/(wurzel(1+(2*Pi*10kOhm*100nF)²)
Ua(f=0Hz) = 4,385V-> so würde schonmal der richtige Wert herauskommen.
Ua(f=470Hz)= 0,320V-> der Wert für f=470Hz in der Ausgangsspannungsformel des TP kann nicht stimmen.
Lesezeichen