|
Rechts
im Schaltbild ist die Steuerschaltung, links sind die Leistungsstufen.
Die Leistungtransistoren sollten aus einem eigenen Netzteil
betrieben werden, hieraus kann
eventuell die Sensorbox über ein Entstörfilter gespeist
werden, hieraus wiederum die 5 Volt für die Motorsteuerschaltung
entnommen werden.
Die Treiberschaltung links auf der Zeichnung muss 4 mal identisch
aufgebaut werden. Statt des NOR Gatters 74HC02 können alle
anderen invertierenden Bausteine der Familie 74HC.. verwendet
werden. Die Endtransistoren BD649 sollten jeweils auf einen
Kühlkörper mit einem Wärmewiderstand von etwa
15 bis 25 K/W gesetzt werden. Sie müssen unbedingt gegen
Masse isoliert montiert werden, da die Metallfahnen mit den
Kollektoren verbunden sind.
An den
Transistoren fällt bei Stromfluss etwa eine Spannung von
1 Volt ab. Zieht z.B. eine Wicklung des Motors einen Strom von
1 Ampere, so muss der Kühlkörper eine Leistung von
1 Volt mal 1 Amp = 1 Watt ableiten. Bei einem Wärmewiderstand
von z.B. 20 k/W wird er sich dabei um ca. 20 Grad gegenüber
der Umgebung erwärmen. Daraus folgt, dass mit dieser Schaltung
/ diesem Kühlkörper ein Motor mit einem Spulenstrom
von etwa 1,5 bis 2 Ampere betrieben werden kann. Ohne Kühlkšrper
darf der Spulenstrom ca. max. 0,4 Ampere betragen.
Als
Steuerinterface wird das IC "UCN 5804B" des Herstellers Allegro
Microsystems verwendet (Bezugsquelle RS Components, Best.
Nr.653-531). Prinzipiell ist das IC für den direkten Anschluss
eines Schrittmotors geeignet. Dafür muss aber ein spezieller
Kühlkörper gefertigt werden, auch dann ist der Betrieb
nicht ganz unkritisch. Daher wird hier eine aufwendigere, aber
einfacher und robuster reproduzierbare Treiber- Schaltung vorgestellt.
Für den direkten Anschluss des Motors wird auf das Datenblatt
von Allegro verwiesen.
Alle
Eingangsleitungen werden mit 3,3 Kiloohm Widerständen an
+5Volt gezogen. Diese Leitungen werden mit den 5 digitalen I/O
der Sensorbox verbunden. Wichtig ist, dass die Leitung "Step
Input" mit dem digital I/O # 0 verbunden wird, der als Impulsgenerator
konfigurierbar ist. Der Anschluss der anderen Leitungen ist
beliebig, im Musterexemplar wurde folgender Anschluss gewählt
(auf den sich ggf. folgende Programmiertips beziehen werden):
- dig
I/O # 0 = Step Input
- dig
I/O # 1 = Half Step
- dig
I/O # 2 = One-Phase
- dig
I/O # 3 = Direction
- dig
I/O # 4 = Enable Output
Sind zusätzliche Aufgaben für die digitalen I/O Leitungen
vorgesehen, so reicht es aus, nur "Step Input" und "Direction"
anzuschliessen. Die Leitungen "Half Step" und "One-Phase" kann
man ohne Probleme beide mit Masse verbinden, dann läuft der
Motor im "Full Step" Modus - auch als "Two Phase" Modus bekannt
- was allgemein der gebräuchlichste ist.
Zu bedenken ist, dass der Motor auch im Stillstand vollen Strom
zieht. Wird bei der Beispielschaltung der Eingang "Output Enable"
auf High-Pegel geschaltet, schaltet das Steuer-IC den Strom durch
alle Wicklungen ab. Bei anderen Schrittmotorschaltungen ist ggf.
ein Relais zum Abschalten der Stromversorgung vorzusehen.
Folgende
Programmierhinweise:
Beim Einschalten der Sensorbox liegen normalerweise
alle digitalen I/O auf High- Pegel, d.h. die Motorsteuerung
ist abgeschaltet. Als erster Schritt sollten alle I/O- Leitungen
auf Low geschaltet werden:
$Bz $0E $00.
Dann wird
der Frequenzgenerator gestartet, zuerst wird die Gesamtperiode
eingestellt. 30 Millisekunden sind ein wohl für alle Motoren
brauchbarer erster Anfangswert:
$Bz $50 $20
Schliesslich
wird der Motor mit der kürzest möglichen High- Phase
gestartet:
$Bz $59 $00
Drehzahländerungen
werden durchgeführt durch Variation der Gesamtperiode.
Die Drehrichtung (bei Full Step Mode und obiger Anschlussreihenfolge)
wird folgendermassen umgedreht:
$Bz $0E $48 und zurück zur Gegenrichtung $Bz $0E $40
Das Bit
6 im zweiten Datenbyte wird gesetzt, damit durch den auf die
digitalen I/O wirkenden Befehl nicht der Frequenzgenerator abgeschaltet
wird. Für Präzisionsanwendungen sollte man zur Richtungsumkehr
den Motor stoppen, die Stepimpuls- Leitung auf LOW setzen und
erst dann die Richtung ändern.
Ein Vorteil
von Schrittmotoren ist, dass sie auch einzelne Schritte ausführen
und somit feinfühlige Positionierungen ausführen können.
Dann wird die Step-Leitung nicht durch den Frequenzgenerator
angesteuert, sondern durch einzelne, vom Master-Rechner kontrollierte
Impulse auf dieser Leitung. Grundstellung der Step-Leitung
ist immer Low!. Zuerst wird die Richtungs- Leitung eingestellt,
dann wird die Step-Leitung auf High und sofort wieder auf Low
gebracht. Da die digitalen Ausgänge bei der Sensorbox nur
kollektiv geschaltet werden können, hält man am besten
den Zustand im Master- Rechner in einer Variablen V und schreibt
ihn Schritt für Schritt fort:
Step-Leitung
auf High: V or $01 senden:
$Bz $0E V
Step-Leitung auf Low: V and $FE senden:
$Bz $0E V
Wenn
man keine volle Rotation ausführen muss, sondern Hebel
o.ä. bewegen will, sollte man prüfen, ob ein Servo-
Motor aus dem Bereich der Modellfernsteuerung nicht die
bessere Lösung ist. Vor allem bei batteriebetriebenen Anwendungen
(Mini- Roboter) brauchen Schrittmotoren viel zu viel Strom.
Obwohl
der Motor bei jedem Steuerimpuls um einen konstanten Winkel
weiterdreht, sollte man sich in der Praxis nicht darauf verlassen,
dass so mehrere Motoren über einen längeren Zeitraum
synchron gehalten werden können oder dass eine vorherige
Ausgangsposition durch Rückwärtslauf um die gleiche
Impulszahl exakt wieder eingestellt wird. Für Präzisionsanwendungen
sollte die Motorposition durch einen Winkelencoder zusätzlich
kontrolliert werden. Wenn der Motor schnelle Rotationen ausführen
soll, sollte für "unbemannte" Installationen auf jeden
Fall ein Rotationssensor vorhanden sein, der beim "Hängenbleiben"
des Motors einen Neustart auslösen kann.
Zu
beachten ist, dass der Motor lastabhängig nur in einem
bestimmten Drehzahlbereich startet, dass bestimmte Maximalbeschleunigungen
und Maximaldrehzahlen eingehalten werden müssen (siehe
jeweils Datenblatt des Motors). Wenn der Motor bei zu hoher
Drehzahl einmal aus dem Takt ist, bleibt er stehen und brummt.
Dann muss er - je nach Belastung - mit niedriger Drehzahl neu
hochbeschleunigt werden.
Schliesslich
können lastabhängig (vor allem bei ungünstig
angekoppelten Lasten) bei gewissen (niedrigen) Drehzahlen Resonanzen
des aus Motor und Last bestehenden "Drehpendels" eintreten.
Dann kann der Motor sogar entgegen der vorgegebenen Drehrichtung
laufen. Diese Resonanzen lassen sich mindern, wenn die Kopplung
zur Last einen gewissen Totbereich hat, z.B. durch einen nicht
völlig strammen Zahnriemen oder eine Kettenübertragung.
Dämpfung der Schwingung durch Reibung nützt wenig
und bringt Nachteile bei hohen Drehzahlen.


* Informationsstand
Okt '99. Alle Angaben nach bestem Wissen.
* Der Autor übernimmt keine Haftung für Richtigkeit
der Angaben und deren Eignung für einen bestimmten Zweck.
* Im Text zitierte Warenzeichen und Produktnamen sind Eigentum
ihrer Eigentümer.
|