Schrittmotor-Controller (Stepper)

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

von Benutzer:Yahp

Die im folgenden dargestellte Schaltung ist ein einfaches Controllersystem zur Ansteuerung von bis zu 32 unipolaren Schrittmotoren. Gedacht ist das System als Strahlschalter einer Laseranlage, doch mit geringem Aufwand kann die Software angepasst werden, um beliebige andere Aufgaben mit Schrittmotoren zu erledigen. Als Strahlschalter werden SANKYO-MSAF200A91 (C*nrad-Restposten) verwendet. Bei anderen 12 V Schrittmotoren ist natürlich der maximal zulässige Strom der Leistungstreiber (ULN2803) zu beachten.

Features

  • Betrieb von bis zu 32 Motoren mit maximal 2 kHz
  • Interruptsteuerung für gleichzeitige Ansteuerung aller Motoren
  • schnelle und störungssichere Kommunikation mit Steuerrechner über RS232
  • automatische Nullung der Spiegelarme bei Systemreset
  • Haltestromschaltung für stabile Armpositionen
  • Watchdogschaltung gegen Prozessorfehlfunktion

Hardware

  • ATmega8 mit internem RC-Takt 8 MHz
  • RS-232 zur Kommunikation mit einem Steuerrechner
  • Ansteuerung über einen parallelen Bus mit 3-zu-8 Adressdecodern (74*138)

Bekannte Probleme

  • derzeit sind keine Probleme bekannt :)
  • es ist die in der Dokumentation beschrieben Hardwareänderung am MAX232 zu beachten

Download des Projekts (Schaltpläne, PCB-Layouts, Sourcecode, Dokumentation)

Das komplette Projekt mit allen Schaltplänen, PCB-Layouts, Assembler-Sourcecodes und Dokumentation in einem Paket:

Lmn_steppercontroller.zip

Kontakt & Diskussion

Ich freue mich über jeden Kommentar. Also schreibt hier oder per Mail (irgendwo in dem Paket versteckt) Eure Kommentare und Anregungen. Wer hat sich's angeschaut, nachgebaut, teilweise verwendet oder einfach nur für großen Mist befunden?!

Noch einige Bemerkungen zur Schaltung. Wie beschrieben, wird der interne Oszillator des ATmega8 benutzt, obwohl per RS-232 mit einem PC kommuniziert wird. Es geht trotzdem... Man muss halt dazu sagen, dass die Funktion damit möglicherweise nur in einem eingeschränkten Temperaturbereich und bei 5 V Betriebsspannung gegeben ist. Da derzeit keine dynamische Anpassung der Taktfrequenz an die Datenrate der Schnittstelle implementiert ist, kann es zu Fehlübertragungen kommen, wenn der Oszi zu weit driftet. Es gibt auch keine speziellen Schaltkreise für die Stepper, keine Zaubereien mit spezieller Ansteuerung, nur der einfachstmögliche Weg per Schalttransistorarray.