Go Down

Topic: einfache DC-Motorsteuerung (Read 25954 times) previous topic - next topic

Megaionstorm

Vielleicht sollte ich das mit dem parallelschalten mal mit einem L293B ausprobieren. Der kostet nur 1/6 des L6205.
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Korman

#16
Oct 29, 2010, 08:41 pm Last Edit: Oct 29, 2010, 08:42 pm by Korman Reason: 1
1200 rpm mit 6 Impulsen pro Umdrehung gibt etwa einen Impuls alle 8 ms maximal. Das klingt nicht so schlimm.

Ich würde die Impulsdauer mit einer simplen Interruptfunktion messen, die bei jedem Puls an Pin 2 oder 3 ausgelöst wird. In loop() hast du dann immer wie von magischer Hand die aktuelle Impulsdauer und du kannst gemütlich deinen Motor regeln. Bei der Interruptfunktion muß man nur auf ein paar Details achten, es ist aber nicht so kompliziert.

Korman

pet

interrupts unterbrechen jedoch die applikation für die zähldauer.

würde ein counter ++  der die pulse zählt und ein setzen des timestamps mit micros() oder millis() auch gehen ? oder ist das zu ungenau ?

im prinzip von example
currentTime = millis();
...
if (millis()-currentTime = 50 { ....

pet



uwefed

Ja Pet, Du hast Recht, hab die erste Antriebsrolle Rolle vergessen. hab lange keinen 16mm Projektor von nahem mehr gesehen.

Die Ausgänge des L293B kannst Du nicht paralell schalten.

Ich verstehe noch nicht wieso Du den Motor in beide Richtungen drehen lassen willst. Der Film läuft nur in eine Richtung.
Um einen Motor in eine Richtung laufen zu lassen genügt ein Transistor der zwischen Minuspol des Motors und Masse geschaltet ist.  zB eine MOSFET IRF540.

Viele grüße Uwe

Korman

Naja, du kannst entweder Impulse zählen oder die Dauer der Impulse messen. Bei schnellen Impulsen ist zählen besser, bei langsamen messen. Mit maximal 120 Impulse pro Sekunde bist du schon im Bereich langsame Impulse, da dauert zählen bald zu lange bis du eine genaue Drehgeschwindigkeit bekommst. Messen ist da besser.

Wegen der Interrupts mußt du dir keine Sorgen machen, deine Interruptroutine belastet das System etwa genau so wenig wie die Aktualisierung von millis() wenn sie richtig geschrieben ist. Du bist auch sonst im sicheren Bereich, da es weder bei deiner Messung auf 8µs nicht ankommen sollte (das wäre ein maximaler Fehler von 0.1%) noch die Frequenz hoch genug ist damit Interrupts verloren gehen.

Korman

pet

@uwefed
ich werde auch keine 293er 'version' verwenden, da es dafür ja den L6205 gibt.
der L6205 hat schon die schutzdionden integriert und eben alles was es braucht um ein motor sauber mit PWM und DIR zu steuern.

und ja, ein projektor muss man ab und zu (leider) auch rückwerts laufen lassen können, (stau, filmriss usw) rückwerts braucht es aber natürlich keine exakte regelung.



@Korman
ok, das leuchtet ein.
ich werde mich also auf den interrupt konzentrieren und einen kleinen test aufbauen.
werd mich hier nochmals kurz melden, wenns klappt  :)

besten dank für die all die hinweise

pet






Megaionstorm

Hat der L6205 vielleicht einen noch kräftigeren Bruder ?
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Korman

#22
Oct 29, 2010, 09:30 pm Last Edit: Oct 29, 2010, 09:34 pm by Korman Reason: 1
Quote
ich werde mich also auf den interrupt konzentrieren und einen kleinen test aufbauen.


Besser fängst mit der Motorsteuerung an, damit du die Temporegelung in den Griff bekommst (wie schnell und langsam soll es werden, kannst du beliebig beschleunigen, ...). Für die erste Version würde ich ein Potentiometer oder zwei Tasten zum Regeln des tempos verwenden. Die Interruptfunktion ist nachher nicht so ein Thema, wenn die Sache mit dem Motor geklärt ist.

Korman

pet

grosse bruder von L6205 heissen: vnh3sp   ;)
http://www.rn-wissen.de/index.php/Getriebemotoren_Ansteuerung

pet


pet

Quote
Besser fängst mit der Motorsteuerung an, damit du die Temporegelung in den Griff bekommst (wie schnell und langsam soll es werden, kannst du beliebig beschleunigen, ...). Für die erste Version würde ich ein Potentiometer oder zwei Tasten zum Regeln des tempos verwenden. Die Interruptfunktion ist nachher nicht so ein Thema, wenn die Sache mit dem Motor geklärt ist.


werd ich genau so machen
thanks

pet

Megaionstorm

#25
Oct 29, 2010, 09:52 pm Last Edit: Oct 29, 2010, 10:00 pm by Megaionstorm Reason: 1
Der VNH2SP30 schaft 30A !

http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=108
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Go Up