In verschiedenen Fachbüchern, Fachzeitschriften sowie auf Internetseiten ist der grundsätzliche Aufbau eines Schrittmotors dargestellt, und seine Wirkungsweise wird an einem Modell mit zwei Wicklungen auf U-förmigen Eisenkernen, einer Kompassscheibe oder -nadel als „Läufer" und Kreuzschaltern bzw. Wechselschaltern beschrieben. Diese sind zu betätigen, damit sich der „Läufer" um einen bestimmten Winkel, den Schrittwinkel dreht. Ich ließ mich von den oben erwähnten Ausführungen und Schaltplänen anregen und baute mir bereits im vergangenen Jahr selbst ein solches Modell, das im folgenden Bild dargestellt ist. Damit wollte ich nun experimentieren, um die Erfahrungen und Ergebnisse für die Schrittmotorsteuerung mit dem Attiny13 nutzen zu können.
Die beiden als Kreuzschalter dienenden Kippschalter besitzen anders als diejenigen in den oben erwähnten Darstellungen auch eine AUS-Stellung in der Mitte, um auch jeweils nur eine Wicklung ein- und ausschalten zu können. Sie sind aus zwei gleichen Teilwicklungen zusammengesetzt, deren Verbindungspunkt mit dem Anschluss M1 oben bzw. M2 unten verbunden ist.
In
der dargestellten Position des unteren der beiden Kreuzschalter fließt
der Strom nur in einer Wicklung, und der „Läufer" stellt sich
entsprechend ihrem Magnetfeld ein, während er sich bei der oberen
Position des Schalters in die entgegengesetzte Richtung dreht. Wird
ausschließlich der obere der beiden Kreuzschalter betätigt, wird die
Stellung der Kompassnadel nur durch das Magnetfeld der mit ihm
verbundenen Wicklung beeinflusst. Bei Verwendung beider Schalter
überlagern sich die Magnetfelder beider Wicklungen, und der „Läufer"
nimmt je nach Stromrichtung in ihnen eine der vier möglichen diagonalen
Positionen ein. Die Schalter sorgen dafür, dass in den Wicklungen wie
bei einem bipolaren Schrittmotor die Richtung des in ihnen fließenden
Stromes und damit die Polarität der Magnetfelder geändert wird.
Abwechselndes Betätigen führt zu einer schrittweisen Drehbewegung der
Kompassnadel des Motormodells.
Die gleiche Stromrichtung und
damit die gleiche Richtung des Magnetfeldes wie in den Bildern oben
ergibt sich, wenn man den Anschluss 1 des Schalters anders als
dargestellt statt mit dem Pluspol nun mit dem Minuspol der
Spannungsquelle verbindet, während Anschluss 2 jetzt frei bleibt. Der
Pluspol wird an den Verbindungspunkt M2 der beiden senkrecht
angeordneten Teilwicklungen angeschlossen.
Der
Kreuzschalter funktioniert nun wie ein Wechselschalter, der es möglich
macht, die obere oder die untere der beiden Teilwicklungen
einzuschalten, um eine Drehung der Kompassnadel in die im Bild
dargestellte bzw. die dazu um 180° versetzte Position zu bewirken.
Werden
beide Schalter als Wechselschalter angeschlossen und dann abwechselnd
betätigt, wird der „Läufer" des Schrittmotormodells durch Einschalten
der Teilwicklungen wie bei einem unipolaren Schrittmotor zu einer
schrittweisen Drehung veranlasst.
Zum Betrieb des oben
dargestellten Modells benötigte ich als „elektronischen Ersatz" für die
beiden Kreuzschalter also ein IC, das bei Ansteuerung durch einen
ATtiny13 eine Stromrichtungsänderung in den an seinen Ausgängen
angeschlossenen Wicklungen bewirkt.
Der Baustein L293D ist für diese Anforderungen geeignet, wie ich aus seinen Datenblättern herausfand. Die Pins des Mikrocontrollers musste ich nach dem Schaltplan mit diesem IC verbinden, an dessen Ausgänge die beiden Wicklungen des Schrittmotormodells (A ..D) angeschlossen wurden. Sollen wie bei einem unipolaren Schrittmotor jeweils Teilwicklungen eingeschaltet werden können, eignet sich als „elektronischer Ersatz" der Baustein ULN2803, den ich dem Schaltpan entsprechend an den Attiny13 anschloss. M1, M2 sowie Anschluss 10 musste ich in diesem Fall mit dem Pluspol der Spannungsquelle mit hier z. B. 12 V Ausgangsspannung verbinden, während die Enden der Wicklungen an die Ausgänge (A .. D) des Ics angeschlossen wurden.Der Baustein ULN2803 besitzt acht Eingänge und acht Ausgänge, die ich nur zur Hälfte benötigte, wie es dem Schaltplan zu entnehmen ist. Ich verwendete auf der Seite des Attiny13 die Portleitungen PB0, PB1, PB3 sowie PB4 zur Ansteuerung des L293D bzw. des ULN2803.
Am PC konnte ich mit der Software des Lernpakets
Mikrocontroller [1] Zahlenwerte eingeben und mir die dazu gehörenden
Positionen des „Läufers" des Motormodells jeweils skizzieren. Mit dem
Schrittmotormodell und der genannten Software fand ich heraus, dass für
eine vollständige Drehung der Kompassnadel nacheinander 1, 4, 2, 8, 1
usw. einzugeben ist, für den Fall, dass jeweils nur eine Wicklung
eingeschaltet ist, bzw. 5, 6, 10, 9, 5 usw. für den gleichzeitigen
Betrieb zweier Wicklungen. Der „Läufer" des Motormodells drehte sich in
beiden Fällen gegenüber der vorherigen Position jeweils um einen
Schrittwinkel von 90° weiter und um 45°, als ich nacheinander 1, 5, 4,
6, 2, 10, 8, 9, 1 usw. am PC eintippte und an den Attiny13 zur
Ansteuerung des L293D bzw. des ULN2803 übertrug. Für eine
Drehrichtungsänderung musste ich die oben genannten Zahlen jeweils
nacheinander in umgekehrter Reihenfolge eingeben, also z.B. für einen
Schrittwinkel von 45° 1,9,8,10,2,6,4,5,1 usw. Diese Ergebnisse
verwendete ich für die Gestaltung des BASCOM-AVR-Programms für den
Attiny13. Hier ist dazu ein Auszug aus dem Programmlisting: 'step_mot2.bas
Den ursprünglichen Aufbau des Schrittmotormodells musste ich um eine 16-polige IC-Fassung mit den für den Anschluss erforderlichen Verbindungsleitungen erweitern. Für die Schaltung auf dem kleinen Steckboard mit dem Attiny13 und dem IC L293D sowie für diejenige auf einem anderen mit dem Mikrocontroller und dem Baustein ULN2803 fertigte ich jeweils eine Adapterleitung an, um die Verbindung mit dem Schrittmotormodell möglichst schnell herstellen zu können. Im Bild wurde gerade der Zahlenwert 5 vom PC an den Mikrocontroller übertragen
Nachdem
diese Experimente mit einem Baustein L293D sowie einem IC ULN2803 und
dem Schrittmotormodell erfolgreich verlaufen waren, konnte ich auch
vorhandene richtige bipolare und unipolare Schrittmotoren anschließen
und über den Attiny13 aktivieren. In einigen Fällen musste ich wegen der
Motordaten die Betriebsspannung des L293D auf 5 V herabsetzen.
Im
folgenden Bild ist gerade ein bipolarer Schrittmotor an ein solches IC
angeschlossen. An die Ausgänge des Mikrocontrollers sind vier LEDs mit
einem Vorwiderstand von je 4,7 kOhm nach Masse angeschlossen, die dem
Bitmuster entsprechend leuchten. Die untere der vier Leuchtdioden ist
Bit 0 und die obere Bit 3 zugeordnet. Im Bild wurde gerade der Wert 9 an
den Attiny13 übertragen.
Wirkliche Schrittmotoren sind wesentlich aufwändiger aufgebaut als das oben dargestellte Motormodell, da sie z. B. bis zu 200 Schritte pro Umdrehung ausführen können. Das bisherige Programm genügte nun nicht mehr, da es zu umständlich war, für eine fortwährende Drehung des Läufers nacheinander die in den oben beschriebenen Experimenten ermittelten Zahlenwerte am PC einzutippen, also musste nun das BASCOM-AVR-Programm für den Attiny13 wesentlich erweitert werden. Dies ist dazu ein Auszug aus dem Programmlisting:
Download: Stepper.zip