I2C Schrittmotorsteuerung

background image

Diese Schaltung wurde ursprünglich
zur Ansteuerung von 4-Phasen-
Schrittmotors entwickelt, die durch
Ausbau aus ausgemusterten
Diskettenlaufwerken sehr preiswert zur
Verfügung stehen. Das Interface selbst
kostet auch nicht viel, da es überwie-
gend aus Standard-Bauteilen besteht.
Die Steuersoftware für den PC wurde
mit Delphi entwickelt und unterstützt
eine Reihe von Basisbefehlen, wie die
Definition von Drehrichtung zurückzule-
gender Schrittanzahl.

Schritt für Schritt

Schrittmotore sind Gleichstrommotore,
bei denen sich die Drehung der Achse
bekanntlich recht genau durch eine
Anzahl von definierten Schritten steu-
ern läßt. Das erfordert aber eine etwas
aufwendigere Ansteuerelektronik und
im Falle der Steuerung durch einen
Rechner eine entsprechende
Software. Da es unterschiedliche Arten
von Schrittmotoren gibt, ist das
Interface meist auf eine bestimmte
Ausführung zugeschnitten. In unserem
Fall sind das sogenannte unipolare
Motoren mit vier Phasen. Diese
Ausführung weist Wicklungen mit
Mittelanzapfungen auf, so daß sich
das Magnetfeld ohne Änderung der
Stromrichtung umpolen läßt. Bild 1
zeigt den prinzipiellen Aufbau eines
solchen Motors mit der Schaltung der

Wicklungen. Die vier Wicklungen wer-
den durch eine Impulsfolge (siehe
auch Bild 2) nacheinander aktiviert,
wodurch sich die Motorachse (der
Rotor) zu drehen beginnt. Die
Drehrichtung hängt von der
Reihenfolge ab, in der die Wicklungen
gepulst werden. Die
Drehgeschwindigkeit hingegen hängt
von der Frequenz ab, mit der die
Impulse aufeinander folgen. Der
Schrittmotor ist daher ein Motor, bei
dem Drehrichtung und

Geschwindigkeit digital eingestellt
werden können. Wenn sich die
Impulse überlappen, ist der Motor nie
außer Kontrolle - eine separate
Motorbremse ist daher überflüssig.
Der Wicklungswiderstand und damit
Wicklungsstrom und Wicklungsspan-
nung sind je nach Ausführung des
Motors sehr unterschiedlich. Um auch
unterschiedliche Motoren betreiben zu
können, wurde für die Ausgangsstufe
der Schaltung eine Darlingtontransistor
TIP112 verwendet, der Ströme bis 1 A

X-14 - 5/99 Elektor

EXTRA

———————————————————— PC-P

LUS

Dieser Beitrag stellt ein Schrittmotor-Steuer-Interface
für den direkten Anschluß an die serielle Schnittstelle
des PCs vor. Die Lösung ist insofern ungewöhnlich, als
daß für das Interface ein I

2

C-Baustein verwendet

wird, wobei der PC selbst über die serielle Schnittstelle
das I

2

C-Protokoll unterstützt. Die Software läuft unter

Windows 95/98.

Entwurf: Z. Otten

M

A1

A2

B1

B2

990027 - 11

I

2

C-

Schrittmotorsteuerung

Unipolare Schrittmotore digital gesteuert

Bild 1. Prinzipschema des Aufbaus eines unipolaren Schrittmotors.

background image

problemlos schaltet. Auch der Motor-
spannungsbereich ist mit 5 bis 25 Volt
recht groß und für alle gängigen Moto-
ren ausreichend. Die vollständige
Schaltung der Schrittmotorsteuerung ist
in Bild 3 zu sehen.

Einfache Ansteuerung

Da die Ansteuerung der Transistoren
mit einem relativ einfachen, sich wie-
derholenden Impulsmuster erfolgt,
kann der Logikteil der
Ansteuerschaltung mit nur drei ICs
auch recht einfach gehalten werden.
IC2 ist ein Binärzähler vom Typ
74HC(T)193, der mit dem von IC1
(PCF8574) gelieferten Takt angesteuert
wird. Eine ansteigende Flanke an Pin 5
(aufwärts) erhöht den Zählerstand um
1, eine ebensolche Flanke an Pin 4
(abwärts) verringert den Zählerstand
um 1. Die Ausgänge Qa (Pin 3) und Qb
(Pin 2) zählen von eins bis vier und lie-
fern damit die Basis für die vier Phasen
der Motorsteuerung. Der nachge-
schaltete 74HC(T)155 ist ein 2-nach-4-
Dekoder. Abhängig vom binären Kode
am Eingang ist immer ein Ausgang
Low. Daraus müssen jetzt die Signale
für die Ansteuerung der vier
Transistoren abgeleitet werden. In Bild
4
ist gezeichnet, wie mit Hilfe von vier
NAND-Gattern die gewünschten
Steuersignale A, B, C und D erzeugt
werden. Mit den High-Pegeln von den
NAND-Ausgängen werden die
Transistoren aufgesteuert, so daß
Strom über die angeschlossene
Motorwicklung fließt.
Für IC2 und IC3 können LS-, HC- oder
HCT-Typen verwendet werden. Für IC4
sollten nur HC- oder HCT-Ausführungen
verwendet werden, da mit LS-TTL nicht
genug Basisstrom für die Transistoren
zur Verfügung steht.
Die I

2

C-Schaltung ist etwas unkonven-

tionell ausgelegt. Mittelpunkt ist IC1,
ein PCF8574. Dieses Philips-IC gibt es
auch in einer anderen Version als
PCF8574A. Der Unterschied liegt in der
Basisadresse, die beim einen $0H und
beim anderen 70H ist.
Das Taktsignal liefert der PC bei der
Ausführung des Programms an der
TxD-Leitung der seriellen Schnittstelle.
Die bidirektionale Kommunikation, wie
sie auf der SDA-Leitung zu finden ist,
wird mit Hilfe der Signale CTS und DTR
der seriellen Schnittstelle abgewickelt.
Die serielle Schnittstelle bietet sich
dafür besonders an, weil sie gut in
Entwicklungsumgebungen wie Visual
Basic und Delphi eingebunden ist.
Die Widerstände R4 und R5 sorgen
zusammen mit D1 und D2 für die
Begrenzung der RS232-

Signalspannungen auf TTL-Niveau.
CTS und DTR liegen miteinander ver-
knüpft am SDA-Eingang von IC1,
während TxD mit SCL verbunden ist.
Mit Hilfe der Jumper Jp1 bis JP3 läßt
sich die Basisadresse von IC1 selek-
tieren. Damit können maximal acht
Interfaces an dem I

2

C-Bus parallel

betrieben werden. Theoretisch ste-
hen daher 2 x 8 x 8 = 128 I/O-
Leitungen (parallele Anschlüsse) zur
Verfügung. Für unsere Anwendung
genügt aber erst einmal ein
Controller, von dem auch nur drei
Anschlüsse verwendet werden. P0
steuert eine LED an, P1 und P2 steu-

PC-P

LUS

———————————————————

Elektor

EXTRA

X-15 - 5/99

Bild 2. Das Impulsdiagramm illustriert die Ansteuerung des Schrittmotors.

Bild 3. Schaltplan des Schrittmotor-Interfaces mit I

2

C-Schnittstelle.

B2

A2

B1

A1

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

992027-12

t

K1

1

2

3

4

5

6

7

8

9

R5

6k8

R4

6k8

D1

5V1

D2

5V1

R1

330

R2

330

JP2

JP1

JP3

D3

R3

220

74HCT155

X / Y

IC3

13

EN

14

15

EN

10

11

12

2

1

&

7

6

5

4

0

1

2

3

1

α

β

α
α
α
α

3

2

&

9

0

1

2

3

β
β
β
β

IC1

8574

INT

SCL

SDA

PCF

10

11

12

15

14

13

P0

P1

P2

P3

P4

P5

P6

P7

A2

A1

A0

16

4

5

6

1

2

3

7

9

8

74HCT193

1CT=15

2CT=0

IC2

G1

G2

10

3D

C3

15

11

14

12

13

2+

1–

1

5

6

2

R

7

3

9

4

1

2

3

IC4a

&

13

12

11

IC4d

&

4

5

6

IC4b

&

10

9

8

IC4c

&

R6

820

R7

820

R8

820

R9

820

T1

T2

T3

T4

IC2

16

8

IC3

16

8

IC4

14

7

IC4 = 74HCT00

5V

5V

TxD

CTS

DTR

GND

1

0

1

0

1

0

5V

12V

A1

B1

A2

B2

(A)

A1

B1

A2

B2

992027 - 13

M1

M

background image

ern die Laufrichtung des Motors.
Die Betriebsspannung der Schaltung
beträgt 5 V bei einer Stromaufnahme
von etwa 90 mA. Die Spannung am
Motor selbst hängt vom verwendeten
Motor ab. Besondere Anforderungen

werden an die Motor-Stromversorgung
nicht gestellt. Wenn der benötigte
Strom nicht bekannt ist, kann man den
Widerstand der Motorwicklungen aus-
messen und den Strom bei gegebener
Betriebsspannung berechnen.

Bits und Bytes

Die Software für das Interface wurde
mit Delphi 3.0 entwickelt und läuft
unter Windows 95/98. Die verwendete
Pascal-Unit kann aber auch für andere
(zum Beispiel selbst entwickelte)
Programme verwendet werden. Die
Unit enthält die Routinen zur Erzeugung
der Signale konform zum I

2

C-Protokoll

und zum Schreiben und Lesen nach
IC1. Auf der Diskette steht auch eine
Unit zur Verfügung, die sich unter DOS
verwenden läßt. Die Ausgänge P0 bis
P7 können direkt mit einem 8-bit-Wort
angesteuert werden. Wir der Ausgang
P1 nacheinander Low und High
gesteuert, bewegt sich die
Motorachse um einen Schritt nach
links. Ebenso verhält es sich bei P2 für
die andere Drehrichtung.
Wie bereits erwähnt, bestimmt die
Impulsfrequenz die Drehgeschwindig-
keit. Die maximal mögliche Impulsfre-
quenz hängt im Prinzip von der Rechen-
geschwindigkeit des PCs ab. Um diesen
Effekt zu eliminieren, wird in der Soft-
ware eine Motorkonstante definiert. Der
Wert dieser Konstante muß so gewählt
werden, daß sich eine für die
gewünschte Drehzahl ausreichende
Impulsfrequenz ergibt.
In Bild 5 sieht man, wie sich das
Programm (VPLS1.EXE) für den
Anwender darstellt. Der linke Teil des
Fenster bezieht sich auf die
Kommunikation mit dem I

2

C-Interface,

der rechte Teil auf den Motor. Nach
dem Aktivieren von ”Testl2C” muß die
LED geschaltet werden. Der Status der
Ein-/Ausgänge P0 bis P7 wird in einem
Fenster angezeigt, dafür wir der
Binärinhalt des Statusbytes von IC1
verwendet. Im gleichen Fenster kann
man auch die erwähnte
Motorkonstante einstellen. Mit zwei
Buttons kann man die in einem zuge-
ordneten Fenster eingetragene
Schrittanzahl ausführen. Ein Zähler
zeigt die momentane Stellung des
Motors anhand der Anzahl der ausge-
führten Schritte an.
Da Schrittmotore meist als Teil eines
größeren Systems verwendet werden,
ist es wichtig, daß man die
Steuersoftware in die übergeordnete
Systemsoftware einbinden und nach
Bedarf anpassen kann. Auf der
Diskette (EPS 996014-1) ist deshalb
auch der Quellkode verfügbar.

(992027e)

X-16 - 5/99 Elektor

EXTRA

———————————————————— PC-P

LUS

992027-14

t

1

3

2

1

4

3

2

1

4

3

1

2

3

4

2

3

4

&

&

&

&

1

2

4

5

10

9

13

A

B

C

D

A

B

C

D

12

1 + 4

1 + 4

2 + 1

2 + 1

3 + 2

3 + 2

4 + 3

4 + 3

Bild 4. Die Signale des 2-nach4-Umsetzers werden mit den NAND-Gattern so verknüpft,
daß die Transistoren der Strangtreiber direkt angesteuert werden können.

Bild 5. Die Windows-Benutzeroberfläche des Programms, das einschließlich Quellkode
verfügbar ist.


Wyszukiwarka

Podobne podstrony:
programator pamięci I2C
CODESYS Installation und Erste Schritte
Mikrokontrolery STM32 Użycie interfejsu I2C, USART, SPI
AVT 5321 Szukacz i tester układów na magistrali I2C
i2c
AKiSO SS wykład 8 I2C SPI 1W CAN
Zegar czasu rzeczywistego sterowany szyną I2C
Hueber Schritte 1 Lernwortschatz
Miagistrala i2c
6 magistrala I2C
i2c to keyboard interface
I2C Multiplexer
I2C bus specificaion 2000 id 20 Nieznany
Bipolare Schrittmotorsteuerung
I2C Bus Implementierung
i2c
I2C
Magistrala I2C 10 id 276712 Nieznany
I2C Interface fuer Druckerschnittstelle

więcej podobnych podstron