PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit ULN2803A und unipolarem Schrittmotor



Bluescreen
31.03.2005, 21:05
Hi!

Ich möchte gerne einen unipolaren Schrittmotor mit Hilfe von VB über den LPT Port steuern.
Dazu habe ich http://www.wolfgang-back.com/PDF/Schrittmotor.pdf durchgelesen und wie beschrieben (S. 7) die Schaltung mit dem ULN2803A zusammengelötet.
Ich habe mir dazu selber ein Programm mit VB geschrieben:


Private Sub Timer1_Timer()
If n = 1 Then Out &H378, 36
If n = 2 Then Out &H378, 20
If n = 3 Then Out &H378, 24
If n = 4 Then Out &H378, 40: n = 0
n = n + 1
End Sub

Das ganze läuft über die INPOUT32.dll (vgl. http://www.activevb.de/tutorials/tut_parallel/parallel.html ) und ich habe die Ausgänge 0 bis 3 (Pin 2 bis Pin 5) belegt.
Ein Timer (eingestellt auf 500ms) soll also den Schrittmotor immer um einen Schritt weiter bewegen. In welche Richtung ist vorerst egal. Hauptsache er bewegt sich!

Mein Problem ist jetzt, dass der Motor sich einmal nach rechts bewegt, dann garnichts macht und dann wieder einmal nach links. Er scheint einen Schritt zu überspringen, da er nur jede Sekunde einen Ruck macht. Was habe ich falsch gemacht? Der Motor ist aus einem uralten Diskettenlaufwerk und scheint noch in Ordnung zu sein, da man die Anschlüsse einwandfrei identifizieren kann. Die Versorgungsspannung habe ich auf 12V gestellt.

Schonmal vielen Dank für die Hilfe!
Bluescreen

Bluescreen
01.04.2005, 17:32
Hallo

Nach ein paar mal Wechseln der Ausgänge am IC funktioniert jetzt alles. Der IC scheint also irgendwie nich mehr ganz ok zu sein. Bei einer Spannung von ca 14V wird sowohl Motor und IC ziemlich warm. Wie warm dürfen die Teile werden ohne dass man sie kühlen muss?

Bluescreen

KlausR
02.04.2005, 12:01
Hallo

Nach ein paar mal Wechseln der Ausgänge am IC funktioniert jetzt alles. Der IC scheint also irgendwie nich mehr ganz ok zu sein. Bei einer Spannung von ca 14V wird sowohl Motor und IC ziemlich warm. Wie warm dürfen die Teile werden ohne dass man sie kühlen muss?

Bluescreen

Mess doch mal den Strom, den eine Spule des Schrittmotors im eingeschalteten Zustand zieht. Der ULN2803A schafft als Dauerleistung max. 500mA. Als grober Hinweis mag der Spulenwiderstand dienen. Wenn er weniger als 28 Ohm hat, dann bekommst du Probleme, da der Strom (rein ohmsch gerechnet) über die 500mA bei 14 V ansteigt.
Weiterhin dürfen nicht alle 8 Treiber gleichzeitig 500mA schalten. Im Datenblatt steht was von max. 1W pro Kanal, aber max. 2,25 W für alle Kanäle.

-Klaus

Skilltronic
02.04.2005, 15:02
Hallo

Mit den Werten aus deinem Programm gibst du folgende Bitmuster am LPT aus:

Bit: 76543210
36: 001001000
20: 000101000
24: 000110000
40: 001010000

Da stimmen einerseits die Muster nicht so ganz, zum anderen erfolgt die Ausgabe über Bit 2-5, also die Pins 4-7. Versuche es mal mit mit den Werten 3, 6, 12 und 9. Ist dir auch klar, wie sich ein Byte aus einzelnen Bits zusammensetzt bzw. wie die Umrechnung funktioniert?

Für das Warmwerden sehe ich zwei Gründe. Das Prgramm schaltet immer zwei Leitungen gleichzeitig ein. Das verleiht dem Motor zwar mehr Kraft, braucht aber auch doppelt so viel Strom. Es geht auch, wenn du immer nur eine Leitung einschaltest. Dann mit den Werten 1, 2, 4, 8.

Wenn der Motor in der Ruhestellung nichts halten muss, solltest du ausserdem beim Verlassen des Unterprogramms alle Ausgänge auf null setezen, weil sonst permanent Strom durch zwei Spulen fliesst.

Gruss
Skilltronic

Bluescreen
03.04.2005, 13:56
Hallo

Der Spulenwiderstand beträgt von A von GND ca 75Ohm (Gesamtwiderstand von A nach B 150Ohm). Der Strom der bei 14V pro Kanal fließt ist also etwa 180mA..deswegen hab ich die Spannung runtergedreht auf 10V, was aber immernoch zu viel ist da die Wattzahl zu hoch ist. Der IC bleibt allerdings ständig auf Raumtemperatur. Nur der Motor wird warm.

Dass das Bitmuster am LPT Ausgang falsch war ist mir auch aufgefallen(wie man Bit in Byte urmechnet und sich die Output Signale für den LPT ergeben weiß ich). Als es korrigiert war und sich der Motor trotzdem nicht bewegte habe ich die Kanäle am IC gewechselt.

Das mit nur einer Leitung anschalten hab ich noch nicht ganz begriffen. Ist das so, als würde ich Halbschritte machen, aber jeden 2. Schritt überspringe?

Meine neuen Pinbelegung am LPT ist jetzt 2, 4, 6 und 7 (dementsprechend am IC Ausgang 1, 3, 5 und 7) und die Reihenfolge der ausgegebenen Daten am LPT ist 17, 20, 36, 33.

Vielen Dank für die Hilfe

Bluescren

Viele Dank für die Hilfe
Bluescreen