- Potřebný materiál
- Kruhový diagram
- Co je to servomotor?
- Vysvětlení kódu Arduino
- Ovládání více serv pomocí Arduina - práce:
Použití jednoho nebo dvou serv s Arduinem je snadné, ale co když chceme použít více než jeden servomotory?
Zde vám ukážeme, jak ovládat více servomotorů pomocí Arduina. Připojení více servomotorů k Arduinu se zdá být snadné, ale pokud připojíme všechny servoservice k napájecím kolíkům Arduino, nebudou fungovat správně kvůli nedostatku dostatečného proudu pro pohon všech motorů. Musíte tedy použít samostatný napájecí zdroj pro motory, buď z některých adaptérů (5v 2A), nebo z kvalitních 9v baterií.
Potřebný materiál
- Arduino UNO
- Servomotor
- Zdroj napájení
- Nepájivá deska
- Připojení vodičů
Kruhový diagram
Co je to servomotor?
Než začneme podrobně, měli bychom nejprve vědět o servomotorech.
Servomotory jsou k dispozici v různých tvarech a velikostech. Servomotor bude mít hlavně vodiče, jeden je pro kladné napětí, druhý pro zem a poslední pro nastavení polohy. ČERVENÝ vodič je připojen k napájení, černý vodič je připojen k zemi a ŽLUTÝ vodič k signálu.
Servomotor je kombinací stejnosměrného motoru, systému řízení polohy, převodů. Poloha hřídele stejnosměrného motoru je nastavena řídicí elektronikou v servu na základě pracovního poměru signálu PWM k signálu SIGNAL.
Řídicí elektronika jednoduše nastaví polohu hřídele ovládáním stejnosměrného motoru. Tato data týkající se polohy hřídele se odesílají přes kolík SIGNAL. Údaje o poloze do řízení by měly být zasílány ve formě signálu PWM přes pin Signal servomotoru.
Frekvence signálu PWM (Pulse Width Modulated) se může lišit podle typu servomotoru. Důležitá je zde ZÁVAŽNOST PWM signálu. Na základě tohoto POTŘEBNÍHO POMĚRU nastaví řídicí elektronika hřídel.
Jak je znázorněno na obrázku níže, pro posun hřídele na 9o hodin musí být ZAPNUTÍ POMĚR 1 / 18.ie. 1ms času zapnutí a 17ms času vypnutí v signálu 18ms.
Aby se hřídel posunul na 12o hodin, musí být doba zapnutí signálu 1,5 ms a doba vypnutí by měla být 16,5 ms. Tento poměr je dekódován řídicím systémem v servu a podle něj upravuje polohu. Tento PWM zde je generován pomocí ARDUINO UNO.
Před připojením serv k Arduinu můžete otestovat své servo pomocí tohoto testovacího obvodu servomotoru. Zkontrolujte také naše níže uvedené Servo projekty:
- Ovládání servomotoru pomocí snímače Flex
Vysvětlení kódu Arduino
Kompletní Arduino kód pro Multiple Servo Control je uveden na konci.
Arduino má knihovnu pro servomotory a zpracovává všechny věci související s PWM pro otáčení serva, stačí zadat úhel, do kterého chcete otáčet, a je zde funkce servo1.write (úhel); který natočí servo do požadovaného úhlu.
Tady tedy začínáme definováním knihovny pro servomotor.
#zahrnout
V níže uvedeném kódu inicializujeme všechna čtyři serva jako Servo1, Servo2, Servo3 a Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Poté nastavíme všechny vstupní piny serva pomocí Arduina. Jak je ukázáno v níže uvedeném kódu, Servo1 je připojen ke 3. kolíku Arduina. Můžete změnit piny podle sebe, ale mějte na paměti, že by to měl být PWM pin. Použití serva s digitálními piny Arduina není spolehlivé.
void setup () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Nyní ve funkci void loop () právě otáčíme celé servo z 0 na 180 stupňů a poté o 180 na 0 stupňů. Zpoždění použité v níže uvedeném kódu se používá ke zvýšení nebo snížení rychlosti serva, protože ovlivňuje zvyšování nebo snižování rychlosti proměnné 'i'.
void loop () { for (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); zpoždění (10); } for (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); zpoždění (10); } }
Ovládání více serv pomocí Arduina - práce:
Všichni čelíme současným problémům při používání více než dvou serv s jedním Arduino. Jediným řešením je připojení externího napájecího zdroje s odpovídající velikostí proudu (v tomto projektu jsem použil 2A s napájením 9v). Pro externí napájecí zdroj můžete použít adaptéry, RPS (Regulovaný napájecí zdroj) nebo kvalitní 9V voltové baterie, případně můžete k napájení malého serva použít USB port vašeho notebooku. Chcete-li použít externí napájení, stačí zkratovat uzemnění Arduino na zem externího napájení.
Pomocí níže uvedeného kódu Arduino naprogramujte své Arduino a připojte všechny servomotory, jak je znázorněno na schématu zapojení, se správným napájením motorů. Všechna serva proto budou spolupracovat bez jakéhokoli přerušení.