Moin, ich versuche gerade, eine Spannung von 12 V mit einem Arduino Micro über PWM und Mosfet zu regeln. Das funktioniert soweit auch, allerdings habe ich bei 1 % Duty Cycle vom PWM-Signal bereits 15 % Spannung an der Last. Im Bereich bis ca. 70 % Duty Cycle verhält sich die Spannung dann linear (10 % Duty Cycle = 25 %, 20 % Duty Cycle = 35 % usw.) und so ab 75 % Duty Cycle flacht die Kurve zwar etwas ab, aber ich komme hoch bis 100 %. Als Mosfet verwende ich einen IRL2203N, ansonsten besteht die Schaltung erstmal nur aus einem Vorwiderstand am Gate sowie einem Pulldown zwischen Gate und Source (siehe Bild). Die Spannung vom PWM-Signal passt, dort ist das Verhalten linear. Woran liegt es, dass ich nicht über den kompletten Bereich regeln kann? Gruß und vielen Dank!
Ich sehe da keine Spannungsregelung oder Steuerung. Ich nehme an du misst mit dem Multimeter. Dann sind das Messfehler. Deine Schaltung macht entweder 0 oder 12V. Nur eben verschieden lang. Du hast als Last nen widerstand - dann kann die Spannung nicht geglättet werden. wenn du kein true rms Multimeter für den Frequenzbereich den du fährst, hast, dann musst du mit oszi über einem Shunt messen...
Calgon schrieb: > Woran liegt es, dass ich nicht über den kompletten Bereich regeln kann? Gute Frage, die Schaltung ist, wenn du sie so aufgebaut hast, wie im Schaltbild, nahezu idiotensicher. Man kann einen defekten MOSFet allerdings nicht ganz aussschliessen. Dazu trenne mal den Arduino ab und messe den Reststrom im Lastkreis. Der Pulldown am Gate sollte in dem Fall den MOSFet komplett sperren. Wie hoch ist denn die PWM Frequenz? Und wie sieht das Programm aus? - wären dann die nächsten Fragen. Der IRL2203 hat eine recht hohe Gatekapazität und braucht an einen schwachen MC Ausgang schon einige Zeit, um umgeladen zu werden.
:
Bearbeitet durch User
Es ist ein einfaches Multimeter ohne True RMS (Voltcraft VC-220), mit dem ich messe. Allerdings messe ich damit am Ausgang vom Arduino auch die Spannung, die ich erwarten würde. Ein Oszilloskop habe ich privat nicht. Muss ich mal gucken, ob ich eins auftreiben kann. Der Arduino hat je nach Ausgang standardmäßig entweder 490 Hz oder 976 Hz als Frequenz für das PWM-Signal. Das Programm besteht an der Stelle nur aus einem analogWrite() im Bereich von 0-255.
Calgon schrieb: > Das Programm besteht an der Stelle > nur aus einem analogWrite() im Bereich von 0-255. Und scheint hoch geheim zu sein. Zeig den Sketch doch mal, hier reissen einem nicht alle Leute den Kopf ab.
Besteht deine "Last" nur aus dem Multimeter? Dann schliess mal parallel dazu einen Widerstand in der Größenordnung von einem Kiloohm!
Der Sketch ist nicht hoch geheim, der ist nur zu Hause und ich sitze gerade auf der Arbeit, daher kann ich ihn gerade nicht reinstellen :-) Die Last ist aktuell ein Widerstand mit 100 kOhm, später soll damit ein DC Motor betrieben werden. Grundsätzlich wäre die Funktion für die Ansteuerung vom Motor auch so gegeben, da ich den Motor eh nur von 50-100 % ansteuern möchte. Aber ich würde halt gerne nachvollziehen können, warum sich das Ganze so verhält.
So, ich habe jetzt mal einen Widerstand mit 1 kOhm und danach einen mit 560 Ohm als Last angehängt und siehe da, es lässt sich alles über den kompletten Bereich regeln. Je kleiner der Widerstand, desto besser das Ergebnis. Aber warum ist das so? Ein Multimeter mit True RMS zeigt übrigens genau den gleichen Messwert an, wie mein VC-220. Gemessene PWM-Frequenz am Ausgang vom Arduino sind 490,1 Hz. Auf jeden Fall schon mal vielen Dank für die Hilfe.
100kOhm ist einfach zu hoch, um die Kapazitäten umzuladen, das konnte garnicht funktionieren. Auf dem Scope hättest Du das sofort sehen können was da schief geht.
:
Bearbeitet durch User
Calgon schrieb: > Woran liegt es, dass ich nicht über den kompletten Bereich regeln kann? Das könntest du nur bei einer symmetrischen PWM, sonst sind die Lade- und Entlade-Zeiten niemals gleich. Wenn z.B. das Entladen der vorhandenen Kapazitäten länger dauerd als das Laden, kommst du niemals auf 0V herunter. Georg
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.