Welche Motoren kann ich mit einem Arduino steuern?

Hallo,

ich will am Montag mit einer kleinen Gruppe anfangen, etwas mit einem Arduino zu bauen.
Für den Anfang wollen wir eine Art Auto bauen, welches durch 2 Motoren angetrieben wird.
Auf dem Fahrzeug soll sich ein Drehbares Objekt befinden.

Da ich mich mit Elektronik nicht so sehr auskenne, bin ich nichtsahnend in einen Elektronikmarkt gegangen und habe mich da mal umgeschaut.
Wider Erwarten gibt es dort ja eine gigantische Auswahl an Motoren in Preisklassen von 5€ bis 100€, bei denen es mir nicht möglich war, irgendwelche Unterschiede zu erkennen.

Mein Wissensstand bisher:
Ich kann an den Arduino Motoren anschließen und diese dann mit Strom versorgen.
Der Arduino liefert, je nach dem, wie ich den Pin konfiguriere 0V - 5 V.

Ich habe mir gedacht: Zum Bewegen des Fahrzeuges nehme ich "normale" Motoren und für das drehbare Objekt einen Schrittmotor

Da dann gleich auch die erste Frage: Ist ein Servo das gleiche, wie ein Schrittmotor? Eignet sich ein Schrittmotor dafür? Ich möchte das Objekt langsam drehen können und dachte, dass Schrittmotoren langsam sind eignet sich das. (Beispielbild eines Servos, den ich gefunden habe:

Meine zweite Frage: Ich habe mir mehrere "normale" Motoren angesehen, da ich wissen wollte welcher zum Antrieb des Fahrzeuges geeignet ist. Es muss nicht sonderlich schnell fahren. Ich habe jetzt zwei Motoren rausgesucht, bei denen ich dachte, die könnte ich evtl. benutzen:

Ich würde mich freuen, wenn ihr mich da beraten könntet :slight_smile:

hujiko:
Der Arduino liefert, je nach dem, wie ich den Pin konfiguriere 0V - 5 V.

Am 5V Pin des Arduino darfst Du max. 200 mA abzapfen.
Für mehr Strom benötigt der Motor eine eigene Stromversorgung.
Und er benötigt ein Treiber-Board, das mit den Steuersignalen des Arduino, der Stromversorgung für den Motor und dem Motor verbunden wird.

hujiko:
Da dann gleich auch die erste Frage: Ist ein Servo das gleiche, wie ein Schrittmotor? Eignet sich ein Schrittmotor dafür?

Ein Servo ist üblicherweise ein Stellmotor mit eigenem Treiber, der nur in einem bestimmten Winkelbereich (<360°) ein bischen hin- und herdrehen kann. Ein Servo dreht also nicht rundherum im Kreis. Dafür brauchst Du bei einem Servo keinen Treiber (ist schon eingebaut) und er muß daher nur an einen Arduino-Steuerpin und an seine Stromversorgung angeschlossen werden.

Ein Schrittmotor kann rundherum drehen.

Ein Gleichstrommotor sowieso.

Die Preisunterschiede, z.B. bei Gleichstrommotoren, kommen durch Unterschiede in Leistung, Drehzahl, Qualität, Baugröße u.s.w. zustande. Wenn Du ein Fahrzeug mit Gleichstrommotoren betreiben möchtest, würde ich mir auch gleich Gedanken über eine Kombination mit einem Getriebe machen: Die Drehzahl von Gleichstrommotoren ist viel höher als die Raddrehzahl eines Fahrzeugs.

Es gibt auch fertige Roboter-Fahrgestelle, aus Plattform und Antrieb, in ganz unterschiedlichen Größen und Preisklassen. Beim Versender mit dem großen C beispielsweise:
http://www.conrad.de/ce/de/product/191491/Arexx-Roboter-Fahrgestell-ARX-CH09
http://www.conrad.de/ce/de/product/191152/Arexx-Fahrgestell-Robby-RP5RP6-Roboter
Oder mal bei eBay nach "robot platform" suchen.

jurs:
Am 5V Pin des Arduino darfst Du max. 200 mA abzapfen.
Für mehr Strom benötigt der Motor eine eigene Stromversorgung.
Und er benötigt ein Treiber-Board, das mit den Steuersignalen des Arduino, der Stromversorgung für den Motor und dem Motor verbunden wird.

Also wenn ich das richtig verstanden habe, dann würde zum Beispiel der Motor auf dem Ersten Bild passen, da er Spannungen von 4,8V bis 6V unterstützt.
Sollte der Motor weniger als 200mA brauchen, dann kann ich ihn direkt an GND und einen Pin des Adruinos anschließen.
Sollte der Motor mehr als 200mA brauchen, dann muss ich den Motor mit einer externen Stromquelle betreiben und kann mit dem Adruino nur die Stromversorgung herstellen/unterbrechen?
Und es gibt bereits Platinen, die mir diese Arbeit abnehmen und die heißen "Treiber-Board"?

jurs:
Ein Servo ist üblicherweise ein Stellmotor mit eigenem Treiber, der nur in einem bestimmten Winkelbereich (<360°) ein bischen hin- und herdrehen kann. Ein Servo dreht also nicht rundherum im Kreis. Dafür brauchst Du bei einem Servo keinen Treiber (ist schon eingebaut) und er muß daher nur an einen Arduino-Steuerpin und an seine Stromversorgung angeschlossen werden.

Ein Schrittmotor kann rundherum drehen.

Ein Gleichstrommotor sowieso.

Das heißt dass ich einen Servo benutzen kann, um die Räder bei einer Lenkung zu verstellen?
Um das Objekt auf dem Fahrzeug zu drehen würde also auch ein Gleichstrommotor reichen?

jurs:
Die Preisunterschiede, z.B. bei Gleichstrommotoren, kommen durch Unterschiede in Leistung, Drehzahl, Qualität, Baugröße u.s.w. zustande. Wenn Du ein Fahrzeug mit Gleichstrommotoren betreiben möchtest, würde ich mir auch gleich Gedanken über eine Kombination mit einem Getriebe machen: Die Drehzahl von Gleichstrommotoren ist viel höher als die Raddrehzahl eines Fahrzeugs.

Da war ich mir auch noch nicht so sicher. Ich dachte zuerst daran, Motoren zu verwenden, die sich generell nicht so schnell drehen.
Aber ich glaube, deine Idee mit dem Getriebe ist da wesentlich besser.

jurs:
Es gibt auch fertige Roboter-Fahrgestelle, aus Plattform und Antrieb, in ganz unterschiedlichen Größen und Preisklassen. Beim Versender mit dem großen C beispielsweise:
http://www.conrad.de/ce/de/product/191491/Arexx-Roboter-Fahrgestell-ARX-CH09
http://www.conrad.de/ce/de/product/191152/Arexx-Fahrgestell-Robby-RP5RP6-Roboter
Oder mal bei eBay nach "robot platform" suchen.

Danke, ich habe dem Laden mit C gestern einen Besuch abgestattet und dort sind auch die Fotos entstanden. Solch einen Bausatz hatte ich dort nicht gefunden. Da noch ein nicht gerade all zu kleiner Aufbau auf das Fahrzeug drauf soll (falls wir es denn hin bekommen :wink: ) sind die meisten Fahrgestelle leider nicht ganz passend. Wobei mit das Kettengetriebene Gestell "Robby" schon sehr zugesagt hat. Das werde ich mal mit meinem Team besprechen.

Der Arduino kann insgesamt max. 200mA liefern, ein einzelner Pin aber nur 40mA. Für Motoren brauchst Du eigentlich immer eine eigene Stromversorgung.

Was die Motorsteuerung betrifft:

Servos kannst Du direkt ansteuern. Alternativ gibt es auch Servocontroller (http://www.watterott.com/de/Micro-Maestro-6-Channel-USB-Servo-Controller-Assembled), die machen die Ansteuerung einfacher und bieten auch noch etwas mehr Möglichkeiten was sonst nur mit einigem Aufwand über Software erreichbar wäre.

Schrittmotoren (Stepper) benötigen einen Treiber für die Steuerung. Wenn der Motor nicht mehr als 750mA benötigt, ware der hier zu empfehlen: http://www.watterott.com/de/EasyDriver-v4-Schrittmotor-Treiber

Da das Fahrzeug ja wahrscheinlich auch rückwärts fahren soll, brauchst Du für normale Gleichstrommotoren auch eine Steuerung. Mit denen kenn ich mich jetzt nicht so aus, hier wäre mal eine Auswahl: Motor driver: DC motor - Watterott electronic

Wenn der Aufbau nur einen begrenzten Drehwinkel hat, würde ich eher einen Servo anstelle eines Stepper empfehlen. Für die Lenkung sowieso.

Für den Antrieb eines Fahrzeugs sind eigentlich alle Elektromotoren zu schnell, man verwendet da immer ein Getriebe. Dies hat vor allem auch den Vorteil, dass dann der Motor mehr Kraft hat bzw kleiner ausfallen kann.
Hier wieder eine Auswahl: http://www.watterott.com/de/Robotik/Motoren/Getriebemotoren
Für ein Fahrzeug wäre z.B. so etwas interessant: http://www.watterott.com/de/Tamiya-70168-Double-Motor-Getriebebox

Ach ja, so als zusätzlicher Tip: Conrad ist ganz brauchbar, wenn man ihn um die Ecke hat und grad ein paar Kleinigkeiten braucht (dann kauf ich da auch ein). Aber in der Regel ist er bei den meisten Elektroniksachen viel zu teuer (das ist einfach eine Tatsache). Wobei ich dafür natürlich Verständnis habe. Schließlich müssen die Leuts bezahlt werden, die bei den Bauteilen rumstehen und darauf warten dass einer kommt und 5 Widerstände für 50 Cent kauft.

hujiko:
Also wenn ich das richtig verstanden habe, dann würde zum Beispiel der Motor auf dem Ersten Bild passen, da er Spannungen von 4,8V bis 6V unterstützt.

Nein, in Deinem ersten Posting sehe ich einen Servo für 4,8 bis 6 Volt, und die brauchen meistens mehr als 200 mA. Ein ganz winziger "Micro"-Servo ginge vielleicht noch. Aber bereits mittelkräftige Servos müßten direkt an ein eigenes Akku-Pack drangehängt werden, z.B. 4xAA Akku = 4,8 Volt, ohne dass der Strom über den Arduino-Spannungsregler läuft. Der würde zu heiß werden und durchbrennen.

Der einzige Motor in Deinem ersten Posting zieht bereits im Leerlauf 0,25A = 250 mA, also mehr als Du am Arduino entnehmen darfst. Und bei Vollast zieht schon dieser kleine Motor 1 A = 1000 mA.

hujiko:
Sollte der Motor weniger als 200mA brauchen, dann kann ich ihn direkt an GND und einen Pin des Adruinos anschließen.

NEIN!
Dann darfst Du den Motor an GND und 5V (die geregelte Spannung nach dem Spannungsregler) anschließen und 5V/200mA entnehmen.

Die digitalen Schalt-Pins am Arduino dürfen nur mit max. 40 mA belastet werden.

hujiko:
Sollte der Motor mehr als 200mA brauchen, dann muss ich den Motor mit einer externen Stromquelle betreiben und kann mit dem Adruino nur die Stromversorgung herstellen/unterbrechen?
Und es gibt bereits Platinen, die mir diese Arbeit abnehmen und die heißen "Treiber-Board"?

Ich bin hier nicht der Motorenspezialist und habe nur Grundkenntnisse, aber ich versuche es Dir mal zu erklären:

Suche mal bei eBay nach "arduino motor treiber", "arduino motor diver" oder "arduino h bridge", für Angebote von China-Versendern auch mit der Einstellung "weltweit"!

So ein Motortreiber-Board hat zwei Seiten: Eine Steuerseite für den Anschluß an Arduino-Pins zur Ansteuerung und eine Power-Seite für den Anschluß an einer ausreichenden Stromversorgung und den Motor.

Für einen Gleichstommotor wird ein Motortreiber mit einer sogenannten H-Bridge verwendet. Mit einem Enable-Pin gibst Du dem Treiber vor, ob der Motor vorwärts oder rückwärts drehen soll (Fahrzeuge sollen ja meistens auch rückwärts fahren können) und mit einem PWM-Pin gibst Du dem Treiber die Drehzahl vor, ob der Motor langsam oder schnell drehen soll.

Manche Motortreiber können sowohl zur Ansteuerung von Schrittmotoren als auch zur Ansteuerung von Gleichstommotoren verwendet werden, aber wann was möglich ist, bin ich überfragt. Wenn Du einkaufst, würde ich auf die maximalen Leistungsdaten der Motortreiber achten und ob es ein "Stepper Driver" (für Schrittmotoren) oder eine "H Bridge" (für DC Gleichstommotoren) ist.

hujiko:
Das heißt dass ich einen Servo benutzen kann, um die Räder bei einer Lenkung zu verstellen?

Ja, das ist der typische Einsatzzweck von Servos. Servos kommen aus dem Modellbau mit Funkfernsteuerungen und sie werden seit Jahrzehnten genau dafür verwendet: Als Stellmotoren für Lenkung eines Landfahrzeugs, für Höhen-, Seiten- und Querruder von Flugzeugen, für die Verstellung von Segelwinden und Ruder bei Booten etc.

hujiko:
Um das Objekt auf dem Fahrzeug zu drehen würde also auch ein Gleichstrommotor reichen?

Wenn sich das Objekt langsamer als mit mehreren tausend Umdrehungen pro Minute drehen soll, möglicherweise eher ein "Getriebemotor", also eine Kombination aus Getriebe und Motor. Oder ein Steppermotor, den man durch Vorgabe von Schaltschritten sehr exakt um bestimmte Drehwinkel drehen kann.

hujiko:
Da war ich mir auch noch nicht so sicher. Ich dachte zuerst daran, Motoren zu verwenden, die sich generell nicht so schnell drehen.
Aber ich glaube, deine Idee mit dem Getriebe ist da wesentlich besser.

Wie gesagt: Die Drehzahl kann mit dem Motortreiber geregelt werden, aber die Übersetzung zwischen "Maximaldrehzahl des Motors" und "Maximaldrehzahl des Objekts" müßte ein Getriebe machen.

jurs:
Danke, ich habe dem Laden mit C gestern einen Besuch abgestattet und dort sind auch die Fotos entstanden. Solch einen Bausatz hatte ich dort nicht gefunden. Da noch ein nicht gerade all zu kleiner Aufbau auf das Fahrzeug drauf soll (falls wir es denn hin bekommen :wink: ) sind die meisten Fahrgestelle leider nicht ganz passend. Wobei mit das Kettengetriebene Gestell "Robby" schon sehr zugesagt hat. Das werde ich mal mit meinem Team besprechen.

Das größte fertige Fahrgestell für Roboter von Conrad ist das:
http://www.conrad.de/ce/de/product/191428/Arexx-Allrad-Gelaende-Roboterplattform-JSR-6WD/?ref=detview1&rt=detview1&rb=2
Vollgeländegängig mit 6-Rad Antrieb, 43cm Länge und 31cm Breite, falls Du irgendwas Größeres vorhast.