Martin's Bastelstube: Motoren + Motortreiber für XYZ-Tisch
Jeder Freiheitsgrad des XYZ-Tisches bekommt eine eigene Motorsteuerplatine.
Damit alle gängigen Arten von Motoren angesteuert werden können, habe ich
vier verschiedene Typen von Motorsteuerplatinen entworfen.
• Version 1 / Typ U =
|
Unipolarer Schrittmotor
|
|
|
mit ULN2803
treibt bis zu 1 A pro Motorstrang
|
• Version 2 / Typ S =
|
Bipolarer Schrittmotor oder Gleichstrommotor
|
|
|
mit L6205
treibt bis zu 2,8 A pro Motorstrang
|
• Version 3 / Typ P =
|
PWM-Ausgang
|
|
|
mit TIP122
treibt bis zu 5 A
|
• Version 4 / Typ B =
|
Bürstenloser Gleichstrommotor (BLDC)
|
|
|
dreiphasig mit L6234
treibt bis zu 4 A pro Motorstrang
|
|
|
|
|
|
Die Ansteuerung vom Controllerboard aus ist für alle Karten weitgehend gleich, so dass sie in jedem Steckplatz funktionieren sollen.
Falls sie besondere Behandlung erfordern, kann man dazu in einem I2C-EEPROM spezielle Datenstrukturen hinterlegen.
Diese werden dann vom Controller gelesen und ausgewertet.
Die EEPROMs müssen so adressiert werden, dass sie zum Motorsteckplatz passen, auf dem sie eingesetzt werden.
Leider waren nicht mehr genügend Pins auf den Steckplätzen frei, um diese Adressierung automatisch stattfinden
zu lassen.
|
Direkt neben den Adresspins der EEPROMs laufen Leiterbahnen der Betriebsspannung (+5V und 0V = GND). Die Verbindungen im
Layout sind auf der Unterseite geroutet, so dass man die existierenden Brücken notfalls leicht auftrennen und
stattdessen neue Lötbrücken setzen kann.
- EEPROM-Subadresse 0 = Motorsteuerplatine X
- EEPROM-Subadresse 1 = Motorsteuerplatine Y
- EEPROM-Subadresse 2 = Motorsteuerplatine Z
- EEPROM-Subadresse 3 = Motorsteuerplatine Q
- EEPROM-Subadresse 4 = Motor X
- EEPROM-Subadresse 5 = Motor Y
- EEPROM-Subadresse 6 = Motor Z
- EEPROM-Subadresse 7 = Motor / Verbraucher Q
|
|
|
|
Die Stecker sind auf jeder Motorsteuerplatine an derselben Position, so dass die
Anschlüsse auch nach außen hin immer gleich bleiben.
|
|
|
An der Oberkante der Platinen habe ich LEDs vorgesehen, die zur Seite (= nach oben) leuchten.
So kann man beim Blick auf das Controllerboard den Zustand aller Motorplatinen auf einmal erfassen.
Entgegen meinem sonstigen Stil habe ich die Vorwiderstände dieser LEDs in der SMD-Version (Format 0805)
gewählt, weil auf den Platinen nicht mehr so viel Platz zur Verfügung stand.
|
|
|
Motortreiberplatinen auf dem XYZ-Controllerboard
Version 1 / Typ U = Unipolarer Schrittmotor
Version 2 / Typ S = Bipolarer Schrittmotor oder Gleichstrommotor
Version 3 / Typ P = PWM-Ausgang
Version 4 / Typ B = Bürstenloser Gleichstrommotor (BLDC), dreiphasig
Verbindung zu Motor und Sensoren:
Alle Motortreiberplatinen haben eine 15-polige Sub-D-Buchse, an die der Motor
und die Sensoren für die jeweilige Bewegungsachse angeschlossen werden.
Die Anschlüsse des Motors variieren entsprechend seiner Technologie,
allerdings liegen sie immer auf denselben Pins des Steckers.
Zur Erfassung der Achsposition werden mehrere Verfahren unterstützt, die
je nach Einsatzfall auch gleichzeitig nebeneinander verwendet werden können:
-
Ein analoger Eingangspin kann die Achsposition über einen Analogsensor
erfassen – im einfachsten Fall ist das ein Potentiometer.
Über diesen Pin kann man zum Beispiel auch die Temperatur eines 3D-Druckkopfes
überwachen.
-
Zwei digitale Eingangspins sind für Endschalter vorgesehen.
Diese Schalter müssen so montiert sein, dass sie ansprechen, bevor die
Antriebsmechanik am Ende des Bewegungsspielraums Schaden nimmt.
Die Aktivierung der Endschalter sorgt nicht automatisch dafür, dass der
Motor gestoppt wird. Die Betriebssoftware muss selbst aufmerksam genug sein,
alle in Bewegung befindlichen Motoren häufig genug abzufragen und eine
passende Reaktion auszulösen.
Das Controllerboard hat allerdings ein Sammelsignal, das automatisch aktiviert
wird, sobald einer der 8 Endschalter aktiv ist.
-
Zwei digitale Eingangspins sind für den Empfang von seriellen Messdaten vorgesehen
– solche Messdaten, wie sie zum Beispiel von digitalen Messschiebern ausgegeben werden.
Die Anschlüsse sind bei einigen Modellen hinter einer Abdeckung zu finden,
siehe Foto rechts —>
Wenn man es schafft, so einen Messschieber in der Mechanik des XYZ-Tisches fest einzubauen,
bekommt man eine wirklich präzise Positionserfassung.
Die Motortreiberplatinen haben Transistoren zur Umsetzung der Signalpegel von 1,5 auf 5 Volt.
Übersichtstabelle der Anschlusspins:
Pin |
Version 1 Typ U |
Version 2 Typ S |
Version 3 Typ P |
Version 4 Typ B |
1 |
|
+5 Volt |
|
9 |
Analoger Eingang |
2 |
|
Masse = 0 Volt |
|
10 |
Endschalter SWE |
3 |
|
Endschalter SWF |
|
11 |
+1,5 Volt für Messschieber |
|
4 |
|
Serial Clock vom Messschieber |
I2C – SCL |
|
12 |
Reset für Messschieber |
|
5 |
|
Serial Data vom Messschieber |
I2C – SDA |
|
13 |
+12 Volt |
Motor MP2 |
6 |
|
|
14 |
Motor MP0 |
+5 Volt |
Motor MP1 |
7 |
|
Motor MP3 |
|
15 |
Motor MP1 |
Motor PWM |
Motor MP0 |
8 |
|
Motor MP2 |
Steuerregister:
Die meisten Motortreiberplatinen haben ein 6 Bit breites Register 74LS174,
in dem sie die aktuellen Steuerinformationen für den betreffenden Motor speichern.
Übersichtstabelle der Steuerregister:
Register Bit |
Version 1 Typ U |
Version 2 Typ S |
Version 3 Typ P |
Version 4 Typ B |
0 |
Motor M0 Input |
|
Motor M0 Input |
1 |
Motor M1 Input |
Motor M1 Input |
2 |
Motor M2 Input |
Motor M2 Input |
3 |
Motor M3 Input |
Motor M0 Enable |
4 |
Reset für Messschieber |
Motor M1 Enable |
5 |
|
Motor M2 Enable |
Zusätzlich gibt es für jeden Motorausgang ein unabhängiges PWM-Signal.
Die Motorsteuerkarten Version 2 / Typ S und Version 3 / Typ P können dieses Signal
verwenden.
Tschüß, euer Martin S.
|