Forum: Mikrocontroller und Digitale Elektronik PWM geht nicht auf 0V


von Torsten W. (torsten_w256)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe ein Verständnisproblem zu PWM oder einen Messfehler oder 
beides.

Ich dimme mit einem Arduino eine 12V LED mittels NPN-Mosfet (IRF3708).
Ich lese dazu über Analog-In einen Poti aus.
Der Poti-Wert wird dann in den Tastgrad (0% - 100%) an einen PWM PIN 
umgewandelt.
Anschluss ist: PWM PIN -> R220 Ohm -> Mosfet Gate. Zusätzlich am Gate 
Pull-Down 10k Ohm an GND.

PWM Frequenz ist 30Hz (Standard Arduino). Das Flackern ist jetzt egal, 
es geht mir um den Punkt unten:

Wenn ich mit dem Oszi das Signal an Plus und Minus der LED = VCC 12V und 
Drain des Mosfet abgreife, sehe ich, dass das Low-Signal des PWMs nie 
unter 4.8V geht. Ich würde hier 0V erwarten. Siehe Bild VCC-Drain.png. 
Warum ist das so?
Ich vermute es ist ein Problem mit der gemeinsamen Masse von 
Steckernetzteil und Oszi. Wenn ja, wie misst man "richtig" (Peak to Peak 
12V mit 0V als Basis)? Wo kommen die 4.8V her?

Die LED geht auch brav aus, auch wenn 4.8V anliegen = Tastgrad 0%. Das 
Regeln der Helligkeit der LED funkktioniert.

Die Stromversorgung ist wie folgt realisiert:
12V Steckernetzteil geht in VIN des Arduino und gleichzeitig versorgt es 
die High-Side der LED. Ich weiß, dass man den Arduino nicht dauerhaft so 
versorgen soll. Ist nur der Testaufbau, um mein Problem darzustellen.

GND des Netzteil liegt an Arduino-GND sowie an Source des Mosfet.

Ich habe auch zwischen PWM Pin bzw. Gate und Drain des Mosfets gemessen. 
Da geht das Signal wie erwartet zw. 5 V und -7V. Siehe 
Gate_Source.png.(ich habe das Bild falsch bezeichnet, und kann es nun 
nicht mehr ändern. Sorry)


Ich habe dann auch noch zwischen Gate und Source des Mosfets 
gemessen.Hier sehe ich 5V und 0V. (Siehe Gate Drain.png)

Könnt ihr mir auf die Sprünge helfen?

: Bearbeitet durch User
von Gerald M. (gerald_m17)


Lesenswert?

Ein Schaltplan würde helfen.

Ansonsten fällt mir spontan ein dass bei normalen Oszilloskopen die 
Masse mit Erde verbunden ist. Du kannst also nicht wirklich 
differentiell messen. Dafür brauchst du einen zweiten Tastkopf.

von Torsten W. (torsten_w256)


Lesenswert?

ja das mit der gemeinsamen Masse habe ich ja schon vermutet.

von Wolfgang (Gast)


Lesenswert?

Torsten W. schrieb:
> PWM Frequenz ist 30Hz (Standard Arduino)
Wie kommst du darauf?
https://www.arduino.cc/en/tutorial/PWM

von Torsten W. (torsten_w256)


Lesenswert?

Wolfgang schrieb:
>> PWM Frequenz ist 30Hz (Standard Arduino)
> Wie kommst du darauf?

sorry mein Fehler, ich habe die Frequenz auf 30 Hz runtwegesetzt. Ist 
natürlich nkcht Arduino Standard.

von Torsten W. (torsten_w256)


Lesenswert?

Wolfgang schrieb:
>> PWM Frequenz ist 30Hz (Standard Arduino)
> Wie kommst du darauf?

sorry mein Fehler, ich habe die Frequenz auf 30 Hz runtwegesetzt. Ist 
natürlich nicht Arduino Standard.

von Axel S. (a-za-z0-9)


Lesenswert?

Torsten W. schrieb:
> Wenn ich mit dem Oszi das Signal an Plus und Minus der LED
> abgreife, sehe ich, dass das Low-Signal des PWMs nie
> unter 4.8V geht. Ich würde hier 0V erwarten

Ich nicht.

Wenn statt der LED (oder parallel zu den LED) ein Widerstand 
angeschlossen wäre - dann würde die Spannung über diesem Widerstand ohne 
Strom auch wirklich auf 0 abfallen. Aber die Strom-Spannungs Kennlinie 
einer LED ist stark nichtlinear. An eine weiße LED kannst du problemlos 
2V anlegen und es wird trotzdem kein Strom fließen. In LED-Streifen 
für 12V sind typisch 3 LED in Reihe geschaltet. Bei 4.8V liegen damit 
nur 1.6V pro LED an. Da leuchtet nichts.

Dein Problem ist, daß du auf die Spannung an den LED schaust, obwohl die 
wichtige Größe der Strom ist. So lange die Spannung deutlich unterhalb 
der Flußspannung bleibt, ist egal, ob das 0V sind oder 1V oder eben 
1.6V.

Wie kommt es zu der Spannung? Zum einen ist ein MOSFET kein idealer 
Schalter. Auch ausgeschaltet hat er einen Leckstrom im unteren µA 
Bereich. Zum zweiten hat jede LED (und die Kabel und Leiterbahnen des 
Stripes) eine Kapazität. Die wird zwar aufgeladen, wenn der MOSFET 
durchgeschaltet ist. Aber wenn der MOSFET sperrt, kann die Kapazität nur 
über die LED entladen werden. Und da sinkt der Strom unterhalb der 
Flußspannung ganz schnell ab. Was heißt, daß die Entladung sehr langsam 
geht.

Du kannst das auch im Oszillogramm (Vcc-Drain) sehen. Die Spannung fällt 
nicht sofort auf den Minimalwert. Erst fällt sie schnell (es fließt noch 
Strom durch die LED). Dann langsamer (das gibt die Rundung der Kurve). 
Und schließlich leiten die LED so gut wie nicht mehr und die Spannung 
bleibt beim Minimum stehen. Würde man noch genauer hinsehen, würde man 
sehen, daß sie sehr langsam weiter sinkt.

von michael_ (Gast)


Lesenswert?

Torsten W. schrieb:
> Die LED geht auch brav aus, auch wenn 4.8V anliegen = Tastgrad 0%. Das
> Regeln der Helligkeit der LED funkktioniert.

4,8V sind schon mal Quatsch.
Bei PWM liegt immer die volle Betriebsspannung an.

Ich hatte das Problem auch schon.
Auch wenn PWM 0 ist, wird eine ganz schmale Nadel ausgegeben.
Evtl. kann man das an einer LED in völliger Dunkelheit sehen.

Um PWM richtig 0 zu erreichen, hatte nur das Abschalten der PWM im 
Programm geholfen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Torsten W. schrieb:
> Wenn ich mit dem Oszi das Signal an Plus und Minus der LED = VCC 12V und
> Drain des Mosfet abgreife
???
Schließt du da die Masseklemme des Oszis tatsächlich irgendwo 
kreuz&quer in deiner Schaltung an? Warum heißt die Masseklemme wohl 
Masseklemme? Wo sollte man also die Masseklemme in der Schaltung 
anklemmen?

Nachdem das geklärt und die Masseklemme ab hier an der richtigen 
Stelle angeklemmt ist, kannst du ja nochmal ein paar Messungen machen. 
Und zwar einfach im Verlauf des Signalwegs:
1. am µC-Pin
2. am Mosfet-Gate
3. am Drain
und nur zur Sicherheit:
4. an der Source

Und weil du da ein nettes Vierkanal-Oszi hast, kannst du diese Signale 
alle gleichzeitig darstellen. Und ein Tipp: schließ alle 4 
Masseklemmen am selben Massepunkt an.

: Bearbeitet durch Moderator
von Jens G. (jensig)


Lesenswert?

Torsten W. (torsten_w256) schrieb:

>Ich dimme mit einem Arduino eine 12V LED mittels NPN-Mosfet (IRF3708).

NPN-Mosfets gibt's nicht. Wenn schon, dann N-Kanal-Mosfet, oder NPN-BJT.
Auserdem - LEDs werden üblicherweise nicht mit der Spannung als 
Hauptmerkmal spezifiziert. Bei LED-Lampen oder irgendwelchen LED-Modulen 
oder -streifen dagegen schon eher. Wenn Du das also als 12V-LED 
bezeichnest, dann isses offensichtlich keine simple LED, und hat damit 
möglicherweise auch irgendwas Strombegrenzendes inside.

>Anschluss ist: PWM PIN -> R220 Ohm -> Mosfet Gate. Zusätzlich am Gate
>Pull-Down 10k Ohm an GND.

Fein. Und wenn Source (bzw. Masse der Leistungsseite) mit Arduino-Masse 
verbunden ist, dann ist es noch feiner.

>Wenn ich mit dem Oszi das Signal an Plus und Minus der LED = VCC 12V und
>Drain des Mosfet abgreife, sehe ich, dass das Low-Signal des PWMs nie
>unter 4.8V geht. Ich würde hier 0V erwarten. Siehe Bild VCC-Drain.png.
>Warum ist das so?
Tja, wenn das wirklich einfach nur eine LED ist, dann können ohne 
Strombegrenzungsmaßnahmen alle möglichen Effekte passieren.
Auserdem klingt das ein bißchen abenteuerlich, wenn das Oszi an + und - 
der LED angeschlossen ist. Denn dann kann es Konflikte zw. der Masse des 
Oszis und den Nicht-Masse-Potentialen der Schaltung geben, wenn die 
Oszimasse nicht an Schaltungsmasse hängt.

>Ich vermute es ist ein Problem mit der gemeinsamen Masse von
>Steckernetzteil und Oszi. Wenn ja, wie misst man "richtig" (Peak to Peak
>12V mit 0V als Basis)? Wo kommen die 4.8V her?

Na zeig doch mal Schaltplan, Anschlußplan, und dann noch eins/zwei Fotos 
vom realen Aufbau, damit wir sehen, was Du wo angeschlossen hast.
Und wenn Du schon ein Mehrkanaloszi hast, dann messe alle nötigen 
Spannungen, die im Zusammenhang stehen, gleichzeitig, mit sichtbarer 
Nulllinie, damit man die Beziehung zw. den Signalen besser sieht

>Ich habe auch zwischen PWM Pin bzw. Gate und Drain des Mosfets gemessen.
>Da geht das Signal wie erwartet zw. 5 V und -7V. Siehe Gate_Drain.png.

Das macht man nur, wenn man weis, was man tut (z.B. bezüglich 
Potentialen der beteiligten Komponenten). Kein Wunder, daß so ein 
Kokolores rauskommt.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

michael_ schrieb:
> Auch wenn PWM 0 ist, wird eine ganz schmale Nadel ausgegeben.

Nicht bei Arduino, analogWrite() hat dafür schon einen Workaround drin.

von Axel S. (a-za-z0-9)


Lesenswert?

Lothar M. schrieb:

> Schließt du da die Masseklemme des Oszis tatsächlich irgendwo
> kreuz&quer in deiner Schaltung an? Warum heißt die Masseklemme wohl
> Masseklemme? Wo sollte man also die Masseklemme in der Schaltung
> anklemmen?

Das ist doch albern. Die Masseklemme des Oszis ist einfach das 
Bezugspotential für die vom Oszi dargstellten Spannungen. So lange die 
zu messende Schaltung nicht auch geerdet ist, darf man die Oszi-Masse 
selbstverständlich an jedem beliebigen Punkt der Schaltung anklemmen. 
Genauso wie man die "GND" Strippe eines Multimeters überall anklemmen 
darf. Z.B. um die Spannung über einem Widerstand direkt zu messen.

> kannst du ja nochmal ein paar Messungen machen.
> Und zwar einfach im Verlauf des Signalwegs:
> 1. am µC-Pin
> 2. am Mosfet-Gate
> 3. am Drain
> und nur zur Sicherheit:
> 4. an der Source
>
> Und weil du da ein nettes Vierkanal-Oszi hast, kannst du diese Signale
> alle gleichzeitig darstellen.

Und was soll das bringen?

Er hat ja schon gezeigt, daß am MOSFET-Gate ein sauberes Rechtecksignal 
anliegt. Er wundert sich nur, daß die Spannung am Drain in den 
PWM-Pausen nicht auf 12V hoch geht (entsprechend 0V über den LED).

Und wie ich weiter oben länglich erklärt habe, ist daran ganz und gar 
nichts außergewöhnlich.

von Stefan F. (Gast)


Lesenswert?

Axel S. schrieb:
> Das ist doch albern. Die Masseklemme des Oszis ist einfach das
> Bezugspotential für die vom Oszi dargstellten Spannungen. So lange die
> zu messende Schaltung nicht auch geerdet ist, darf man die Oszi-Masse
> selbstverständlich an jedem beliebigen Punkt der Schaltung anklemmen.

Es geht um ein Arduino Board. Spätestens wenn es mit dem PC verbunden 
ist, ist es geerdet.

von Wolfgang (Gast)


Lesenswert?

Axel S. schrieb:
> So lange die
> zu messende Schaltung nicht auch geerdet ist, darf man die Oszi-Masse
> selbstverständlich an jedem beliebigen Punkt der Schaltung anklemmen.
Richtig spannend wird es, wenn man dieser Einstellung bei einem 
Mehrkanal-Oszi folgt und die Masseklemmen der einzelnen Kanäle an 
verschiedenen Stellen in der Schaltung anklemmt.

von Keller (Gast)


Lesenswert?

Schaltungsfehler
Nadel? PWM -1 !

von SpätzjalistenTreffen (Gast)


Lesenswert?

Wolfgang schrieb:
> Axel S. schrieb:
>> So lange die
>> zu messende Schaltung nicht auch geerdet ist, darf man die Oszi-Masse
>> selbstverständlich an jedem beliebigen Punkt der Schaltung anklemmen.
> Richtig spannend wird es, wenn man dieser Einstellung bei einem
> Mehrkanal-Oszi folgt und die Masseklemmen der einzelnen Kanäle an
> verschiedenen Stellen in der Schaltung anklemmt.

Vielleicht hörst Du bald mal auf zu zweifeln?! Axel S. ist der Experte 
für Alles und Jedes. Was der sagt, ist Gesetz. Wenn der Deinen Beitrag 
gelesen hat, dann mach Dich warm. Der kehrt zuerst sein Wort ins 
Gegenteil und dann Dich auf links.

von Dieter (Gast)


Lesenswert?

Das war gut erklärt von Axel S. (a-za-z0-9), 02.05.2020 23:43. Das 
bedarf keiner Ergänzung.

Ein wirklicher Experte für "Alles und Jedes" weiß aber auch "Nobody is 
Perfect" und daher las ich auch schon, wenn auch nur sehr selten, "Asche 
über mein Haupt" als er etwas übersehen hatte.

von Torsten W. (torsten_w256)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,


anbei der Schaltplan.

Ich messe also an der LED ("Cathode" und "Andode"). Da geht es dann 
minimal auf 4,7 V runter.

Zu beachten ist, dass es sich um 2 in Reihe geschaltete 2x3 LED Matrix 
handelt, keine gewöhnliche LED. Siehe hier:

 https://www.ebay.de/itm/5V-Led-6-Piranha-Night-Lights-Lamp-Panel-Board-White-New/272488197400?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

Also die Masseklemme des Oszis an Source des Mosfets und den Meßkopf an 
Drain?

von Stefan F. (Gast)


Lesenswert?

Die LED braucht einen Vorwiderstand, denn ihre tatsächliche 
Betriebsspannung wird geringer als 12V sein. Ohne Vorwiderstand fällt 
die restliche Spannung überall ab, nur nicht da, wo sie soll.

Auf dem Ebay Produkt (das übrigens keine "Matrix ist"), sehe ich 
allerdings einen Vorwiderstand. Ist der auch in Echt vorhanden?

> Also die Masseklemme des Oszis an Source des Mosfets
> und den Meßkopf an Drain?

Ja, zeige mal ein Bild von diesem Aufbau und vom Messergebnis.

von Jens G. (jensig)


Lesenswert?

>Also die Masseklemme des Oszis an Source des Mosfets und den Meßkopf an
>Drain?

Ja logisch. Ein Kanal an Drain, ein Kanal an +12V, ein Kanal an Gate, 
...
Nutze doch mal die Kanäle - wozu hast Du die denn. Dann sieht man auch 
gleichzeitig, ob und was sich auf der Betriebsspannung so tut, am Gate, 
usw.

Und auserdem: wenn Du die Masseklemme irgendwo anders ranmachst, und Du 
erzählst was von "minimal auf 4,7 V runter", dann ist vollkommen unklar, 
ob das sich jetzt auf +12V bezieht, oder auf Masse, oder meinst Du sogar 
-4,7V gegenüber 12V, oder ...
Das stiftet also nur Verwirrung.
Und wenn der Arduino auch wirklich noch am PC hängt, dann gibt's lustig 
Funkenflug, wie Stefanus auch schon anmerkte.

Ach übrigens: mach mal paar kOhm parallel zu den LEDs. Das sollte deren 
Spannung im Off-Fall auf 0V drücken, falls es das ist, was Du da siehst.

: Bearbeitet durch User
von HildeK (Gast)


Lesenswert?

Jens G. schrieb:
> Ach übrigens: mach mal paar kOhm parallel zu den LEDs. Das sollte deren
> Spannung im Off-Fall auf 0V drücken, falls es das ist, was Du da siehst.

Wurde oben schon gesagt, du sagst es nochmals und ich bestätige das 
auch.

Lieber TO, mach das einfach mal!
Bei deiner Messung reichen Restströme durch den MOSFET im Sub-µA-Bereich 
aus, dass du da noch eine Restspannung messen kannst. Das ist dann mit 
dem Widerstand weg.

von Torsten W. (torsten_w256)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

die LEDs haben bereits einen Vorwiderstand.
Ich vermute mein Problem ist eher, dass ich die Masse des Oszis an der 
falschen Stelle angeschlossen habe.
Ich habe nun eine Messung mit mehreren Kanälen gemacht. Siehe 
Drain_Gate_12V.png
Gelb: Drain
Blau: Gate
Rosa: 12V+ Stromversorgung.

Die Massen der Messköpfe habe ich alle an Masse der Schaltung am 
gleichen Punkt angeklemmt. Dies ist die gemeinsame Masse aller 
Komponenten. Masse-Rail des Steckbretts. Anbei auch ein Foto vom 
Versuchsaufbau.
Die LEDs waren während der Messung angeschlossen.
Der Arduino hängt nicht per USB am PC.
Die gemeinsame Stromversorgung ist ein Steckernetzteil.

So ist Drain zw. 7 und 0 Volt.
Gate zw. 5 und 0 Volt.
Die Stromversorgung bei 12V.

Ich verstehe das mit den unterschiedlichen Potentialen/Spannungen noch 
nicht.
Warum geht Drain auf 0V wenn am Gate 5V anliegen. Sollte das nicht genau 
andersherum sein? Warum sehe ich am Drain nur 7V und nicht 12V?

von Jens G. (jensig)


Lesenswert?

>die LEDs haben bereits einen Vorwiderstand.

Du sollst einen R zusätzlich PARALLEL schalten.

>Ich verstehe das mit den unterschiedlichen Potentialen/Spannungen noch
>nicht.
>Warum geht Drain auf 0V wenn am Gate 5V anliegen. Sollte das nicht genau

Warum nicht? So funktioniert nun mal ein Mosfet - er invertiert in 
dieser Art Schaltung.

>andersherum sein? Warum sehe ich am Drain nur 7V und nicht 12V?

Siehe oben - kein R parallel zum LED-Strang.

: Bearbeitet durch User
von Torsten W. (torsten_w256)


Lesenswert?

Jens G. schrieb:
>>die LEDs haben bereits einen Vorwiderstand.
>
> Du sollst einen R zusätzlich PARALLEL schalten.
>
OK. 10k Ohm parallel zur LED lösen das Problem. Drain geht nun auf 12V.
Ich glaube, ich verstehe auch die Invertierung.
Vielen Dank an euch alle. Ihr habt mir sehr geholfen, die Materie besser 
zu verstehen!!!

von Stefan F. (Gast)


Lesenswert?

Torsten W. schrieb:
> Warum geht Drain auf 0V wenn am Gate 5V anliegen.

Weil der Transistor dann einschaltet und seinen Ausgang (D) mit GND (=S) 
verbindet. GND ist immer Null Volt.

> Sollte das nicht genau andersherum sein?

Aus Sicht der LED ja, aber nun schaust du aus Sicht des Transistors 
drauf, weil das Oszilloskop an der gleichen Masse (GND) hängt, wie der 
Transistor.

Die LED hängt hingegen an 12V als Bezugspunkt.

> Warum sehe ich am Drain nur 7V und nicht 12V?

Weil an der LED 5V abfallen. Wenn du stattdessen eine Glühlampe benutzt, 
wirst du auch die erwarteten 12V sehen.

von qwertzuiopü+ (Gast)


Lesenswert?

Jens G. schrieb:
> NPN-Mosfets gibt's nicht.

Doch, natürlich. Schau dir mal an, wie so ein MOSFET aufgebaut ist. Auch 
wenn die Bezeichnung nicht besonders üblich ist.

Torsten W. schrieb:
> Warum geht Drain auf 0V wenn am Gate 5V anliegen.

Stell dir den MOSFET als Schalter vor: Wenn Gate-Source groß genug ist, 
werden Drain und Source kurzgeschlossen. Deswegen 0V an Drain gegen 
Source, wenn Gate-Source groß genug ist.

von Torsten W. (torsten_w256)


Lesenswert?

ja so habe ich mir das auch erschlossen. Danke!

von Wolfgang (Gast)


Lesenswert?

qwertzuiopü+ schrieb:
> Doch, natürlich. Schau dir mal an, wie so ein MOSFET aufgebaut ist.
Da verwechselst du wohl etwas mit dem JFET. Beim MOSFET sind Drain- und 
Sourcebereich sowie der Kanal N-dotiert. Das Substrat interessiert 
primär nicht und findet sich deswegen auch nicht im Namen wieder.

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
Noch kein Account? Hier anmelden.