Ovládání více servomotorů najednou

Použití jednoho či dvou servo motorů je jednoduché, ale co když potřebujeme použít motorů více?
V tomto článku si ukážeme, jak použít v programu více servomotorů najednou. Nejde totiž jen o propojení a naprogramování, ale musíme také použít externí zdroj napájení kvůli velkému proudovému odběru. Pro napájení je dobré použít buď spolehlivý 5V/2A zdroj nebo například kvalitní 9V baterie.

Controlling Multiple Servo Motors with Arduino

Seznam součástek:

  • Arduino UNO
  • Servo motory
  • Zdroj napájení
  • Propojovací nepájivé pole
  • Propojovací drátky

Schéma zapojení

Circuit diagram for Controlling Multiple Servo Motors with Arduino

Co je servomotor?

Předtím, než se pustíme do návodu, tak si zopakujeme, co je vlastně servo.
Servo motory jsou dostupné v mnoha různých velikostech a tvarech. Většina typů používá k propojení 3 vodiče, kdy dva jsou napájecí a jeden datový pro nastavení polohy serva. Barevně pak ve většině případů platí červená – 5V, hnědá – GND, žlutá – DATA.

Servo motor tvoří kombinace stejnosměrného motoru, pozičního systému a ozubených koleček. Pozice nastavené osy DC motoru je upravována pomocí ovládací elektroniky v servu, která je ovládaná PWM signálem přivedeným na DATA pin.
PWM frekvence se pak může měnit podle druhu serva. Důležitá informace u serva je střída PWM signálu.

Jak můžete vidět na obrázku níže, aby se osa otočila na 9 hodinu, střídá musí být 1/18. Tedy 1ms zapnuto, 17ms vypnuto.

PWM Pulses

Řízení více servomotorů s Arduinem

Každý z nás se pravděpodobně už setkal s tím, že potřebuje řídit mnoho modulů z Arduina, ale má problém je ukrmit. Tedy má problém s výstupním proudem Arduina. Jediným řešením je připojení externího zdroje napájení, kdy v tomto projektu jsme použili 9V zdroj, který dokáže dát na výstup až 2A.
Pro externí zdroje lze použít adaptéry, baterie a další. Pro správné použití je také důležité propojit země, tedy svorky GND Arduina a externího zdroje.

Controlling Multiple Servo Motors with Arduino

Pokud tedy zapojíte všechny součásti podle uvedeného schématu a nahrajete ukázkový kód, měli byste vidět pohyb všech servomotorů.

Ukázkový kód

#include 

Servo servo1; 
Servo servo2;
Servo servo3;
Servo servo4;

int i = 0;

void setup() {
  servo1.attach(3);
  servo2.attach(5); 
  servo3.attach(6); 
  servo4.attach(9); 
}

void loop() {
  for (i = 0; i < 180; i++) { servo1.write(i); servo2.write(i); servo3.write(i); servo4.write(i); delay(10); } for (i = 180; i > 0; i--) { 
    servo1.write(i);                
    servo2.write(i);     
    servo3.write(i);
    servo4.write(i);          
    delay(10);                      
  }

}

Videoukázka

 

 

Převzato a přeloženo z https://circuitdigest.com/microcontroller-projects/controlling-multiple-servo-motors-with-arduino

Arduino Uno, Mega, Senzory, Moduly za

VÝHODNOU CENU

Luboš