Guten Tag Zusammen Ich möchte gerne bei einem PWM Signal den Strom Messen. Doch natürlich schwankt die Messung wegen des PWM-Signals. Wie kann ich diesen Messen ohne die Schwankungen? Bei Fragen stehe ich gerne zur Verfügung. Hier ist mein bisheriger Code um den Strom zu messen. Er schwankt aber bei einem PWM Signal:
1 | int sensorValue = analogRead(Strommesspin); |
2 | float Electricity = ((sensorValue * (5.0 / 1023.0))/1.0)*1000.0; |
3 | |
4 | |
5 | lcd.setCursor(0, 1); |
6 | lcd.print(Electricity); |
7 | lcd.print("mA"); |
8 | |
9 | delay(1000); |
Dies ist die Formel um den Strom zu messen welche bei einer LED getestet wurde und funktionierte. Jedoch bei PWM schwanken die Werte stark. ((sensorValue * (5.0 / 1023.0))/1.0)*1000.0;
Gustav Gruenefelden schrieb: > float Electricity = ((sensorValue * (5.0 / 1023.0))/1.0)*1000.0; Urgs. Murgs. Aber das "geteilt durch Eins Komma Null" ist der Oberhammerschenkelklopfer. Zum Glück ist der Compiler da schlauer als der Programmierer... ;-) > lcd.print(Electricity); > lcd.print("mA"); Wenn du schon unbedingt englische Worte für deine Variablen nehmen musst, dann nimm wenigstens "Current" für den "Strom". > Wie kann ich diesen Messen ohne die Schwankungen? Du musst zum richtigen Zeitpunkt messen: dann, wenn der Strom halbwegs definiert und konstant ist. Mehr kann man leider mangels brauchbarer Angaben zu Anwendung (PWM-Frequenz, Last, Schaltung...) nicht sagen.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Gustav Gruenefelden schrieb: >> float Electricity = ((sensorValue * (5.0 / 1023.0))/1.0)*1000.0; > Urgs. Murgs. > Aber das "geteilt durch Eins Komma Null" ist der > Oberhammerschenkelklopfer. Zum Glück ist der Compiler da schlauer als > der Programmierer... ;-) Ich weiss schon, dass man diesen Wert weglassen kann. Ich habe mich jedoch bewusst dazu entschieden die 1.0 in den Code zu schreiben, weil ich dadurch die Formel noch in Ferner Zeit nachvollziehen kann und die Grösse des Shunts beliebig ändern kann ohne grossen Aufwand. Ich Verwende die Grundfrequenz, glaube um die 800Hz. Der Shunt ist ein 1 Ohm Widerstand welche den Strom eines Lüfters misst mit der folgenden Schaltung. Wie kann ich den richtigen Zeitpunkt festlegen?
Gustav Gruenefelden schrieb: > mit der folgenden Schaltung. Zeichne die verwirrende Schaltung mal wie üblich "von Plus nach Minus von oben nach unten". Dann siehst du schnell, dass die keinen Strom messen kann, weil der Spannungsabfall vom Shunt nicht an den Analogeingang vom Druiden kommt. Viel schlimmer: die Schaltung wird dir den Druiden kaputt machen, weil über den Analogeingang 12V in den µC kommen. Am sinnvollsten wäre es, die Schaltung "umgekehrt" aufzubauen (also auf der Highside zu schalten) und den Shunt an Masse zu legen:
1 | + ------------------------o---- |
2 | | |
3 | ||-| |
4 | PWM-Ansteuerung ||>' |
5 | üner NPN-Transistor --||-. |
6 | | |
7 | .------o |
8 | | | |
9 | | Lüfter |
10 | - | |
11 | Freilaufdiode ^ o---------- Ain |
12 | | | |
13 | | 1R Shunt |
14 | | | |
15 | GND --------------o------o---------- GND |
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Urgs. Murgs. > Aber das "geteilt durch Eins Komma Null" ist der > Oberhammerschenkelklopfer. Zum Glück ist der Compiler da schlauer als > der Programmierer... ;-) Und du bist Moderator hier. Da hat man aber den Bock zum Gärtner gemacht.
Lothar M. schrieb: > Gustav Gruenefelden schrieb: >> mit der folgenden Schaltung. > Zeichne die verwirrende Schaltung mal wie üblich "von Plus nach Minus > von oben nach unten". Dann siehst du schnell, dass die keinen Strom Im Anhang neu gezeichnet. > messen kann, weil der Spannungsabfall vom Shunt nicht an den > Analogeingang vom Druiden kommt. > Viel schlimmer: die Schaltung wird dir den Druiden kaputt machen, weil > über den Analogeingang 12V in den µC kommen. Habe es falsch aufgezeichnet so ist es nicht. Der Shunt ist bei Source zu GND. Im Anhang befindet sich die richtige Version, wie die Schaltung sich auf dem Print befindet.
Voyager 2 schrieb: > Und du bist Moderator hier. Tja, da sieht man mal den Unterschied. Denn im Gegensatz zu deinem billigen Gejammer enthält mein Post auch noch sinnvolle Informationen. > Da hat man aber den Bock zum Gärtner gemacht. Empfindest du die ausgiebige Verwendung von Fließkommazahlen auf einem µC als sinnvoll? Hältst du den Faktor 1023,0 für richtig? Gustav Gruenefelden schrieb: > Der Shunt ist bei Source zu GND. Das ist ungünstig, denn der Strom, der durch den Shunt fließt, hebt die Sourcespanung an. Und deshalb wird die Ugs geringer (weil ja Ug auf max. 5V bleibt) und der Mosfet leitet schlechter.
:
Bearbeitet durch Moderator
Ich habe auf dem Schaltbild vergessen die Verbindung oberhalb des Shunts zum Arduino Analog Pin zu ziehen.
Gustav Gruenefelden schrieb: > Ich Verwende die Grundfrequenz, glaube um die 800Hz. Der Shunt ist ein 1 > Ohm Widerstand welche den Strom eines Lüfters misst mit der folgenden > Schaltung. > Wie kann ich den richtigen Zeitpunkt festlegen? Garnicht, wo her willst du wissen wann der Lüftermotor Kommutiert! Mehr als hier den Effektivwert zu berechnen, wird wohl nicht gehen.
Lothar M. schrieb: > Empfindest du die ausgiebige Verwendung von Fließkommazahlen auf einem > µC als sinnvoll? Hältst du den Faktor 1023,0 für richtig? Ich dachte mir ich verwende Fliesskommazahlen um in der Lösungen auch Fliesskommazahlen zu erhalten. > Gustav Gruenefelden schrieb: >> Der Shunt ist bei Source zu GND. > Das ist ungünstig, denn der Strom, der durch den Shunt fließt, hebt die > Sourcespanung an. Und deshalb wird die Ugs geringer (weil ja Ug auf max. > 5V bleibt) und der Mosfet leitet schlechter. Ok, dies kann ich jedoch nicht mehr ändern weil der Print bereits bestellt vor mir liegt. Das PWM lässt sich jedoch gut steuern.
Gustav Gruenefelden schrieb: > Wie kann ich den richtigen Zeitpunkt festlegen? du synchronisierst die Messung mit der PWM und misst immer nur, wenn der FET eingeschaltet ist. Alternativ dazu kannst du zwischen Shunt und ADC-Eingang einen Tiefpass einbauen, der über das PWM-Signal am Shunt mittelt. Dann kannst du zu beliebigen Zeiten messen, musst aber den Messwert noch durch den Tastgrad der PWM dividieren, um auf den tatsächlichen Strom im Lüftermotor zu kommen.
Wieviel Strom "zieht" den der Lüfter? 200mA - 300mA? Macht dann bei 1R Shunt einen "ground-lift" von eben 200 - 300mV. Der SI2302 ist selbst bei nur 2.5V U_GS noch gut im Rennen. Da passiert nix. Du musst den ADC am Ende des PWM Zyklus' starten, bevor er wieder auf LOW geht. Deine Berechnungen (Float usw.) müssen dann natürlich so schnell sein, dass du eher fertig bist, bevor die PWM wieder auf LOW geht und dir den Wert wieder verhagelt. Daher würde ich auch lieber überlegen a) wie man die Berechnung ganz simpel hält und b) wie man den ADC gestartet bekommt, kurz bevor die High-Phase der PWM "um" ist. oder umgekehrt von den Prioritäten her. Kannst ja den ADC zB. über den Analog-Komparator triggern... kannst aber auch einfach alles so lassen und mit 10K und 100nF deine Spannung über dem 1Ohm tiefpassfiltern. Die Referenzspannungsgeschichte kann man mit entsprechend "aufgeblasenen" hochskalierten Integer-Werten rechnen und das Komma später auf dem Display setzen.
Axel R. schrieb: > Wieviel Strom "zieht" den der Lüfter? 200mA - 300mA? Kann mans wissen? Ich habe hier Axiallüfter, die ziehen 3A bei 48V. Die Dinger kann man fliegen lassen. > Du musst den ADC am Ende des PWM Zyklus' starten, bevor er wieder auf > LOW geht. Deine Berechnungen (Float usw.) müssen dann natürlich so > schnell sein, dass du eher fertig bist, bevor die PWM wieder auf LOW > geht und dir den Wert wieder verhagelt. Zum Steuern des ADC und zum Einlesen des AD-Wertes nimmt man Interrupts. Dann ist es schnurzegal, wie schnell die Berechung und das Display(!!) ist. Gustav Gruenefelden schrieb: > Im Anhang neu gezeichnet. Mach noch eine Freilaufdiode rein...
Lothar M. schrieb: > Axel R. schrieb: >> Wieviel Strom "zieht" den der Lüfter? 200mA - 300mA? > Kann mans wissen? > Ich habe hier Axiallüfter, die ziehen 3A bei 48V. Die Dinger kann man > fliegen lassen. Er verbraucht 60mA bei 12V. >> Du musst den ADC am Ende des PWM Zyklus' starten, bevor er wieder auf >> LOW geht. Deine Berechnungen (Float usw.) müssen dann natürlich so >> schnell sein, dass du eher fertig bist, bevor die PWM wieder auf LOW >> geht und dir den Wert wieder verhagelt. > Zum Steuern des ADC und zum Einlesen des AD-Wertes nimmt man Interrupts. > Dann ist es schnurzegal, wie schnell die Berechung und das Display(!!) > ist. Ich würde gerne den Mittelwert des Stromes nehmen weil sonst der Strom ja immer gleich wäre. Ich weiss jedoch nicht wie ich verschieden Punkte in verschiedenen Zeiten. > Gustav Gruenefelden schrieb: >> Im Anhang neu gezeichnet. > Mach noch eine Freilaufdiode rein... Am Print kann leider nichts mehr verändern.
Achim S. schrieb: > du synchronisierst die Messung mit der PWM und misst immer nur, wenn der > FET eingeschaltet ist. Ich möchte eben gerne den Mittelwert berechnen, weil sonst der Strom immer gleich ist egal ob ich PWM verstelle. Ich weiss jedoch nicht wie ich verschieden Messungen bei verschiedenen Zeiten mache. > Alternativ dazu kannst du zwischen Shunt und ADC-Eingang einen Tiefpass > einbauen, der über das PWM-Signal am Shunt mittelt. Am Print kann ich leider nichts mehr verändern
Gustav Gruenefelden schrieb: > Ich möchte eben gerne den Mittelwert berechnen, weil sonst der Strom > immer gleich ist egal ob ich PWM verstelle. Möchtest du den Mittelwert des Stroms durch den Lüfter wissen oder möchtest du den Mittelwert des Stroms durch den Shut wissen? Beides hat unterschiedliche Werte. Zumindest dann, wenn du eine Freilaufdiode eingebaut hast. Was du unbedingt tun solltest. Der einfachste Weg, den Mittelwert zu bestimmen, besteht in meinem zweiten Vorschlag: Achim S. schrieb: > Alternativ dazu kannst du zwischen Shunt und ADC-Eingang einen Tiefpass > einbauen, der über das PWM-Signal am Shunt mittelt. Dann kannst du zu > beliebigen Zeiten messen, musst aber den Messwert noch durch den > Tastgrad der PWM dividieren, um auf den tatsächlichen Strom im > Lüftermotor zu kommen.
Gustav Gruenefelden schrieb: > Am Print kann ich leider nichts mehr verändern Glaube ich nicht. Trenne halt die Leitung auf und löte von Hand einen Längswiderstand + Kondensator ein.
Gustav Gruenefelden schrieb: > weil sonst der Strom > immer gleich ist egal ob ich PWM verstelle. Meinste? Wie kommst'n zu dieser Annahme? der Strom wird schon ordentlich nach oben gehen, wenn der Lüfter langsamer läuft. Okay - ist jetzt kein Bürstenmotor, getestet hab ich das mitm PC-Lüfter auch noch nicht...
Gustav Gruenefelden schrieb: >> Mach noch eine Freilaufdiode rein... > > Am Print kann leider nichts mehr verändern. Ohne Freilaufdiode ist es eine Schrottschaltung. Keine Lüftersteuerung sondern eine Transistorheizung. Du kannst natürlich noch extern eine Freilaufdiode über die Klemmen des Lüfters anschließen. Mach das, oder baue eine neue Schaltung.
Achim S. schrieb: > Möchtest du den Mittelwert des Stroms durch den Lüfter wissen oder > möchtest du den Mittelwert des Stroms durch den Shut wissen? Beides hat > unterschiedliche Werte. Zumindest dann, wenn du eine Freilaufdiode > eingebaut hast. Was du unbedingt tun solltest. Ich möchte gerne den Mittelwert durch den Shunt wissen. Der FET hat ja bereits eine Freilaufdiode verbaut.
Axel R. schrieb: > Gustav Gruenefelden schrieb: >> weil sonst der Strom >> immer gleich ist egal ob ich PWM verstelle. > > Meinste? > Wie kommst'n zu dieser Annahme? > der Strom wird schon ordentlich nach oben gehen, wenn der Lüfter > langsamer läuft. > Okay - ist jetzt kein Bürstenmotor, getestet hab ich das mitm PC-Lüfter > auch noch nicht... Ich dachte dass der Ventilator bei dem positiven Puls immer die 60 mA verbraucht. Aber, durch das ständige einschalten und ausschalten Strom gespart wird, was ich auch sehe wenn ich mit einem Multimeter messe.
Gustav Gruenefelden schrieb: > Der FET hat ja > bereits eine Freilaufdiode verbaut. NEIN, das hat er nicht. Nichts für ungut, aber du hast überhaupt nicht verstanden, wie PWM an induktiven Lasten funktioniert. Bitte ergänze die Freilaufdiode an den Klemmen, ohne ist die gesamte Diskussion hier sinnlos. Hier kannst du betrachten, wie die Schaltung aussehen sollte (dein Strommess-Shunt kommt noch dazu) und nachlesen, wie sie funktioniert. https://www.mikrocontroller.net/articles/Motoransteuerung_mit_PWM#Mosfet_mit_Freilaufdiode.2C_1-Quadrantensteller
Gustav Gruenefelden schrieb: > Oke danke habe es nun Verstanden und die Freilaufdiode verbaut. Prima. Ab jetzt gilt ungefähr: der Strom im Lüfter stellt sich so ein, als würdest du den Lüfter mit einer Gleichspannung versorgen, die den Wert 12V*Tastgrad hat. Ab jetzt gilt ebenfalls ungefähr: der Strom, der in der Mitte der On-Phase durch den Shunt fließt entspricht dem mittleren Strom durch den Motor. Du kannst also entweder deine ADC-Messung so timen, dass die Abtastung in der Mitte der On-Phase stattfindet. Dann bekommst du den mittleren Motorstrom. Oder du kannst den Spannungswert am Shunt per Tiefpass mitteln. Dann bekommst du den mittleren Stromfluss durch den Shunt. Der mittlere Stromfluss im Motor lässt sich daraus berechnen, indem du durch den Tastgrad dividierst.
Achim S. schrieb: > Ab jetzt gilt ebenfalls ungefähr: der Strom, der in der Mitte der > On-Phase durch den Shunt fließt entspricht dem mittleren Strom durch den > Motor. Du kannst also entweder deine ADC-Messung so timen, dass die > Abtastung in der Mitte der On-Phase stattfindet. Dann bekommst du den > mittleren Motorstrom. Dieser Teil leuchtet mir noch nicht ganz ein, weshalb in der Mitte des Pulses der mittlere Strom ist und nicht die 60 mA. Wäre es auch möglich wie oben beschrieben mit dem Tastgrad den Mittelwert des Stromes zu berechnen. Tasgrad*60mA=Mittelwert. Dann müsste ich nur noch rausfinden wie ich den Tastgrad mit Hilfe des Arduinos ermittle.
Alternativer Ansatz: Die impulsformige Spannung am Fühlerwiderstand z. B. per LTC1966 in eine Gleichspannung wandeln (evtl. vorher verstärken) und dann ganz entspannt per Arduino messen.
In diesem Stil würde ich es gerne ausrechnen nach meinem Verständnis sollte es funktionieren stimmt das so?
1 | void loop() { |
2 | float tH= pulseIn(D1,HIGH); //misst Pulslänge HIGH |
3 | float tL= pulseIn(D1,LOW); //misst Pulslänge LOW |
4 | float Tastgrad = (tH/(tL+tH)): //Rechnet Tastgrad aus |
5 | float Strom = (Tastgrad*60); //60 steht für 60 mA rechnet mittelwert |
6 | strom aus |
7 | delay(10); |
8 | }
|
Gustav Gruenefelden schrieb: > Dieser Teil leuchtet mir noch nicht ganz ein, weshalb in der Mitte des > Pulses der mittlere Strom ist und nicht die 60 mA. Wegen der Induktivität des Motors. Die stemmt sich gegen schnelle Stromänderungen und sorgt beim PWM-Betrieb dafür, dass ungefähr der Strom fließt, der 12V*Tastgrad entspricht. Während der On-Phase steigt der Strom ein bisschen an, während der Off-Phase sinkt er ein bisschen ab. Der Strom wackelt also dreiecksförmig um den mittleren Storm herum. In der Mitte der On-Phase und in der Mitte der Off-Phase fließt jeweils grade der Strom, der im Mittel über die gesamte Periode fließt. Eberhard H. schrieb: > Die impulsformige Spannung am Fühlerwiderstand z. > B. per LTC1966 in eine Gleichspannung wandeln Kann man machen. Dann muss man aber wissen, dass das den RMS-Wert des Shuntstroms liefert, und dass der durch die Wurzel des Tastgrads dividiert werden muss, um den Strom durch den Motor zu liefern. Da wäre es sicher einfacher, durch den RC-Tiefpass den Mittelwert des Shuntstroms zu bestimmen und durch den Tastgrad zu dividieren. Gustav Gruenefelden schrieb: > In diesem Stil würde ich es gerne ausrechnen nach meinem Verständnis > sollte es funktionieren stimmt das so? Warum willst du den Tastgrad messen? Den gibst du doch selbst mit der PWM vor, du kennst den Wert doch. Messen musst du allerdings weiterhin den Wert des Stroms während der on-Phase. Das werden keine 60mA sein (so hoch wird der Strom nicht, wenn du nicht auf 100% Tastgrad gehst). Es wäre glaube ich recht hilfreich für dich, wenn du die Messungen erst mal mit einem Oszilloskop durchführen würdest um ein besseres Gefühl für den tatsächlichen Ablauf zu bekommen.
Achim S. schrieb: > Gustav Gruenefelden schrieb: >> Dieser Teil leuchtet mir noch nicht ganz ein, weshalb in der Mitte des >> Pulses der mittlere Strom ist und nicht die 60 mA. > > Wegen der Induktivität des Motors. Die stemmt sich gegen schnelle > Stromänderungen und sorgt beim PWM-Betrieb dafür, dass ungefähr der > Strom fließt, der 12V*Tastgrad entspricht. (Spannung berechnen über Shunt*Tastgrad)/Shunt: Spannung über Shunt*Tastgrad entspricht dem des Gleichstromes. Und am schluss würde ich dann den Strom ermitteln, wenn ich durch den Shunt dividiere. > Während der On-Phase steigt der Strom ein bisschen an, während der > Off-Phase sinkt er ein bisschen ab. Der Strom wackelt also > dreiecksförmig um den mittleren Storm herum. In der Mitte der On-Phase > und in der Mitte der Off-Phase fließt jeweils grade der Strom, der im > Mittel über die gesamte Periode fließt. Ok danke für die Erklärung, versuche es mal nachvollzuziehen. > Gustav Gruenefelden schrieb: > Warum willst du den Tastgrad messen? Den gibst du doch selbst mit der > PWM vor, du kennst den Wert doch. Nein, den kenne ich nicht. Weil ich die PWM Frequenz per Potentiometer ändere. > Es wäre glaube ich recht hilfreich für dich, wenn du die Messungen erst > mal mit einem Oszilloskop durchführen würdest um ein besseres Gefühl für > den tatsächlichen Ablauf zu bekommen. Ok, werde es mal ausmessen und mit den Rechnungen vergleichen
Gustav Gruenefelden schrieb: > Nein, den kenne ich nicht. Weil ich die PWM Frequenz per Potentiometer > ändere. das PWM Signal wird nicht von deinem Arduino erzeugt? Falls doch kennt dein Arduino natürlich den Tastgrad. Gustav Gruenefelden schrieb: > Spannung über Shunt*Tastgrad nein: du musst die gemessene Spannung an Shunt durch den Tastgrad dividieren, nicht multiplizieren.
Achim S. schrieb: > nein: du musst die gemessene Spannung an Shunt durch den Tastgrad > dividieren, nicht multiplizieren. Ups, das war jetzt missverständlich. Deswegen nochmal klarer: wenn du den Weg gehst, die Spannung am Shunt per Tiefpass zu mitteln und dann diese gemittelte Spannung am Tiefpass misst, dann must du deren Wert durch den Tastgrad dividieren. Wenn du den anderen Weg gehst (Spannung direkt am Shunt im richtigen Zeitpunk messen), dann brauchst du den Tastgrad nicht weiter zu berücksichtigen.
im Anhang noch eine (vereinfachte) Simu, die dir die Verhältnisse verdeutlichen soll. Oben siehst du die Spannung am Ausgang des Tiefpasses (also den Mittelwert der Spannung am Shunt. Unten siehst du in rot den Strom durch die Motorwicklung, in grün den Strom durch den Shunt. Während der On-Phase des FETs sind der Strom durch Shunt und Motor identisch und steigen langsam an (die Induktivität der Motorwicklung verhindert einen sprunghaften Stromanstieg, das war bei deinen ersten Messungen mit LEDs anders). Während der Off-Phase springt der Strom am Shunt auf 0, der Strom des Motors fließt über die Freilaufdiode weiter und sinkt langsam ab. Wenn du in der Mitte der On-Phase misst (blauer Pfeil), bekommst du in dem Moment genau die 30mA, die im Mittel auch durch den Motor fließen. Alternativ kannst du auch am Ausgang des Tiefpass messen. Dort siehst du (einigermaßen konstant) ~15mV. Das durch den Tastgrad (50%) dividiert ergibt 30mV - entsprechend 30mA Motorstrom am einem 1Ohm Shunt. Die 30mA ergeben sich, weil im Mittel die halbe Versorgungsspannung (12V*50%) am Motor anliegen. Bei 100% Tastgrad würden 60mA fließen. Diese Betrachtung gilt nur ungefähr: die Dreieckskurve ist kein echtes Dreieck, ein Motor besteht nicht nur aus Induktivität und Widerstand, und die genaue Kurvenform kann bei deinem Motor natürlich anders aussehen, als in dieser Simu. Wenn der Strom in der Off-Phase ganz auf Null absinken sollte (was beim Betrieb ohne Freilaufdiode sicher der Fall war), dann gilt sie gar nicht mehr. Aber es gibt dir vielleicht einen Anhaltspunkt, was deine Messungen mit dem Oszi zeigen.
Gustav Gruenefelden schrieb: > Ich Verwende die Grundfrequenz, glaube um die 800Hz. Der Shunt ist ein 1 > Ohm Widerstand welche den Strom eines Lüfters misst mit der folgenden > Schaltung. Für mich klingt das danach, daß das PWM Signal vom Arduino erzeugt wird. Achim S. schrieb: > Gustav Gruenefelden schrieb: >> Nein, den kenne ich nicht. Weil ich die PWM Frequenz per Potentiometer >> ändere. > > das PWM Signal wird nicht von deinem Arduino erzeugt? Falls doch kennt > dein Arduino natürlich den Tastgrad. Deshalb solltest du diese Frage beantworten, dann könnte die Lösung deines Problems eventuell sehr einfach ausfallen. Wenn du ein Oszilloskop hast, dann betreibe den Lüfter nur an einem Labornetzteil und schau dir den Stromfluss (Spannung über Shunt) bei Betrieb an einer konstanten Spannung an. Ich habe das vor einiger Zeit auch bei zwei PC-Lüftern gemacht. Einer davon erzeugt zum Kommutierungszeitpunkt eine Stromspitze auf einen Maximalwert, und beim anderen ist der Strom jeweils kurzzeitig auf Null zurückgegangen. Diese Spitzen bzw. Einbrüche sind drehzahlabhängig und nicht synchron zu deinem PWM Signal, deshalb wirst du am Shunt dann eine Überlagerung dieser beiden Frequenzen sehen. Das heißt, auch bei einer PWM synchronisierten Messung kannst du noch Schrottwerte erhalten. Wenn der Arduino das PWM Signal selbst erzeugt, gibt es eine Softwarelösung, ansonsten ist die beste Lösung der von Achim vorgeschlagene Tiefpass zwischen Shunt und ADC.
PWM im Arduino: was steht denn für eine Variable bei Dir bei AnalogWrite als Parameter? Vielleicht kannst Du uns diese Zeile mal als Codeansicht posten? Mit dem Strom bei "12V-Häppchen", die der Motor bekommt, will ich jetzt nicht näher drauf eingehen, hab ich mitm PC-Lüfter noch nicht probiert. Ich weiss nur, dass beim "normalen" Bürstenmotor der Strom erheblich ansteigt, weil die Drehzahl fehlt, die er bei 12Volt hätte. Stichwort EMK und Generatorspannung. Wie das nun bei einem elektronisch kommutierten Lüfter aussieht, weiss ich nicht mehr genau. Wir hatten die lezten sieben-acht Jahre öfters hier gestritten, ob der Motorstrom nun steigt oder nicht. Ich meine "ja", wenn auch nur im Motor. Ist aber hier von ohne Belang, denke ich. Wird man ja sehen... (Bei einem Step-Down-Regler kann man hinten auf der 3V3 Seite ja auch megaviel mehr Strom entnehmen, als man im Mittel auf der 12V-Seite aufwendet (abzgl. Wirkungsgrad). Daher mein Einwand mit dem Strom. Aber wir messen ja in den Falle an der falschen Stelle, um diesem Phänomen auf die Spur zu kommen; wir messen quasi den Enigangsstrom, nicht den Motorstrom. Aber gut; lassen wir das mal aussen vor. in meinem taschenbuch aus 1987 ist das ganz gut erklärt ;) ISBN 3-7883-1182-7 "Drehzahlregler für elektrische Modellantriebe" von L.Retzbach die ersten 30 Seiten reichen.
in der Mittagspause mal schnell zusammengelötet: passiert nix weiter schlimmes: am Start jedes PWM-Zykluss'(?) gibt es am 1R einen fetten, sehr schmalen 2.5µs Spike (500mV), dann steigt der Strom 'bauchförmig' von null an und bleibt dann stehen. Auch beim Abschalten passiert (selbst ohne Freilaufdiode) nix. Kein Ansteigen der Spannung auf die (auch vom mir) befürchteten 100te Volt. Wird der wohl was intern haben, was ein ansteigen der Spannung verhindert. Wird man also, genau wie bei den CurrentMode-Controllern UC3843(?) mit einem kleinen RC-Glied hintern Shunt da ganz gut bedient sein. Also auch für mich Ein PC-Lüfter ist kein Spielzeug-Bürsten-Motor.
Axel R. schrieb: > in der Mittagspause mal schnell zusammengelötet: Was denn? > am 1R > Auch beim Abschalten passiert (selbst ohne Freilaufdiode) nix. Ist eigentlich lopgisch: der Shunt ist dann ja "aus dem Rennen" und hat nichts mit dem Freilaufkreis zu tun. Äxl schrieb: > Hier noch n paar Bilder Nette Screenshotfunktion hat dein Oszi, was man auf dem Bild so sieht... BTW: Seid ihr Zwei ein und derselbe? Dann bitte fürderhin die Nutzungsbedingungen beachten und darin besonders den Passus mit "nur 1 Nutzername pro Thread".
:
Bearbeitet durch Moderator
Achja herrje: ich hab das schnell mitm Handy "abfilmen" wollen. Sorry. Ich schau mal, ob hier irgendwo n USB-Stick rumgeistert. Das "MOV" vom Iphone lässt sich eh nicht abspielen... Ich gelobe Besserung. Wollte keine Verwirrung stiften
Jetzt nochmal ordentlich PWM bei vier Stellungen 20,50,67 und 90% Ein anders skaliertes Bild bei 67%, wo man die harten Spikes sieht, die beim Einschalten des Lüfters entstehen. Signal kommt vom Funktionsgenerator mit 5V/0V. Mosfet ist IRLL2705. Messwiderstand ist ein 1R-1206 SMD. Lüfter ist ein 12V, 340mA 120er aus einem Netzteil. Betriebsspannung ist 12V. Hab noch einen 47µF über alles gelötet, weil die Leitungen so lang waren.
Axel R. schrieb: > Wollte keine Verwirrung stiften Dann wäre noch die Klärung von Lothars Frage nett: bist du identisch zum TO? Oder sind Gustav Gruenefelden (Gast) und Axel R. (axlr) zwei unterschiedliche Personen? Daran anschließend würde sich dann natürlich die Frage, ob deine Schaltung der von Gustav entspricht oder wo die Unterchiede liegen. Offenbar entspricht sie nicht vollständig der weiter oben gezeigten Schaltung von Gustav, da zumindest die Freilaufdiode fehlt. Das macht einen entscheidenen Unterschied und ein Betrieb des Lüftermotors ohne Freilaufdiode ist in den allermeisten Fällen nicht sinnvoll. Axel R. schrieb: > Kein Ansteigen der > Spannung auf die (auch vom mir) befürchteten 100te Volt. Dann miss mal am Drain des nFET, nicht am Shunt. Dort muss die Spannung ohne Freilaufdiode stark ansteigen (bis zum Durchbruch des FET). Am Shunt siehst du davon nichts, der FET hat das Problem der Überspannung. Axel R. schrieb: > wo man die harten Spikes sieht, die > beim Einschalten des Lüfters entstehen. beim schnellen Einschalten des FETs fließt (kapazitiv) ein Strompuls übers Gate nach Source - das siehst du als "Spike".
Ich bin äxl. Oder Axel R. Ich bin wohl mitm Telefon garnicht angemeldet, als ordentliches Gründungsmitglied. Hihi. Bin seit 2004 oderso dabei. Hatte mich, des oft rauchen Tons wegen, dann mal komplett abgemeldet. Bin aber wieder dabei. Nur mitm Handy hatte ich jetzt keine Lust, mich laufend wieder neu einzuloggen. Dass der Name leicht anders ist, fiel mir garnicht auf. Ich hab die Schaltung von oben einfach zusammengelötet. Ohne Freilaufdiode. Dachte mir "Schaum wa mal". Ich hab am Drain gemessen. Für mich sieht das auch aus, wie'n Step-up. Aber null Überspannung am Drain. Für ne Gate-Aufladung ist mir der Spike zu breit. Kann aber gut sein. Der TO soll also seinen Leiterzug zum ADC aufkratzen und dort n Kiloohm einlösen. Parallel zum ADC-Pin nach GND dann noch nen keramischen 1uF und gut. Freilaufdiode trotzdem einbauen. Nicht dass der Lüfter selbst schaden leidet. Kann gut sein, dass der, den ich hier hatte, sowas Wien überspannungs oder verpolschutz verbaut hatte. Aber so ne 1A Dioee hat man ja. 47 - 100uF parallel zu allem kann ich empfehlen.
Beitrag #6549368 wurde von einem Moderator gelöscht.
Nachtrag (Hab allerdings den Eindruck, dass es eh niemanden mehr interessiert. Ham wa hier oft. Aber nicht schlimm...) Man erkennt die eingangs oben genannten kommutierungen sehr gut im Stromverlauf und könnte daraus nebenbei die Drehzahl bestimmen...