www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DC Motorstrom messen


Autor: martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bon jour!

Habe mir für einen 12 Volt DC Motor mit einem LN298 und einem ATmega
eine Motoransteuerung gebaut. Funktioniert soweit ganz gut, nur möchte
ich jetzt eine Überlastfunktion für den Motor integrieren sprich ab
einer bestimmten Belastung soll der Motor abschalten!

Nun wäre ich dankbar über ein paar Lösungsvorschläge oder Tipps wie ich
dieses Problem am Besten Löse. Hätte mir gedacht über die ADC und den
Strom (der ja bei Belastung des Motors steigt).
Aber wie messe ich den Strom am Besten( Schaltung) bzw. wandle ihn in
eine Spannung für den ADC um!

Oder gibt es fertige IC's oder einen einfacheren Weg?

Danke im Voraus, Martin

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

eine schöne, saubere Lsg. ist die Messung mit einem LEM-Wandler.

Eine andere, billige Lösung hatte ich schon mal mit einem weiteren
Mosfet unter der Brücke nach GND gemacht. Dieser Mosfet ist dauerhaft
eingeschaltet, und über seinem RdsOn hast Du dann die dem Strom prop.
Spannung. Denke aber daran, dass in der Hochlaufphase des  Motors, je
nach angehängter Last, die Stomgrenze auch überschritten wird.
 Evtl. erst abschalten wenn die Stromgrenze eine gewisse zeit
überschritten wird.


guude aus hessen

thomas

Autor: Ratber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Martin


Du meintest LM298 ?
(Datenblatt
http://me118.stanford.edu/pictures/Win01Projects/T... )

Pin 1 und 15 sind schon vorgesehen für Motorstrommessung.

Einfach einen Messhunt mit einige milliohm dazwischen (Nach Masse) und
schon haste ne Spannung die zum Motorstrom proportional ist.

Mit einer einfachen RC-Schaltung kannste das Signal etwas verzögern und
damit den Anlaufstrom abfangen (Für Überstrom ist die Sicherung da).
Geht aber auch in Software.(Je nach Geschmack und Anforderung)

Der Atmega hat einen eingebauten Verstärker (Gain-Amp) der dir das
Signal für den ADC aufbereitet also kannstew dir den externen Amp
schenken (wer will kann natürlich extern Arbeiten.Ist wie oben
Geschmackssache oder je nach Anforderungen)

Der Rest ist Software die dann den LM298 über die Enableleitungen (En A
und B) abschaltet.

Messwiderstände gibt es bei jedem Elektronikverkauf.
Man kann sich auch selber einen machen.Ein stück Leitung und etwas
rechnerei sind alles was man dazu braucht.


Also ,dein Wunsch ist erfüllbar.
wie weit du das in Software machst oder den Controller nur als
Schaltzentrale nutzt mußt du selber wissen. (abhängig von freier
Rechenzeit,gewünschter Sicherheit usw.)

Autor: martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmals für die raschen Antworten.

Bei mir hat sich ein Schreibfehler eingeschlichen, meinte den L298N!
Aber du hast Recht, die beiden Ausgänge 1,15 sind für den Motorstrom!
LOL

Noch eine Frage zur Sicherheit! Am uC ist noch genug Rechenzeit
vorhanden, da ich keine PWM verwende und der uC nur zum Schalten über
eine Funkplatine verwendet wird!
Aber glaube dass ich die Einschaltzeit mit einer Zeitkonstante
überbrücken werde, so bin ich flexibler und spare mir Hardware! Wie
sieht es da von der sicherheitstechnischen Seite aus?

lg, Martin

Autor: Denis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
moin, habe mit "gleicher" konfiguration eine überlastabschaltung
realisiert (Shunt), das Problem an der Sache sind die auftretenden
Peaks bei Motoren, habe mittels Analogkomperator und Zählroutine dies
in den Griff bekommen.

Autor: martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hei Denis!

hast du noch irgendwelche Codesamples oder Schaltpläne?

Autor: Denis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beschaltung entsprechend Datenblatt des L298,
Code muss ich heute abend mal nachschauen.

Autor: Denis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Vergleichsspannung für den Komparator über Spannungsteiler und
Poti.

"Codeprinzip"
Interruptroutine
AnaCp:
rjmp Ueberlast


 Motorroutine
  LDI mp,0b00000011;    Enable Anacomp
  OUT ACSR,mp
  LDI mp,0b00001011
  OUT ACSR,mp

->Motor an
-> Motor aus,
  LDI mp,0b00000000  ;  Disable Anacomp
  OUT ACSR,mp



Überlastroutine
UEBERLAST:
  INC   Zaehler     ;erhöhe Zähler um eins
  CPI   Zaehler,$20  ;vergleicher mit ....
  BREQ   UEBERLAST2  ;verzweige wenn gleich
  reti

UEBERLAST2:
-> Überlastaktion

Autor: martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thx an alle!


glaub das bekommich hin :-)

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.