www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 Strom messen


Autor: Sebstian (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,


ich steuere mit meinem 149er einen l293d an und damit einen kleinen
Motor der je nach Belastung zwischen 90 und 200mA zieht. Ich möchte nun
den Strom messen. Dazu habe ich einen 0,13Ohm 3W Widerstand dazwischen
gelötet und greife an diesem die spannung ab und lege sie auf einen
AD-Eingang. Aus den Werten lässt sich dann ja der Strom berechnen. Vom
Prinzip her funktioniert das ganze auch schon, aber die ausgegebenen
Werte stimmen irgendwie noch nicht. Ich habe auch das Problem, dass
wennman den Motor belastet, der Strom hoch geht (gemessen von ca. 90
auf 140mA) aber die Anzeige auf dem Display ändert sich nur
unwesentlich.

Ich habe meinen Code mal angehängt. Wäre klasse, wenn da mal jemand
drüber schauen könnte, ob ich da irgendwo vielleicht einen Fehler im
Code oder generell einen Denkfehler drin habe.

Vielen Dank.

Grüße
Sebastian

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiss nicht ob du das schon mal gerechnet hast, aber der
Spannungsabfall an deinem Shunt schwankt bei deinem Beispiel zwischen
0,0117 und 0,0182 Volt. Welche Auflösung hat dein AD-Wandler?

Autor: SupaChris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher, dass der ADC schon fertig ist, wenn du den Wert aus dem
ADC12MEM0 holst? Ich würd da lieber das Flag abfragen, oder die ganze
Sache Interrupt-gesteuert machen. In den C-Demos ist ja genügend drin
dazu. Außerdem ist es bei einer Anzeige auf einem Display sinnvoll, den
Wert erst zu mitteln.

Autor: Sebstian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so, ich nehme nun erst einmal mehrere Werte und mittle darüber, bevor
ich den wert auf dem display ausgebe.

der adc ist schon fertig, wenn ich den wert raushole.

im moment habe ich bei gemessenen 93mA eine Anzeige von 163 auf dem
Display.

Ich denke, ich werde es einmal mit einem größeren Widerstand
versuchen.

Mal sehen, was ich noch so da habe.

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich weiß ja nicht wo du misst, aber kann es sein das du "nur" 3.3v -
spannungsabfall misst ?
dann kommen da natürlich nur minimale veränderungen bei raus (vor allem
bei dem mess-widerstand von 0.13 ohm).
vielleicht einen instrumenten-verstärker aufbauen (3 ops), oder einen
subtrahierer (1 op) der wirklich nur die spannungsdifferenz an deinem
shunt misst und dann verstärkt.
dann sollte auch der gelesene adc wert sich entsprechend dem strom
ändern ...

hoffe ich konnte dir helfen.

gruß
rene

Autor: Sebstian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich glaube ich werde mir mal etwas ausdenken, irgendeine schaltung, denn
so wie gedacht, funktioniert das nicht :(

mal sehen, was ich da noch so zusammenbastle.

Autor: Tony _s (tony_s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist das zufällig PWM beim Motor vorhanden?

Bin ich blind? Oder wo ist dann dieser Mittelwertbilder?

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe mal noch ein wenig rumexperimentiert. Eine Schaltung mit OP's 
habe ich noch nicht aufgebaut, weil ich keine mehr da hatte ;).

Ich habe aber nun einen 5,1 Ohm Widerstand (Damit ist der 
Spannungsabfall pro mA auch sschön groß) eingelötet und den 
Spannungsabfall an diesem bei laufendem Motor gemessen und den Strom. 
Das haut auch gut hin. Ich habe nur folgendes Problem. Ich nehme die 
Spannung direkt am Widerstand ab, links und rechts eine Klemme dran und 
abgelesen. Vor dem Motor habe ich dann ein Multimeter zur Strommessung 
eingebaut. Bei einem bestimmmten Strom habe ich auch den passenden 
Spannungsabfall am Widerstand. So weit so gut.

Nun möchte ich aber die Spannung am Widerstand abnehmen und auf einen 
AD-Eingang des MSP legen. Das Problem ist nur, dass ich da ja gegen 
Masse messe. Wenn ich eine Klemme des Multimeters an den WIderstand und 
eine an die Masse hänge und nicht auf die andere Seite des Widerstandes, 
messe ich mit dem Multimeter genau das, was am AD-Port anliegt, aber das 
ist ja falsch
Das war vermutlich von Anfang an das Problem, dass ich gegen Masse 
gemessen habe und nicht mit beiden Klemmen des Multimeters direkt am 
Widerstand.
Ich hoffe, ich habe das einigermaßen verständlich beschrieben.

Nun meine Frage, wie bekomme ich nun die Spannung, die an dem Widerstand 
abfällt (ca. 25mV/mA) an den MSp AD-Eingang? Muss ich da dann wohl doch 
noch eine zusätzliche Schaltung aufbauen?

Jemand eine Idee?

Wäre klasse.

Vielen Dank.

Sebastian

Autor: Jens P. (jmoney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du gegen Masse misst, hast du eben den Widerstand des low-side FET 
mit drin. addieren und fertig. Ansonsten brauchst du hast nen 
differentiellen ADC. Weiß nicht, ob der MSP sowas hat..

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was addieren? Das Problem ist ja auch, dass wenn ich gegen Masse messe, 
sich die gemessene Spannung bei sich änderndem Strom eigentlich so gut 
wie gar nicht ändert.
Oder steh ich auf der Leitung?

Autor: Jens P. (jmoney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja ich geh mal von einer Brücke aus, mit der der Motor angesteuert 
wird. An welcher Stelle ist denn der Widerstand? Zwischen Motor und 
Transistor, der gegen GND schaltet oder zwischen Motor und Transistor, 
der gegen V+ schaltet?
Im ersten Fall betrachtest du den Spannungsabfall über Widerstand und 
Transistor. Im zweiten Fall betrachtest du den Spannungsabfall über 
Widerstand, Motor und Transistor.

Im ersten Fall müsste sich mit dem 5Ohm-Widerstand schon was ändern. Im 
zweiten Fall natürlich nicht, denn du misst ja quasi das Komplement des 
Spannungsabfalls ober dem Transistor gegen V+ und der ist erstens sehr 
klein und zweitens verändert er sich fast gar nicht (bipolar) bis sehr 
wenig (FET) in diesen Größenordnungen.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vielen Dank. Das hatte ich alles gar nicht bedacht.

Gruß

Sebastian

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.