PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 5 Motoren mit dem Arduino UNO ansteuern



Uno
04.03.2016, 18:05
Hallo zusammen,

ich kann mir vorstellen, dass diese Frage hier nicht das erste mal gestellt wird, aber ich habe längere Zeit das Netz durchsucht und bin noch nicht 100% fündig geworden:
Welche Hardware (z. B. Shields) benötige ich denn, um 5 Servos separat anzusteuern?

Bei den Servos handelt es sich um dieses Modell hier: Micro Servo - High Powered, High Torque Metal Gear (https://www.adafruit.com/products/2307)
Wäre beispielsweise dieses (https://www.adafruit.com/products/2928) Board hier geeignet? Und wie sieht es mit der Stromversorgung aus?

Wie gesagt habe ich mich schon informiert, aber ich bin absoluter Anfänger (nicht in der Programmierung, aber in Sachen Arduino) und möchte sicher sein. Um konkrete Tipps für mich wäre ich sehr dankbar.

Vielen Dank im Voraus!

Uno

i_make_it
05.03.2016, 10:34
Gar keine?
Ein Stück Lochraster Platine, etwas Litze und einreihige Stiftleiste reichen.

https://www.arduino.cc/en/Main/ArduinoBoardUno

Digital I/O Pins 14 (of which 6 provide PWM output)

Der Uno hat also 6 PWM fähige digital IOs.

https://www.arduino.cc/en/Hacking/PinMapping168

Pin 3, 5, 6, 9, 10, und 11.

Man braucht also 6 Stück einreihige Stiftleiste mit je 3 Pins für die Servos und Stiftleisten um die UNO Pins zu verbinden.

GND und Vcc an den Servo Stiftreihen werden jeweils verbunden mit GND vom UNO sowie der Versorgungsspannung für die Servos.

Dann mit Litze die Signalpins der Servostiftreihen mit den UNO PWM Pins verbinden.
Damit ist die Hardware fertig.
Werkzeug, Lötkolben, Lötzinn, Seitenschneider und eine Pucksäge oder ein Messer um die Platine zuzuschneiden.

Der Rest ist Software. Dank Servo Library nicht besonders kompliziert.

Eine Karte die bis zu 16 Servos erlaubt wäre:
https://www.adafruit.com/product/815

HaWe
05.03.2016, 10:37
aber Achtung, ein paar pwm-Pins funktionieren nicht, wenn man selber bestimmte Interrupts im Programm benutzt!

i_make_it
05.03.2016, 11:36
Da nur nach 5 Servos an einem UNO gefragt wird und keine Einschränkungen genannt wurden, habe ich einen minimalistischen externen Aufbau beschrieben, der natürlich entsprechende Resourcen des UNO bindet.
Sowohl das 8er Adafruit Servo Board als auch das 16er, werden über I2C angesteuert, brauchen wenn man in der Hauptschleife mit einem Timer "micros()" arbeitet um zyklisch neue Befehle zu senden, keinen IRQ.
Im Gegensatz zu einer IRQ Lösung, die eine maximale Zykluszeit garantiert, ha tdie Timer Variante allerdings nur eine minimalzeit nach der frühestens reagiert wird. hier muß man halt die Gesammtlaufzeit selbst im Auge behalten, sonst kann auch was gehörig schief gehen.

Die Servostromversorgung für die Servos ist üblicherweise getrennt von der Controllerversorgung, damit es keine Spannungseinbrüche beim Controller gibt wenn die Servos viel Strom ziehen.
Entweder 7,2V für die Servos und da dann eine 5V Versorgung für den Controller abgreifen, plus im 5V Teil entsprechende Stützelkos um kurzzeitige Einbrüche zu überbrücken, oder wie es beim Modellbau (wo die Servos ja herkommen) üblich ist einen "Empfänger-"(Controller)akku(Stromversorgung) und einen für die Servos.