Forum: Mikrocontroller und Digitale Elektronik Unipolaren Schrittmotor mit Mega8 und ULN2803 ansteuern


von Jochen H. (recan)


Angehängte Dateien:

Lesenswert?

Hallo µC-Gemeinde,

kurze Vorgeschichte, da dies mein erster Beitrag hier ist:

Angefangen habe ich mit kleineren Arduinoprojekten und diesem (falls ihn 
jemand kennen sollte) MaVin-Roboter von Multiplex. Allerdings war 
letzter stark auf die Softwareseite ausgelegt und mit Hardware hatte man 
(außer Module aufstecken und am Stecker wackeln) nicht wirklich was zu 
tun.
Deshalb dachte ich, ich fange mal mit etwas "eigenem" an um auch in 
Sachen Hardware ein wenig voranzukommen.

TL;DR:
Erstmal hab ich mir vorgenommen, einen Schrittmotor anzusteuern.
Ausgesucht habe ich mir hierfür einen unipolaren Schrittmotor, den ich 
auch (erstmal) unipolar ansteuern will.
Unipolar einfach wegen des geringeren Schaltungsaufwandes.

Da ich, wie gesagt, allerdings in Sachen Hardware relativ neu bin und 
mein Wissen aus verschiedenen Quellen habe, wäre es für mich hilfreich, 
wenn sich jemand die Zeit nehmen würde um nochmal über meinen Schaltplan 
rüber zu schaun.

Kurze Erläuterung/Fragen zum Plan:
- Auf die 9,6V (und 0,48A) komme ich, da ich mir bereits einen 
Schrittmotor ausgeguckt habe (bin ich günstig rangekommen).
Datenblatt hierzu "-803":
http://www.datasheetarchive.com/dl/Scans-031/ScansU9X38022.pdf

-M1, M2 im Plan sind die Mittelspulenabgriffe. Hier bin ich mir nicht 
sicher ob ich richtig angeschlossen habe. Ich arbeite hier ja mit 
negativer Logik, oder?

-Auf Quarz habe ich bewusst verzichtet oder wäre für die Anwendung einer 
empfehlenswert?

-Als µC dachte ich an einen Mega8. Ehrlichgesagt ohne speziellen Grund, 
ich dachte, dieser reicht für meine Anwendung völlig aus.

-Den Atmega wollte ich wiederum mit dem im Tutorial empfohlenen 
ISP-Programmer von Atmel selbst beschreiben, da ich auch weiterhin gerne 
ohne Probleme mit Atmel Studio arbeiten würde. Mit der Software selbst 
komme ich hoffentlich dann wieder klar.

-Und allgemein noch die Frage: Ich habe gelesen, dass man bei 
Schrittmotoren auch auf konstante Stromversorgung achten soll, was ist 
damit gemeint? Zieht der Motor nicht immer den Strom den er braucht?

TL;DR#2:
Läuft mein Unipolar-9,6V-Schrittmotor mit angehängter Schaltung und/oder 
gibt's Verbesserungsvorschläge? :-)

Beste Grüße,
Jochen

Ach und danke schonmal - auch wenn ich bisher nie geposted hab, habt ihr 
mir doch schon echt oft Fragen beantwortet!

von Helge A. (besupreme)


Lesenswert?

So kannst du nur recht langsam drehen. Das hat 2 Gründe:

1. Sobald dein Motor vorwärts läuft, induziert er in den nicht 
angesteuerten Windungen eine Spannung. Die wird über die im 2803 
eingebauten Dioden kurzgeschlossen und dadurch wird der Motor 
abgebremst.

2. Du hast nur 9,6V bereitgestellt. Der Motor hat aber nicht nur einen 
Widerstand sondern auch eine Induktivität. Beschleunigst du, bremst die 
Induktivität den Aufbau des Spulenstroms irgendwann stärker als der 
Innenwiderstand.

Eine simple Methode, das zu umgehen, ist eine Spannung von z.B. 12-15V 
und 2 Widerstände in die Leitungen M1 und M2. Die müssen so gewählt 
werden, daß bei Ansteuerung nur einer Spule höchstens die erlaubten 
0,34A im Stillstand fließen.

von Oliver R. (orb)


Lesenswert?

Jochen H. schrieb:
> -Als µC dachte ich an einen Mega8. Ehrlichgesagt ohne speziellen Grund,
> ich dachte, dieser reicht für meine Anwendung völlig aus.

Und die Schaltung hat die üblichen Fehler ;-)
Zwischen die Versorgungspins 7 - 8 und 20 - 22 gehört je ein Kondensator 
um die 100nF
Aref wird nicht direkt sondern über einen Kondensator (auch um die 
100nF) auf GND gelegt wenn Du keine extra Referenzspannung anlegen 
willst.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hallo Jochen!

> Erstmal hab ich mir vorgenommen, einen Schrittmotor anzusteuern.
> Ausgesucht habe ich mir hierfür einen unipolaren Schrittmotor, den ich
> auch (erstmal) unipolar ansteuern will.
> Unipolar einfach wegen des geringeren Schaltungsaufwandes.

Wenn du mit "Schaltungsaufwand" die Anzahl der Transistoren in einem 
Chip meinst, könntest du Recht haben. Das interessiert aber in der Regel 
niemanden.

Da bei unipolarer Ansteuerung immer nur eine Hälfte des Motors verwendet 
wird, macht man das heute eigentlich kaum noch. Deswegen gibt es fast 
nur noch bipolare Treiber (von einigen japanischen Spezialitäten mal 
abgesehen). Es gibt inzwischen sehr gute und preiswerte Treiberchips für 
bipolare Motoren mit Mikroschritt-Ansteuerung und div. weiteren 
Funktionen (Kurzschlußschutz etc.).

Der Aufwand diese modernen Treiber zu verwenden ist aus Anwender-Sicht 
nicht größer als der für den UN2803. Die Performance (mögliche Drehzahl, 
Drehmoment, Laufruhe usw.) ist aber deutlich höher...

Mit freundlichen Grüßen
Thorsten Ostermann

von Jochen H. (recan)


Lesenswert?

Erstmal danke euch für die schnellen Antworten

Helge A. schrieb:
> Eine simple Methode, das zu umgehen, ist eine Spannung von z.B. 12-15V
> und 2 Widerstände in die Leitungen M1 und M2.

Okay, deine beiden ersten Punkte ergeben für mich Sinn. Aber wie kommst 
du gerade auf 12-15V? Oder wählt man da einfach "irgendwas überhalb der 
Nennspannung" um den Bremseffekt quasi mit mehr Dampf auszugleichen?

Oliver R. schrieb:
> Und die Schaltung hat die üblichen Fehler ;-)

Hab die Fehler inzwischen ausgebessert - danke :-)

Und zu Thorsten kann ich sagen:
Ich dachte mir schon schon fast, dass sich jemand an diesem Punkt stört. 
Ich hab's vielleicht auch blöd formuliert. Aber die Aufgabe habe ich mir 
mehr oder weniger als Übung zum Lernen von Grundlagen gestellt, es ist 
durchaus noch geplant später das Ganze z.B. mit L297/L298 und bipolar 
anzusteuern. Und das Ganze mal so gemacht zu haben schadet sicherlich 
auch nicht und ist, finde ich, auch nicht wirklich Mehraufwand. Aber 
danke dir für den Hinweis :-)

Jochen

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Hallo Jochen,

> Helge A. schrieb:
>> Eine simple Methode, das zu umgehen, ist eine Spannung von z.B. 12-15V
>> und 2 Widerstände in die Leitungen M1 und M2.
>
> Okay, deine beiden ersten Punkte ergeben für mich Sinn. Aber wie kommst
> du gerade auf 12-15V? Oder wählt man da einfach "irgendwas überhalb der
> Nennspannung" um den Bremseffekt quasi mit mehr Dampf auszugleichen?

Man muss halt ein gutes Mittelding finden zwischen der Motornennspannung 
und einer Spannung, bei der man deutlich mehr Verlustleistung in den 
Vorwiderständen hat als im Leistung im Motor umgesetzt wird.
http://www.ostermann-net.de/electronic/schritt/sm_ansteuer.htm

Mit freundlichen Grüßen
Thorsten Ostermann

von Helge A. (besupreme)


Lesenswert?

Unter 12V für eine 9V-Spule wird der Bremsen-Effekt stärker spürbar. Bei 
18V wird, jedenfalls bei langsamem Lauf, schon die Hälfte der 
aufgenommenen Leistung in Wärme umgesetzt. Für eine solche 
Einfachschaltung, die ja eher zum Erforschen der Funktion und nit für 
eine große Serie gedacht ist, macht eine höhere Spannung kaum Sinn 
(außer es geht um hohe Drehzahlen).

Für die praktische Anwendung in einem gut durchkonstruierten Gerät sind 
dann modernere Treiberbausteine das Mittel der Wahl, diese müssen dann 
möglichst eigenständig den Motorstrom im optimalen Bereich halten. Das 
geht z.B. mit L6208 und neueren Bausteinen relativ verlustarm, erfordert 
aber ein gutes Platinendesign: Diese moderneren Bausteine besitzen 
schnelle Mosfet-Schalter und arbeiten meist im Chopperbetrieb, dadurch 
entstehen viele schnelle Stromwechsel und bei schlechtem Design sendet 
sowas oder geht kaputt.

von Jochen H. (recan)


Lesenswert?

Ahh! - Wunderbar, der Link und Helges Beitrag haben mir sehr geholfen! 
Ich denke, da werd ich morgen oder übermorgen glatt mit dem Basteln 
anfangen :-)

Danke euch beiden für die Mühe!

Beste Grüße,
Jochen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.