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?
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.
Daniel9834:
Hoffe die Frage, ist verständlich formuliert
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.
Probiere zunächst nur mal mit einem Servo. Wenn das funktioniert, ist das Anschließen und Ansteuern weiterer Servos nur noch ein bisschen Strippenzieherei.
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
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
Unterschied zum Servo-TreiberKontroller PCA9685:
Der Arduino hat Zeit
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 )
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.
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.