Forum: Mikrocontroller und Digitale Elektronik DC Getriebemotor, Strom messen mittels Shunt, Spannung Glätten?


von Michael G. (hidden)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich arbeite gerade an einem kleinen Projekt, bei dem ich einen Schieber 
mit einem DC-Getriebemotor und einer kleinen Seilrolle auf und ab 
bewege.
Der 12V Motor wird über ein L298N Modul und einem Arduino Nano 
betrieben.
Das funktioniert soweit auch einwandfrei.
Zudem messe ich den Strom über einen Shunt-Widerstand um bei einer 
Blockade des Motors abschalten zu können und um den Tiefpunkt des 
Schiebers zu ermitteln. (Wenn der Schieber an der tiefsten Stelle ist, 
wickelt sich die Seilrolle andersrum wieder auf und der Strom steigt an, 
da der Schieber wieder angehoben wird)
Ich habe einen 0,1Ω Shunt (Low-Side). Im Leerlauf braucht der Motor ca. 
65mA (gemessen mit Multimeter). Somit habe ich ca. 0,0065V 
Spannungsabfall. Diesen Verstärke ich mit einem LM358N 
Operationsverstärker um den Faktor 48. Macht ca. 0,312V die ich mit dem 
Analogeingang des Arduinos messe.

Und nun zu meinem Problem:
Wenn ich die einzelnen Analogwerte des Leerlaufenden Motors in den 
Motorstrom umrechne, schwankt dieser sehr stark. Von ca. 10-130mA. Was 
aber im mittel meine Erwarteten 65mA sind.
Ich habe dann mal mein billig Oszilloskop ausgepackt und die Spannung 
direkt am Shunt beobachtet. Siehe die beiden angehängten Bilder 
(Rechtslauf, Linkslauf. Die Spannung in den Bildern wird falsch 
angezeigt. Die Division ist eigentlich 10mV und die Schwingung ist nur 
im positiven Bereich.) Wie man sieht schwingt die Spannung zwischen 1mV 
und 13mV was umgerechnet wieder die ca. 10-130mA sind.
Woher kommt diese Schwingung? Von den Kohlen des Motors? Wie kann ich 
diese am besten Hardwareseitig glätten?
Wenn ich einen Elko vom Ausgang des Operationsverstärkers zur Masse lege 
bekomme ich eine einigermaßen Glatte Spannung, die aber umgerechnet eher 
den 120mA entspricht. Also den Max Werten der Schwingung und nicht dem 
Mittelwert.
Hat jemand eine Idee?

Mfg Michael

von Jim M. (turboj)


Lesenswert?

Michael G. schrieb:
> Wenn ich einen Elko vom Ausgang des Operationsverstärkers zur Masse lege

... kommt nix vernünftiges raus. Filtern würde ich am Eingang.

Ansonsten: Schaltplan.

von Michael G. (hidden)


Angehängte Dateien:

Lesenswert?

Wenn ich vor dem Operationsverstärker einen Elko hänge ändert sich 
nichts. Aber vielleicht sind die Elkos die ich hier habe auch nicht 
dafür geeignet. Schlieslich fallen am Shunt ja nur wenige Millivolt ab. 
Kann ich diese Glätten? Wenn ja wie?
Hier ist auch noch mein Schaltplan. Viel ist aber nocht nicht drauf.

von Egon D. (Gast)


Lesenswert?

Michael G. schrieb:

> Wenn ich vor dem Operationsverstärker einen Elko
> hänge ändert sich nichts.

Wie ein RC-Tiefpass aussieht, weisst Du?!

Du solltest schon auch den vorgesehenen Widerstand
benutzen. Macht das Leben leichter.

von Wolfgang (Gast)


Lesenswert?

Michael G. schrieb:
> Wenn ich einen Elko vom Ausgang des Operationsverstärkers zur Masse lege
> bekomme ich eine einigermaßen Glatte Spannung, die aber umgerechnet eher
> den 120mA entspricht.

Der arme OP. Sei dankbar, das der Kondensator den nicht zu Schwingen 
bringt.
Um einen Tiefpass mit einem OP aufzubauen, packst du den Kondensator 
besser in die Gegenkopplung, i.e. parallel zu R3. Und warum machst du 
die Widerstände so klein?

von Falk B. (falk)


Lesenswert?

Michael G. schrieb:

> Ich habe einen 0,1Ω Shunt (Low-Side). Im Leerlauf braucht der Motor ca.
> 65mA (gemessen mit Multimeter). Somit habe ich ca. 0,0065V

Das nennt man 6,5mV und das ist schon recht wenig.

> Spannungsabfall. Diesen Verstärke ich mit einem LM358N
> Operationsverstärker um den Faktor 48. Macht ca. 0,312V die ich mit dem
> Analogeingang des Arduinos messe.

Naja, da kommen auch noch locker 2-3mV Offset vom LM359 dazu, die dann 
auch netterweise um Faktor 48 verstärkt werden. D.h. dein Nutzsignal 
liegt in der Größenordnung der Offsetspannung. Das ist nicht sinnvoll. 
Bei den kleinen Strömen kann man locker auf 1 Ohm Shunt gehen. 65mV sind 
gar nix.

> Wenn ich die einzelnen Analogwerte des Leerlaufenden Motors in den
> Motorstrom umrechne, schwankt dieser sehr stark. Von ca. 10-130mA. Was
> aber im mittel meine Erwarteten 65mA sind.

Logisch, der Motor hat einen Kommutator.

> Ich habe dann mal mein billig Oszilloskop ausgepackt und die Spannung
> direkt am Shunt beobachtet.

Naja, das ist mehr Raten als messen, erst recht bei DEN kleinen 
Spannungen!

> Woher kommt diese Schwingung? Von den Kohlen des Motors?

Vom Kommutator. Die Kohleschleifer sind nur ein Teil davon.

> Wie kann ich
> diese am besten Hardwareseitig glätten?

Mit einem RC-Filter hinter deinem OPV.

> Wenn ich einen Elko vom Ausgang des Operationsverstärkers zur Masse lege
> bekomme ich eine einigermaßen Glatte Spannung,

Das macht man nicht! Man schließt keine Kapazitäten direkt an einen OPV 
an, denn dadurch wird er instabil! Man braucht immer einen 
Längswiderstand, darum ja auch RC-Filter.

von Wolfgang (Gast)


Lesenswert?

Falk B. schrieb:
> Mit einem RC-Filter hinter deinem OPV.

Nun hat man da schon einen OPV - warum soll das Tiefpassfilter erst 
dahinter? :-(

Mit einem C in der Gegenkopplung bekommt man insgesamt einen TP und 
verliert nicht die niedrige Ausgangsimpedanz.
Selbst einen aktiven TP 2.Ordnung bekommt man quasi ohne Mehrkosten.

p.s. Es gibt bezahlbare OPs mit kleinerer Offsetspannung

von Der Andere (Gast)


Lesenswert?

Falk B. schrieb:
> Mit einem RC-Filter hinter deinem OPV.

Warum hinter und nicht vor dem OP?

Die Signalquelle (Shunt) ist niederohmig.

von Michael G. (hidden)


Angehängte Dateien:

Lesenswert?

Vielen Dank für die vielen Antworten. Ich habe nun einen 10µF 
Kondensator parallel zur Gegenkopplung geschalten und es funktioniert 
sehr gut.
(Siehe Bild ArduinoAnalogIn. Dort habe ich im Betrieb den Kondensator 
mal ausgesteckt und wieder eingesteckt)
Ich verstehe zwar noch nicht ganz wie es funktionier, aber ich freu mich 
natürlich dass es funktioniert :D
Die kleine Restwelligkeit habe ich Softwareseitig noch ein bisschen 
geglättet, indem ich immer den Durchschnitt der letzten 50 Messungen 
berechne.
Damit kann ich nun schöne Stromverläufe aufzeichnen. (Siehe Bild)
Damit kann ich schonmal sehr gut weiterarbeiten.

Egon D. schrieb:
> Wie ein RC-Tiefpass aussieht, weisst Du?!

Ich weiß wie er aussieht aber nicht wie man ihn anwendet oder berechnet.


Wolfgang schrieb:
> Und warum machst du
> die Widerstände so klein?

Meinst du die 1k und 47k des OP? Ist es nicht egal solange das 
Verhältnis stimmt? Wenn nein wie groß sollten diese denn sein?


Wolfgang schrieb:
> p.s. Es gibt bezahlbare OPs mit kleinerer Offsetspannung

So genau muss es bei diesem Projekt garnicht sein. Hatte den LM358N 
zufällig hier, deshalb habe ich diesen verwendet.

von Falk B. (falk)


Lesenswert?

Michael G. schrieb:

> Kondensator parallel zur Gegenkopplung geschalten und es funktioniert
> sehr gut.

Wo denn GENAU? Parallel zu R3 oder R4? Richtig ist R3.

10uF sind aber verdammt viel, das macht zusammen mit R3 ca. 470ms 
Zeitkonstante. Damit wird deine Strommessung auch wieder ziemlich 
langsam. Ich würde mal eher mit 100nF ins Rennen gehen.

>> Und warum machst du
>> die Widerstände so klein?
>
> Meinst du die 1k und 47k des OP? Ist es nicht egal solange das
> Verhältnis stimmt? Wenn nein wie groß sollten diese denn sein?

47k und 1k sind voll OK, das macht "wahnsinnige" 100uA Belastung des 
OPVs bei 5V Ausgangsspannung.

von Michael G. (hidden)


Angehängte Dateien:

Lesenswert?

Falk B. schrieb:
> Wo denn GENAU? Parallel zu R3 oder R4? Richtig ist R3.

Ja R3. Habe auch den ergänzten Schaltplan angehängt.

Falk B. schrieb:
> 10uF sind aber verdammt viel

Ja stimmt. Habe ihn mal durch einen 100nF Folienkondensator ausgetauscht 
und das Ergebnis ist auf jeden Fall besser. (Viel direkter siehe Bild. 
Erster Ausschlag ist nur: Anlauf, Leerlauf und Bremse)

von Falk B. (falk)


Lesenswert?

Michael G. schrieb:

> Ja stimmt. Habe ihn mal durch einen 100nF Folienkondensator ausgetauscht

Da reicht ein 08/15 Keramikkondensator, der ist kleiner und billiger.

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.