faecher:nwt:arduino:lernbaustein1:motorsteuerung:start

Gleichstrommotoren steuern

Um einen Motor zu betreiben, reicht die elektrische Leistung des Mikrocontrollers nicht aus. Er kann zwar 5V Spannung erzeugen, aber keine hohen Ströme fliessen lassen. Mit einer externen Spannungsquelle1) und einer Transistorschaltung kann man zwar die höhere Leistung der externen Energiequelle nutzbar machen - allerdings könnte man den Motor nur ein- und ausschalten, aber nicht umpolen, um seine Drehrichtung zu ändern.

Deshalb verwenden wir zur Ansteuerung von Gleichstrommotoren eine Motortreiberplatine, mit der man zwei Motoren ansteuern kann.

Der zentrale Baustein auf der Motortreiberplatine heißt IC L298. IC steht für „Integrated Circuit“, also integrierter Schaltkreis. Im Inneren des L298 werkeln 8 geschickt mit einander verschaltete leistungsfähige Transistoren, eingebaut in ein einziges Gehäuse. Die Schaltung nennt man auch H-Brücke.

Je nachdem in welchem Zustand du dein Material vorfindest, musst du noch ein paar Vorbereitungen treffen. Der folgende Abschnitt ist versteckt, so kannst du ihn überspringen, wenn du schon fertig angeschlossene Motoren/Akkus/Motortreiber hast.

Andernfalls: Klappe die Infos aus!

Ausklappen!

Zunächst musst du den Motortreiber mit dem Arduino verkabeln:

Die angeschlossenen Motoren werden über die untere Pin Leiste gesteuert (Beschriftung ENA, IN1, IN2, IN3, IN, ENB). Die drei Pins links steuern den Motor, der an den linken Anschlüssen angeschlossen ist, die Pins rechts den auf der rechten Seite.

Die mit ENX beschrifteten Pins dienen dazu, die Energiezufuhr zu regulieren, was dazu führt, dass sich die Motoren schneller oder langsamer drehen. Je höher die Spannung an der ENX Pins ist, desto mehr Energie erhalten die zugehörigen Motoren.

Wenn die ENX Pins nicht angeschlossen sind, ist die Spannung 0 und der betreffende Motor dreht sich nicht.

Die mit INX bezeichneten Pins legen die Drehrichtung fest: Ist einer HIGH und der andere LOW, dreht sich der Motor in eine Richtung - vertauscht man HIGH und LOW In die andere. Sind beide Pins HIGH oder beide LOW, steht der Motor still.


(A1)

Verbinde die rechten beiden Pins mit den Pins 3 und 4 deines Arduino. Schreibe nun ein Programm, das immer wieder Pin 3 HIGH und Pin 4 LOW schaltet, zwei Sekunden wartet, dann beide Pins HIGH (oder LOW) schaltet und wieder zwei Sekunden wartet. Nun sollte der Motor laufen, stehen, laufen, stehen…

Nimm auf diese Weise auch den anderen Motor in Betrieb. Achte darauf, dass die ENX Pins mit 5V versorgt werden, beispielsweise mit einem Jumper oder einem kleinen Kabel.


(A2)

Wenn man die ENX Pins mit Analogausgängen des Arduinos verbindet, kann man die Geschwindigkeit verändern: Je höher die Spannung an den Pins ist, desto schneller dreht sich der Motor.

Schreibe ein Programm, das einen Motor sanft schneller werden lässt und nach einigen Sekunden wieder sanft abbremst.

Tipp: AnalogWrite und ForSchleife.


(A3)

Wenn du beide Motoren in Betrieb genommen und getestet hast, schreibe Unterprogramme für die folgenden Situationen:

  • „Beide vorwärts“: Beide Motoren sollen sich in eine Richtung drehen
  • „Beide rückwärts“: Beide Motoren sollen sich in eine Richtung drehen, aber andersherum als bei „Beide vorwärts“ l
  • „Links vorwärts“: Der linke Motor dreht sich, der rechte steht.
  • „Rechts vorwärts“: Der rechte Motor dreht sich, der linke steht.
  • „Stopp“: Beide Motoren stehen still

Führe Motorstart und Motorstopp dabei möglöichst immer „sanft aus.

Mit diesen Unterprogrammen bist du der Steuerung eines Fahrzeugs schon recht nahe, das zwei Motoren als Hinterräder benutzt.


1)
Batterien, Akkupack
2)
Warum?
  • faecher/nwt/arduino/lernbaustein1/motorsteuerung/start.txt
  • Zuletzt geändert: 02.02.2023 10:30
  • von sbel