Kann man einen Fischertechnikmotor mit Arduino ansteuern?

2 Antworten

Die Anschaltung von Motoren erfolgt über eine H-Bridge. Zwei Ausgänge des Arduino werden mit den Eingängen der H-Bridge verbunden. 00 und 11 ergeben einen stillstehenden Motor, bei den Ausgangskombinationen 10 und 01 hat man die zwei verschiedenen Drehrichtungen.

Die H-Bridge wird einerseits mit Masse, Versorgungsspannung (meist 3,3-5V) und den beiden Steuersignalen vom Arduino betrieben, andererseits mit der Stromversorgung für die Last (typ. 3-30V) verbunden. H-Bridges gibt es von ca. 200mA bis mehrere Ampere. Für Fischertechnik-Motoren reichen 200mA (mehr sind auch am Robo TX-Controller nicht vorgesehen).

H-Bridges werden nicht nur für normale Gleichstrommotoren (2 Anschlüsse) eingesetzt, sondern auch bei der Ansteuerung von Schrittmotoren(4 Anschlüsse). Daher sind fertige Module (" H-Bridge Stepper Driver") für den Anschluss zweier Gleichstrommotoren geeignet. Ein solches Modul, was zwei Fischertechnik-Motoren antreiben kann, kostet mit Versand aus China ca. 1€.

Die Geschwindigkeit wird geregelt, indem man einen pulsweitenmodulierten Ausgang des Arduinos verwendet.

Die Spannung der Fischertechnik-Motoren beträgt bei den alten grauen Motoren 6,8V, bei den neueren 9V. Sonderfall sind die Solarmotoren mit 2 bzw. 3V.

bester4221  12.07.2017, 02:39

Ergänzend: Neben der beschriebenen Ansteuerung mit zwei Pins, welche direkt die H-Bridge steuern (zum Drehen des Motors muss also ein Ausgang high, der andere low sein, also Bitmuster 10 oder 01; bei 11 oder 00 steht der Motor) gibt es noch die Variante von Motorshields, bei denen ein Pin an/aus und der andere die Drehrichtung steuert.

Der Vorteil der ersten Variante ist, dass die Ausgänge auch einzeln genutzt werden können - also statt eines Motors auch zwei Lampen oder Magnetventile angeschlossen werden können.

Die zweite Variante hat den Vorteil, dass nur für den an/aus-Anschluss ein pulsweitenmodulierter Ausgang benötigt wird, um die Motorgeschwindigkeit zu regeln. Daher ist diese Variante z.B. bei dem NodeMCU-Motorshield vorgesehen, denn dort sind nur wenige Ausgänge pulsweitenmoduliert; D1 und D2 steuern über PWM die Geschwindigkeit der Motoren A und B, D3 und D4 die Richtung (daher auch die "komische" Zuordnung zu den Motorausgängen: D1+3 für Motor A, D2+4 für Motor B).

Die dritte Steuerung benutzt den i2c-Bus des Mikrocontrollers. Hier werden also Geschwindigkeits- und Richtungsinformation an das Motorcontrollerbord gesendet. Weiterentwickelte Bords können sogar Encoderanschluss haben und nach Erreichen der gewünschten Impulszahl stoppen; ggf. mit sanftem Start und Stopp. Derartige Bords sind teurer (deutlich - können durchaus 3- stellige Eurobeträge als Fertigmodul kosten). Im Selbstbau kann man allerdings einen Arduino als i2c-Slave einsetzen und dort einen Motortreiber an i/o-Ports anschließen (ebenso einen Encodereingang auswerten).

Um Fischertechnik mittels Mikrocontrollern mit Arduino-Entwicklungsumgebung (also Arduinos und Clone oder ESP usw.) anzusteuern, drängt sich bei den echten Arduinos und den Clonen die erste Variante auf (universell nutzbare Ausgänge) bei ESPs hingegen die zweite (eh nur wenige I/Os möglich, nur wenig PWM). Die ESPs haben allerdings die WLAN-Fähigkeit, so dass man mehrere vernetzen kann.

2

Das geht mit Sicherheit, aber wahrscheinlich nicht direkt über seine Pins.

Man müsste wissen mit welcher Spannung er betrieben wird, wie viel Strom er zieht, wie viele Anschlüsse er hat etc... Danach kann man weiteres klären.
Ansteuerung wäre über Relais, aber auch über Transistoren möglich, dann könntest du sogar die Drehzahl regulieren.