Hey, ich habe mit der Hilfe aus folgendem Link ein 20kHz PWM mit meinem Arduino nano generiert. Beitrag "Arduino Nano - 20 kHz PWM an OC1A/OC1B" Wenn ich dies jetzt aber mit einem Oszilloskop messe, schwankt die mittlere Spannung daraus sehr ungleichmäßig(zw 900mV und 1,44V). Ich würde aber gerne ein PWM mit 20kHz und einer resultierenden mittleren Spannung von 2V haben... Wie erreiche ich das? LG
Das sollte über das Verhältnis (Tastverhältnis) funktionieren: https://www.mikrocontroller.net/articles/Pulsweitenmodulation#Beispiele Kaffeetasse schrieb: > schwankt die mittlere Spannung daraus sehr ungleichmäßig(zw 900mV und 1,44V) Falls das wirklich so ist, dann ist deine PWM aber nicht sehr gleichmäßig. Hast dir mit dem Oszi auch mal die PWM angeschaut oder nur den Mittelwert?
:
Bearbeitet durch User
Würde ja bedeuten, das dein PWM-Signal "zappelt". Zeig mal deinen Code und n Sreenshot vom oszi
Kaffeetasse schrieb: > Wenn ich dies jetzt aber mit einem Oszilloskop messe, Haste dort Cycle Mean oder Mean als Messung eingestellt? Das ist n gravierender Unterschied. Halte doch mal n Multimeter ran. Was für ein Filter sitzt hinter der PWM?
Danke schonmal für die schnelle Anwort :) Hmm ja, mein Problem liegt auch darin, das Tastverhälnis einzustellen... Dass es damit zusammenhängen muss, habe ich soweit verstanden, nur wie kann ich das generell einstellen? Ja, das PWM Signal ist generell sehr ungleichmäßig. Ich war mir nicht sicher, ob das normal ist, oder ob ich daran dann etwas ändern kann?
1 | void setup() { |
2 | pinMode(9, OUTPUT); |
3 | }
|
4 | |
5 | void loop() { |
6 | |
7 | TCCR1A = (1 << COM1A1) | (1 << COM1B1) | (1 << WGM11); |
8 | |
9 | TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS10); |
10 | |
11 | ICR1 = (800- 1); |
12 | |
13 | OCR1A = (800 - 1) / 2; |
14 | |
15 | }
|
Hier mein Code und der Screenshot. Ich habe bei dem Beispielcode oben (im Link in meiner Frage) nicht immer ganz verstanden, was nun zu Pin 9 und was zu Pin 10 gehört, daher hab ich manche Sachen drin gelassen, die vielleicht unnötig bei mir sind... (hoffe ich hab das Bild jetzt nicht mehrfach angehängt, in der Vorschau taucht es irgendwie nicht auf)
Ingo L. schrieb: > Haste dort Cycle Mean oder Mean als Messung eingestellt? Das ist n > gravierender Unterschied. Halte doch mal n Multimeter ran. Was für ein > Filter sitzt hinter der PWM? Das Multimeter zeigt eine ziemlich deutliche Spannung von 2,3V an, aber das ist ja etwas ganz anderes als das, was das Oszilloskop anzeigt? bis jetzt noch gar kein Filter, den will ich dann aufbauen, wollte nur erst mal ein klares Signal haben. Was meinst du genau mit Cycle mean und mean?
Die Flanken stehen stabil, da "wackelt" nichts. Du kannst ja mal die zeitkonszante vom oszi Stauchen. Da wird wohl die betriebsspannung rumeiern, an der PWM scheinst, nach den Bildern nicht zu liegen. Die Impulse werden ja auch von der Hardware, unabhängig vom Programm erzeugt. Das kommt aber alles ins setup, das nur am Rande. Willst ja nicht laufend deine Register neu initialisieren. Probier mal, ob's daher rührt.
Und du weißt so garnicht, was da abgeht? Das ist eher hinderlich ...
Kaffeetasse schrieb: > void loop() { > TCCR1A = (1 << COM1A1) | (1 << COM1B1) | (1 << WGM11); > TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS10); > ICR1 = (800- 1); > OCR1A = (800 - 1) / 2; > } Also ich würde das Timer-Setup eher nicht in der loop() immer und immer wieder ausführen. Auf die schnelle mal was gefunden, kannst es ja mal überfliegen oder soagr bei dir mal testen. https://wolles-elektronikkiste.de/timer-und-pwm-teil-1
:
Bearbeitet durch User
Äxl schrieb: > Die Flanken stehen stabil, da "wackelt" nichts. Du kannst ja mal > die zeitkonszante vom oszi Stauchen. Da wird wohl die betriebsspannung > rumeiern, Mit einem DSO Jitter zu messen kann eine mittlere Challenge sein - überhaupt für jemand, der noch nicht mal sauber eine Masse anklemmem kann. Euer Klaus
Okay also das Problem mit dem ungleichmäßigen PWM Wert hat sich gelöst, ich habe vorher gedacht, dass es nicht zwingend notwendig sei, zusätzlich noch gegen Masse zu ziehen, aber das scheint wohl in dem Fall notwendig zu sein
Kaffeetasse schrieb: > zusätzlich noch gegen Masse zu ziehen Diese Ausdrucksweise zeugt schon davon dass du ganz genau weisst was du machst. Ich mache mir da einen Reim daraus, aber was du da machst ist nicht wirklich klar.
Ich sehe auf dem Oszilloskop Bild hölle viel Rauschen auf den HIGH und LOW Pegeln. Entweder hast du einen sehr schlechten Messaufbau oder die Schaltung hat erhebliche Mängel. Zeige mal Schaltplan und Fotos.
Stefan ⛄ F. schrieb: > Ich sehe auf dem Oszilloskop Bild hölle viel Rauschen auf den HIGH > und LOW Pegeln. Entweder hast du einen sehr schlechten Messaufbau oder > die Schaltung hat erhebliche Mängel. Zeige mal Schaltplan und Fotos. Hat er geschrieben. Er wusste nicht, dass man die masseklemme auch anschließen muss. Geht's denn jetzt?
Kaffeetasse schrieb: > Das Multimeter zeigt eine ziemlich deutliche Spannung von 2,3V an, aber > das ist ja etwas ganz anderes als das, was das Oszilloskop anzeigt? Das Oszilloskop kann nur mitteln, was es aufgezeichnet hat. Je nach dem, ob es gerade viel "high" oder viel "low" im Speicher aufgeschnappt hat, schwankt der Mittelwert entsprechen. Lerne mit deinem Oszilloskop umzugehen. Traue keinen Zahlen, von denen du nicht verstanden hast, wie sie entstehen.
Kaffeetasse schrieb: > pwm.jpg p.s. Die hast auch noch ein ziemliches Problem mit deinem Messaufbau. Aus dem Pin 9 kommt eigentlich ein halbwegs sauberes Digitalsignal raus und nicht so ein verstörtes Signal, wie auf dem Oszilloskop zu sehen ist. Der Low-Pegel muss im unbelasteten Zustand ziemlich genau 0V sein und der High-Pegel VCC.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.