Samstag, 4. Juli 2015

Steuern eines DC Motors mit dem Arduino

In diesem Post geht es darum, wie man einen DC Motor mit dem Arduino steuert. Dazu kann man die L293D H-Bridge verwenden. Diese kann bis zu 2 Motoren unabhängig voneinander steuern, wobei die Richtung und die Geschwindigkeit einstellbar sind.

Die Schaltung

Um einen Motor zu steuern muss man seine Drehrichtung festlegen. Dazu gibt es für jeden Motor zwei Pins am L293D. Sobald einer dieser Beiden auf HIGH geschaltet ist, während der Andere auf LOW geschaltet ist, ist die Richtung ausgewählt. Auf dem Bild sind diese Pins jeweils mit Motor1-I oder Motor2-I gekennzeichnet. Außerdem muss die Geschwindigkeit des Motor festgelegt werden. Dazu wird ein analoges Signal mit der jeweiligen Stärke übertragen. Dazu verwendet man M1-Speed oder M2-Speed. An Pin 16 wird die Spannungsversorgung für die H-Bridge angeschlossen und Pin 13 wird mit dem Ground des Arduino verbunden. An Pin 8 wird der Pluspol der Spannungsversorgung der Motoren angeschlossen. Bei kleineren Motoren können das auch die 5V des Arduino sein. Der Minuspol der Spannungsversorgung des Motors muss mit dem Minuspol des Arduino verbunden werden. Der L293D hält Spannung von bis zu ca. 7V aus. Ich habe aber auch einmal einen L293D problemlos mit 9V betrieben, wobei das das absolute Maximum sein sollte. An M1-1 und M1-2 werden die beiden Anschlüsse eines DC Motors angeschlossen. In echt sieht die Schaltung dann so aus:

Steuern des Motors mit dem Arduino

Am Arduino müssen 3 Pins geschaltet werden: die Beiden zum Steuern der Richtung und der Pin zum Steuern der Geschwindigkeit. Zum bestimmen der Richtung muss einer der Pins auf LOW und der Andere auf HIGH sein. Wenn beide auf LOW oder beide auf HIGH sind, dreht sich der Motor nicht mehr. Der Geschwindigkeitspin gibt ein analoges Signal mit einer Stärke zwischen 0 und 255 aus. Die entsprechende Spannung erhält dann der Motor. Der Geschwindigkeitspin muss PWM unterstützen(Arduino UNO:Pin 3, 5, 6, 9, 10, 11). Zum ausprobieren kann man diesen Sketch verwenden:
Die L293D H-Bridge  ist eine einfache und billige Möglichkeit einen kleinen DC Motor mit dem Arduino zu steuern. 

Keine Kommentare:

Kommentar veröffentlichen