Frag- Mehrere Servomotoren Ansteuern.

Hey Leute, ich hab ein Schulprojekt und hab eine Frage. So wie ich es bis jetzt sehe ist das Problem, wenn man mehrere Servomotoren ansteuern will, dass der Arduino nicht genug Strom gibt. Was ist, der Unterschied jetzt zwischen einen Servotreiber für den Arduino (PCA9685) und wenn ich nur eine externe Stromquelle für die Servomotoren benutze und sie dann an den Arduino schlisse?

Es handelt sich um Servomotoren aus dem Modelbau.

Hoffe die Frage, ist verständlich formuliert :slight_smile:

Das siehst du falsch.
Die Ansteuerung ist nicht dein Problem, sondern die Spannungsversorgung.

Wenn du die Servos aus den 5V eines Arduinos betreiben willst, geht das nicht.
Du musst eine externe Spannung an die Servos bringen und den GND verbinden.
Dann sollte das laufen.

Rechne mit bis zu 1A pro servo bei der Bemessung des externen Netzteils.
Grüße Uwe

Daniel9834:
Hoffe die Frage, ist verständlich formuliert :slight_smile:

Ich weiß nicht, was das für ein Teil ist, von dem Du redest. Und Du kannst problemlos mehrere Servos an den Arduino anschließen - sofern der Arduino nur das Steuersignal liefern muss. Die Energieversorgung der Servos muss separat bereitgestellt werden.

Wenn Du Modellbau-Servos benutzt, die mit 5 V laufen:

GND aller Energiequellen miteinander verbinden - wenn es mehr als eine gibt.
Dann: GND aller Servos an GND, Vcc aller Servos an 5 V Versorgung (nicht an den 5 V-Anschluss des Arduinos!), die Steuerleitungen der Servos an jeweils einen Pin. Diese Pins benutzt Du dann, um jeden Servo separat anzusteuern.

Vielleicht steht auch hier etwas Interessantes.

Probiere zunächst nur mal mit einem Servo. Wenn das funktioniert, ist das Anschließen und Ansteuern weiterer Servos nur noch ein bisschen Strippenzieherei.

Gruß

Gregor

gregorss:
.....
Probiere zunächst nur mal mit einem Servo. Wenn das funktioniert, ist das Anschließen und Ansteuern weiterer Servos nur noch ein bisschen Strippenzieherei.

Das wäre dann aber zu einfach. Wenn schon ein Arduino, dann gehört der Sketch auch dazu.

Übrigens die kleinen, einfachen Modellbauservos kannst du (Daniel9834) auch einzeln (also ein Stück zur Zeit) auch direkt am Arduino testen.
Einfach mal ins Datenblatt schauen, bei vielen geht das.

Danke für all die Antworten so schnell, habt meine Frage super beantwortet. Habe es jetzt mit externer Spannungsquelle probiert und hat bis jetzt alles funktioniert (mit einem Servo), muss es jetzt noch mit mehreren servos probieren, bin aber zuversichtlich das alles Funktioniert :slight_smile:

Daniel9834:
Danke für all die Antworten so schnell, habt meine Frage super beantwortet. Habe es jetzt mit externer Spannungsquelle probiert und hat bis jetzt alles funktioniert (mit einem Servo), muss es jetzt noch mit mehreren servos probieren, bin aber zuversichtlich das alles Funktioniert :slight_smile:

Das wird es auch, vorausgesetzt der Sketch passt.

Hi

Unterschied zum Servo-TreiberKontroller PCA9685:
Der Arduino hat Zeit :wink:
Die Generierung der Servo-Signale übernimmt der externe Chip - Dem muß nur gesagt werden, von wann bis wann das Signal anstehen soll - und in welcher Frequenz Der Das machen soll (man kann damit nicht nur Servos ansteuern - Damit geht so ziemlich Alles, was ein irgendwie geartetes Rechteck-Signal haben will).

Wenn Der Arduino die Servos ansteuern soll, braucht Der dafür PWM-fähige Pins - Diese hängen intern mit einem Timer zusammen - der Mega kommt immerhin auf 12 (sofern ich mich nicht verzählt habe).

MfG

Edit Wie der Doc in #11 korrekt anmerkt, ist der PCA nicht zum Treiben der Servos vorgesehen, sondern NUR zum Generieren der Signale, daher Treiber in Kontroller getauscht (hatte beim L297 nachgeschaut ... Das ist auch kein Treiber :wink: )

postmaster-ino:
Wenn Der Arduino die Servos ansteuern soll, braucht Der dafür PWM-fähige Pins - Diese hängen intern mit einem Timer zusammen - der Mega kommt immerhin auf 12 (sofern ich mich nicht verzählt habe).

Nein, braucht er nicht.
Die Servo-Library kann eine Steuerung auf jedem digitalen Pin ermöglichen.

1 Like

Hi

Danke der Korrektur

postmaster-ino:
Hi

Unterschied zum Servo-Treiber PCA9685:

Wenn Der Arduino die Servos ansteuern soll, braucht Der dafür PWM-fähige Pins - Diese hängen intern mit einem Timer zusammen - der Mega kommt immerhin auf 12 (sofern ich mich nicht verzählt habe).

MfG

Der Arduino UNO ATmega328 kann mittels der Servo-Bibliothek 12 Servos ansteuern; ein MEGA 2560 24 bzw 48 Servo ansteuern. Durch die Verwendung von Timern funktioniert bei bestimmten Pins analogWrite() (PWM) nicht mehr funktioniert.

Der PCA9685 hat 16 Ausgänge und es können mehrere PCA9685 am I2C Bus angesteuert werden.

6 hardware address pins allow 62 PCA9685 devices to be connected to the same I2C-bus

Ich weiß nicht wieso 62 Stück. 62 ist eine etwas komische Zahl. Darum könnte man theoretisch 992 Servos ansteuern. Praktisch kann der I2C Bus aber nicht so viele I2C Slaves (PCA9685 IC's) treiben und darum sind 4-8 praktisch realistisch. Darum sind aber immernoch 64 bis 128 Servos möglich.

Grüße Uwe

1 Like

Hallo,

nochmal was zur Klarstellung für Daniel. Ein PCA9685 ist kein Treiber. Er versorgt nichts. Er stellt nur die Steuersignale zur Verfügung.