- Potrebný materiál
- Schéma zapojenia
- Čo je to servomotor?
- Vysvetlenie kódu Arduino
- Ovládanie viacerých servos pomocou Arduino - práca:
Použitie jedného alebo dvoch servo s Arduinom je jednoduché, ale čo ak chceme použiť viac ako jeden servomotor?
Tu vám ukážeme, ako ovládať viac servomotorov pomocou Arduina. Pripojenie viacerých servomotorov k Arduinu sa javí ako jednoduché, ale ak pripojíme všetky napájacie piny servopohonov k Arduinu, nebudú fungovať správne z dôvodu nedostatku dostatočného prúdu na pohon všetkých motorov. Pre motory teda musíte použiť samostatné napájanie, buď z niektorých adaptérov (5v 2A), alebo z kvalitných 9v batérií.
Potrebný materiál
- Arduino UNO
- Servo motor
- Zdroj
- Nepál
- Pripojenie drôtov
Schéma zapojenia
Čo je to servomotor?
Skôr ako pôjdeme do podrobností, mali by sme najskôr vedieť o servomotore.
Servomotory sú k dispozícii v rôznych tvaroch a veľkostiach. Servomotor bude mať hlavne vodiče, jeden je na kladné napätie, druhý na zem a posledný na nastavenie polohy. ČERVENÝ vodič je pripojený k napájaniu, čierny vodič je pripojený k zemi a ŽLTÝ vodič je pripojený k signálu.
Servomotor je kombináciou jednosmerného motora, systému riadenia polohy a prevodov. Poloha hriadeľa jednosmerného motora je nastavovaná riadiacou elektronikou v serve na základe prevádzkového pomeru signálu PWM k vývodu SIGNAL.
Jednoducho povedané, riadiaca elektronika nastaví polohu hriadeľa riadením jednosmerného motora. Tieto údaje týkajúce sa polohy hriadeľa sa posielajú cez kolík SIGNAL. Polohové údaje do riadenia by sa mali odosielať vo forme signálu PWM cez kolík Signal servomotora.
Frekvencia signálu PWM (Pulse Width Modulated) sa môže líšiť v závislosti od typu servomotora. Dôležitá je tu POVINNOSŤ PWM signálu. Na základe tohto POTREBNÉHO POMERU riadiaca elektronika nastaví hriadeľ.
Ako je znázornené na obrázku nižšie, pre posunutie hriadeľa na 9o hodín musí byť ZAPÍNACIA DÁVKA 1/18. 1ms času ZAPNUTIA a 17ms času VYPNUTIA v signáli 18ms.
Aby sa hriadeľ mohol posunúť na 12 hodín, musí byť čas zapnutia signálu 1,5 ms a čas vypnutia 16,5 ms. Tento pomer je dekódovaný riadiacim systémom v seru a na základe neho upravuje polohu. Tento PWM je tu generovaný pomocou ARDUINO UNO.
Pred pripojením serv na Arduino môžete vyskúšať svoje servo pomocou tohto testovacieho obvodu servomotorov. Skontrolujte tiež naše servoprojekty uvedené nižšie:
- Ovládanie servomotora pomocou Flex senzora
Vysvetlenie kódu Arduino
Kompletný Arduino kód pre Multiple Servo Control je uvedený na konci.
Arduino má knižnicu pre servomotory a zvláda všetky veci súvisiace s PWM na otáčanie serva, stačí zadať uhol, do ktorého sa chcete otočiť, a je tu funkcia servo1.write (uhol); ktorý natočí servo do požadovaného uhla.
Takže tu začíname definovaním knižnice pre servomotor.
#include
V nasledujúcom kóde inicializujeme všetky štyri servá ako Servo1, Servo2, Servo3 a Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Potom nastavujeme všetky vstupné piny serva na Arduino. Ako je uvedené v nasledujúcom kóde, Servo1 je pripojený k 3. pinu Arduina. Kolíky môžete meniť podľa seba, ale majte na pamäti, že by to mal byť pin PWM. Používanie serva s digitálnymi kolíkmi Arduina nie je spoľahlivé.
void setup () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Teraz vo funkcii void loop () iba otáčame celé servo z 0 na 180 stupňov a potom o 180 na 0 stupňov. Oneskorenie použité v nasledujúcom kóde sa používa na zvýšenie alebo zníženie rýchlosti serva, pretože ovplyvňuje zvýšenie alebo zníženie rýchlosti premennej „i“.
void loop () { for (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); oneskorenie (10); } pre (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); oneskorenie (10); } }
Ovládanie viacerých servos pomocou Arduino - práca:
Všetci čelíme súčasným problémom, keď používame viac ako dve servá s jedným Arduino. Jediným riešením je pripojiť externý zdroj napájania s príslušnou veľkosťou prúdu (v tomto projekte som použil 2A s napájaním 9v). Pre externé napájanie môžete použiť adaptéry, RPS (regulovaný zdroj napájania) alebo kvalitné 9V batérie, zatiaľ čo môžete na napájanie malého serva používať USB port notebooku. Ak chcete použiť externé napájanie, musíte iba skratovať uzemnenie Arduino na externé napájanie.
Pomocou nižšie uvedeného kódu Arduino naprogramujte svoje Arduino a pripojte všetky servomotory tak, ako je to znázornené na schéme zapojenia, so správnym napájaním motorov. Všetky servá preto budú pracovať bez prerušenia.