PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schrittmotor ansteuern



pchero
16.03.2008, 11:56
Hi

ich habe eine Frage und zwar bauen wir für ein Schulprojekt einen Roboter und zwar kommt es auf einiger Maßen genau Navigation an.

Dafür wollten wir 2 Schrittmotoren verwenden, die jeweils über einen mega angesprochen werden und über die Standard L293D und L298 mit Strom versorgt werden. Das Signal wird vom Hardware PWM erzeugt. Nun ist meine Frage kann ich die Hardware PWM iwie mitzählen, d.h. das ich weiß wie viele Schritte er gemacht hat. 2 Frage wäre ein PWM Signal ist ein Schritt für den Motor ? Und wenn desto mehr Signale ich hintereinander schicke desto Schneller dreht er ?

Auf die Kraft oder so bei dem Schrittmotor muss man nicht iwie achten. Er muss nur einen kleinen Roboter aus Plexiglas bewegen und die Motoren sind direckt an den Rädern. d.h. Man brauch kein großes haltemoment ?

mfg

Willa
16.03.2008, 14:36
Hi!
PWM ist Pulsweitenmodulation, die Frequenz ist immer gleich, aber eben die Pulsweite ist unterschiedlich. Ich kenne den L297 nicht, aber ich denke mal das Teil arbeitet mit einem Clock Eingang, von dessen FREQUENZ es abhängt wie schnell der Motor dreht. Mit PWM kann man also nur eine einzige Geschwindigkeit stellen. Du kannst aber einfach die Timer von nem mega16/32 benutzen um irgendeinen Port an und aus zu toggeln. Und die Frequenz der Timer kannst du ja wie du willst aussuchen. Außerdem kannst du ganz einfach die Schritte mitzählen indem du in den Timer-Interrupt eine Variable hochzählst.
So mache ich das und es funktioniert. Ich kann so mit Timer0 und mit Timer1 jeweils einen Schrittmotor steuern. Aber vielleicht gibts ja noch elegantere Möglichkeiten...
Viel Erfolg,
William

pchero
16.03.2008, 15:03
Jupp das meinte ich hab mich vill Falsch ausgedrückt. Kannst mir vill Zeigen wie ich in bascom nebenher noch eine Variable mit hochzählen lassen kann ?

Denn wie man so mit Timer usw usf die Motoren steuert weiß ich nur net das Mitzählen

mfg

Willa
16.03.2008, 16:08
Bei mir sieht das Clocksignal das so aus:


dim Stepcount as Word
...
Timer_irq0:
Timer0 = Vorgabe0
Toggle Portb.0
Incr Stepcount 'oder Stepcount=Stepcount+1
Return


Allerdings musst du Stepcount eigentlich noch durch 2 teilen damit du wirklich die Anzahl der Schritte erhälst.

Gruß,
William