| Weitere Artikel aus dem Elo-Magazin |
Drehzahlsteuerung eines kleinen Gleichstrommotors mit dem Attiny13
von Hermann Nieder
| Ganzen Artikel lesen... | ![]() |

Angeregt durch den Beitrag im ELO-Magazin [1] zur Verwendung eines Stereoverstärkers als Motortreiber ließ ich mir vor einigen Wochen von Reichelt [2] auch Exemplare der kostengünstigen Verstärker liefern, um damit auch gemäß den Hinweisen in dem o. a. Artikel zu experimentieren. Ich wollte zusätzlich ausprobieren, ob ich nicht den Attiny13 aus dem Lernpaket Mikrocontroller[3] zur Ansteuerung des o. a. Motortreibers für einen kleinen Gleichstrommotor verwenden kann, und zwar sollte auf der PC-Seite ein Visual-Basic-Programm die Übertragung von Bytes zum Mikrocontroller übernehmen.
Der Gleichstrommotor soll ähnlich wie im Beispiel in einem Fachbuch von Burkhard Kainka und Martin Förster [4] über den PWM-Ausgang des Mikrocontrollers in beiden Drehrichtungen angesteuert werden, wobei das PWM-Signal jeweils invertiert an die zweite Halbbrücke eines Ics L293D [5] geliefert wird. Damit entstehen gegenphasige PWM-Signale an seinen Ausgängen. Der Motor lässt sich in beiden Drehrichtungen ansteuern. Beim Pulsverhältnis 50 % (Ausgabewert 128) ist der Strom im Mittel Null. Der Läufer des Motors steht. Bei einer Ansteuerung von 0 % (Ausgabewert 0) dreht er sich mit höchster Drehzahl in der einen Drehrichtung, während er bei einer Ansteuerung von 100%(Ausgabewert 255) sich mit höchster Drehzahl in der entgegengesetzten Richtung dreht.
Im Bild ist die erste Schaltung dargestellt, die ich in Anlehnung an das Beispiel im o. a. Fachbuch dazu zunächst aufbaute. Sie besitzt aber folgenden entscheidenden, unerwünschten Nachteil: Der Läufer des Gleichstrommotors dreht sich bereits beim Einschalten der Betriebsspannung. Er tut dies auch, wenn noch kein PWM-Signal vom Mikrocontroller vorhanden ist, also bei Low-Pegel. Dieser Pegel am Eingang der ersten Inverterstufe ergibt am Ausgang der darauf folgenden Inverterstufe Low-Pegel und damit am Eingang der damit verbundenen Verstärkerstufe. Diese nimmt an ihrem Ausgang High-Pegel an. Wenn sich am Eingang der zweiten Verstärkerstufe nicht gerade auch Low-Pegel einstellt, dreht sich der Läufer des angeschlossenen Gleichstromotors. Dies fand ich durch Messung der jeweiligen Spannungen heraus. Der verwendete Stereoverstärker besitzt im Vergleich zu einem Leistungstreiber wie der Baustein L293D , der im o. a. Fachbuch zur PWM-Motorsteuerung verwendet wird, keinen Freigabe-Eingang (ENABLE). Ich experimentierte weiter und suchte nach einer Lösung des Problems und fand sie, indem ich alle vier Gatter des CD4093 verwendete und die ursprüngliche Schaltung folgendermaßen aufbaute.
Nun steht der Läufer des Gleichstrommotors beim Einschalten der Betriebsspannung und dreht sich erst, wenn eine Ansteuerung durch den Mikrocontroller geschieht. Dafür sorgen die Low-Pegel an den Eingängen der beiden Verstärkerstufen. An beiden Ausgängen stellt sich High-Pegel ein. Der Läufer des Gleichstrommotors kann sich nicht drehen.
Dies ist die praktische Ausführung der Schaltung auf einem kleinen Steckboard.
Nun funktioniert die Schaltung wie erwünscht.Beim Einschalten steht der Läufer des Motors. Wird vom PC eine 1 gesendet und danach ein Zahlenwert von 1 bis 255, dreht sich der Rotor des Gleichstrommotors z. B. im Uhrzeigersinn mit einer Drehzahl entsprechend dem Zahlenwert, den der Mikrocontroller empfängt. Zur Übermittlung kann auf der PC-Seite das Terminal-Programm der Software des Lernpakets Mikrocontroller verwendet werden. Etwas komfortabler geht es mit dem von mir entwickelten Visual-Basic-Programm, zu dem hier ein Screenshot abgebildet ist.
Nach Auswahl der COM-Schnittstelle, hier im Bild COM2, wird über die obere Checkbox Rechtslauf gewählt und mit dem Schieber der horizontalen Schrollbar ein Wert eingestellt. Über dem Motor-Symbol erscheint bei Werten größer als 0 ein nach rechts gerichteter roter Pfeil für Rechtslauf.
Der vom PC an den Mikrocontroller gesendete Ausgabewert wird zusätzlich im Textfeld angezeigt. Der Pfeil über dem Motor-Symbol verschwindet wieder, wenn die Auswahl durch erneutes Anklicken der gerade angewählten Checkbox aufgehoben wird, oder wenn die andere angeklickt wird.
Der Schieber der Scrollbar steht zunächst gemäß den Ausführungen oben unter dem ersten Bild (Pulsverhältnis 50%) in der Mittelstellung. Wird er mit der Maus nach links verschoben, erscheint ein nach links gerichteter Pfeil über dem Motor-Symbol, und der eingestellte Wert wird entsprechend der Drehrichtung nach links mit negativem Vorzeichen im Textfeld ausgegeben. Der Läufer des Motors dreht sich entgegen dem Uhrzeigersinn.
Beim Verstellen des Schiebers der Scrollbar nach rechts über die Mitte hinaus dreht sich der Läufer des Motors im Uhrzeigersinn. Der Wert wird im Textfeld angezeigt. Zusätzlich erscheint zur Veranschaulichung über dem Motorsymbol ein nach rechts gerichteter Pfeil.
Beim erneuten Anklicken der gerade ausgewählten Checkbox bleibt der Läufer des Motors stehen.
Dies ist das kleine BASCOM-AVR-Programm [6] für den Attiny13, mit dem dies ermöglicht wird:
'DC_mot4.bas
'Drehzahl- und Drehrichtungssteuerung eines Gleichstrommotors
'mit dem ATtiny13
'09.11.2008
$regfile = "attiny13.dat"
$crystal = 1200000
Config Portb.0 = Output
Config Portb.3 = Output
Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down
Open "comb.1:9600,8,n,1,INVERTED" For Output As #1
Open "comb.2:9600,8,n,1,inverted" For Input As #2
Dim B As Byte
Dim N As Byte
Anfang:
Portb.3 = 0
Do
Get #2 , B
Select Case B
Case 1 : Gosub Rechtslauf
Case 2 : Gosub Re_li_lauf
Case Else : Gosub Start
End Select
Loop
Start:
Portb.3 = 0
Pwm0a = 0
Get #2 , N
Put #1 , N
Return
Rechtslauf:
Get #2 , N
Pwm0a = N
Portb.3 = 0
Return
Re_li_lauf:
Get #2 , N
Pwm0a = N
Portb.3 = 1
Return
End
Das Visual-Basic-Programm einschließlich der Datei elex.dll und das BASCOM-AVR-Programm-Listing sowie die HEX-Datei dazu können hier heruntergeladen werden: Dc_mot.zip
Literatur, Bezugsquellen:
[1] Beitrag „Stereo-Verstärker TEA 2025B als Motortreiber" vom 02.10.08 im ELO-Magazin
[2] www.reichelt.de
[3]www.franzis.de
[4]B.Kainka, M. Förster „C-Control Anwendungen", Franzis-verlag, 1998
[5] www.ti.com, www.alldatsheet.com
[6] MCS Electronic, www.mcselec.com

















