Forum: Mikrocontroller und Digitale Elektronik Einfache Schrittmotor Ansteuerung (µC+Seriell)


von ambi (Gast)


Lesenswert?

Hallo,

hat vielleicht schon mal jemand so eine simple Ansteuerung gebaut (Mit 
einem AVR und L297/298)?
Ein Kanal (Motor) reicht völlig.

von johnny.m (Gast)


Lesenswert?

> hat vielleicht schon mal jemand so eine simple Ansteuerung gebaut (Mit
> einem AVR und L297/298)?
Jau, hab ich...

von johnny.m (Gast)


Lesenswert?

...Wo liegt das Problem?

von ambi (Gast)


Lesenswert?

Würde mich freuen wenn jemand auch einen Link dazu hätte. Die ganze 
Schrittmotor Geschichte ist mir neu, daher möchte ich jetzt (anhand von 
Beispielen) mir das ganze beibringen.

von jonny (Gast)


Lesenswert?

ja habe ich gerade neben mir leigen.

3mal  LM297/298 + AVR32 + RS232

So kann ich über ein selbstgeschriebenes Programm die 3 Motoren 
ansteuern. Dabei sendet das Programm auf dem PC immer die 4 
Einstellungen an den µC. Also Motor-Nr,Schritte,Richtung,Halb- 
Vollschritt

Dann wertet der µC das aus und steuert die Motoren so an.
Lässt sich aber beliebig abändern.

jonny

von ambi (Gast)


Lesenswert?

@jonny
Das ist genau das was ich suche.

Würdest du eventuell Sourcecode und Schaltplan veröffentlichen?

von jonny (Gast)


Lesenswert?

Also ich habe so angefangen:

1. Schrittmotorplatine zusammengelötet.
   Ich habe diese hier benutzt:
   http://www.roboternetz.de/wissen/images/0/02/Schaltungstep298.gif
   Viele Informationen:
   http://www.roboternetz.de/wissen/index.php/Schrittmotor

2. µC auf einem Board aufgebaut und die 4 Leitungen von der
   Schrittmotorplatine an den µC angeschlossen.
   Also: Clock,Enable,Dir,H/F
   Kannst natürlich auch noch Restet usw. benutzten brauchte ich aber 
nicht.

3. Einfacches C-Programm schreiben, dass immer den Clockpin auf High und
   wieder Low setzt.

   Ich habe dazu etwa sowas gemacht:
   Enabel -> high         // Muss gemacht werden
   H/F -> low             // gibt den Modus an
   Dir -> high            // gibt die richtung an
   Clock  -> high         // beginnt den Schritt
   2 ms warten
   Clock -> low
   2 ms warten
   <wieder oben anfangen> // Schleife xD

Also so habe ich angefangen. Jetzt kannst du auch einfach eine Funktion 
schrieben, die den Motor ansteuert und eine die die Daten der 
RS232-Verbindung auswertet und diese dann an die Schrittmotro-Funktion 
weiterleitet.

jonny

von jonny (Gast)


Lesenswert?

@ambi:

Schaltplan gibt es leider nicht (nur den von der 
Schrittmotoransteuerung), ahbe ich so im Kopf ausgedacht...

Soucecode kann ich dir geben, ist jedoch sehr eifach und rel. schlecht 
Programmiert, da es nur zum testen war. Bin gerade dabei eine richtige 
Version zu proggen.

Das PC-Programm habe ich in VB2005 .Net geschrieben. Wenn du mir sagt, 
was du genau mit dem Motor machen willst, kann ich dir eben eins 
schreiben.

jonny

von ambi (Gast)


Lesenswert?

Danke für diese sehr hilfreiche Antwort.

Die Firmware würde mich dann schon interessieren.
Die PC Software würde mich weniger interessieren (muss unter Linux 
laufen und da ist das mit .net immer sone Sache). Da würde mich 
höchstens interessieren wie man unter Windows nen COM Port ansteuert.

von jonny (Gast)


Lesenswert?

okay ich suche gleich mal eben die Codes zusammen.
unter windows kann man genz einfach ein Steuerelement benutzten. Dann 
kann man die Baudrate usw. einstellen und mit SerialPort1.Write daten 
übertragen.

von jonny (Gast)


Angehängte Dateien:

Lesenswert?

Kleine Info zu seriellen Ansteurung:

Motor-Nr.
[ENTER]
Stepps
[ENTER]
Dir
[ENTER]
H/HF
[ENTER]

Also wird jeder "Datenblock" mit [ENTER] abgeschlossen!

jonny

von jonny (Gast)


Lesenswert?

so bin jetzt erstmal weg.

An die bei denen sich bei dem Code die Nackenhaar streuben:
- Es wurde nur auf die schnelle zum Testen der Grundideen programmiert!
- Also bitte keine dummen und blöden Kommentare
- über Anregungen bin ich aber dankbar kann aber auf "wie schlecht"
  verzichten, Danke

von johnny.m (Gast)


Lesenswert?

Wo liegt jetzt eigentlich das Hauptproblem? Geht es Dir mehr um die 
Ansteuerung des Motors (bzw. des L297) über den Mikrocontroller oder 
eher um die Anbindung der seriellen Schnittstelle?

von ambi (Gast)


Lesenswert?

Ging mir um die Ansteuerung des Motors.
Aber ein vielendank für deine Hilfe. Der Motor Schnurrt schon wunderbar 
vor sich hin.
Arbeite zurzeit auch noch mit den delay Funktionen, das werde ich jetzt 
aber noch auf Timer umstricken. Dann wird nicht soviel CPU Zeit 
verschenkt.

von johnny.m (Gast)


Lesenswert?

> Aber ein vielendank für deine Hilfe.
Ich denke, Du meinst damit jonny ohne 'h'. Ich konnte mich heute mittag 
leider nicht mehr äußern, weil ich zu tun hatte...

von ambi (Gast)


Lesenswert?

Danke euch beiden für die Mühe ;)

von jonny (Gast)


Lesenswert?

kein thema, wenn du noch fragen wegen der ansteurung über den PC hast 
kannste das ja hier im Topic machen ich denke ich werde es nicht 
verpassen :)

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.