Ako prepojiť servomotory s Arduino

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





V tomto príspevku sa dozvieme, čo je to servomotor, ako funguje, ako pracuje s mikrokontrolérom a čím je tento motor špeciálny oproti iným motorom.

Ako nadšenec elektroniky by sme narazili na mnoho druhov motorov, tu sa pozrieme na špeciálny typ motora, ktorý sa nazýva servomotor.



Čo je to servomotor?

Servomotor alebo jednoducho servo je špeciálny typ motora, ktorý je určený na presnú kontrolu nad polohou, akceleráciou a rýchlosťou. Na rozdiel od všetkých ostatných typov motorov sa servo môže otáčať iba o 180 stupňov obojsmerne. Má mechanické prevody a zarážku, ktoré obmedzujú uhlové otáčanie serva.

Typický servomotor:

Servomotory sa používajú v robotike, CCTV kamerách, RC automobiloch, člnoch, hračkách, lietadlách atď. Servá sa používajú tam, kde nepotrebujeme pokračovať v rotačnom pohybe, ale zafixujú sa v konkrétnej polohe alebo pohybujú nejakou záťažou riadenou rýchlosťou v rámci pohyblivého uhlového limitu.



Servo nie je len motor ako iné typy, ale je to modul, ktorý kombinuje normálny jednosmerný / striedavý motor, skupinu prevodových stupňov, riadiacu elektroniku a systém spätnej väzby. Pozrime sa podrobne na všetky spomenuté fázy.

DC / AC motor, ktorý sa používa na servo module, môže byť bezkartáčový alebo kartáčovaný motor, na väčšine hobby serv sa používa jednosmerný motor a trojfázové motory sa používajú v priemyselných aplikáciách. Motor poskytuje rotačný vstup do serva. Motor sa vo vnútri serva otáča niekoľkými stovkami otáčok a výstupná rotácia je asi 50 alebo viackrát menšia ako jeho otáčky.

Ďalším stupňom je zostava prevodovky, ktorá riadi uhlové natočenie a rýchlosť serva. Prevodovka môže byť vyrobená z plastu alebo kovu v závislosti od toho, aké veľké je zaťaženie. Všeobecne platí, že jednosmerné motory pracujú s vysokými otáčkami za minútu a s nízkym krútiacim momentom, prevodové zariadenie premení nadmerné otáčky za minútu na krútiaci moment. Malý motor tak zvládne obrovské zaťaženie.

Ďalším stupňom je riadiaca elektronika, ktorá pozostáva z MOSFETov a integrovaných obvodov na riadenie rotácie motora. V servomotoroch je vždy prítomný systém spätnej väzby na sledovanie aktuálnej polohy aktuátora.

V servách je obvykle spätnoväzbovým komponentom potenciometer, ktorý je priamo spojený s rotujúcim aktuátorom. Potenciometer slúži ako delič napätia, ktorý sa privádza do riadiacej elektroniky. Táto spätná väzba pomáha riadiacej elektronike určiť množstvo energie dodanej motoru.

Servomotor v pevnej polohe sa bude zdráhať pohybovať zo svojej súčasnej polohy, ak sa nejaká vonkajšia sila pokúsi narušiť. Systém spätnej väzby monitoruje aktuálnu polohu a napája motor proti vonkajšiemu rušeniu.

Vyššie uvedený scenár je rovnaký, keď servo pohybuje svojim aktuátorom. Riadiaci systém bude kompenzovať vonkajšiu silu a bude sa pohybovať stanovenou rýchlosťou.

Teraz už viete dosť veľa o servomotore a jeho funkčnom mechanizme. Pozrime sa, ako riadiť servomotory pomocou mikrokontroléra.

Servomotory majú 3 svorky na rozdiel od iných motorov, ktoré majú 2 svorky, dve pre napájanie (nominálne 5 V) a jednu pre riadiaci signál. Vodiče sú zafarbené pre ľahšiu identifikáciu svoriek.

Riadiace signály serv sú PWM na frekvencii 50 Hz. Šírka impulzu signálu určuje polohu ramena ovládača. Typický hobby servomotor pracuje so šírkou impulzu 1 až 2 milisekundy.

Aplikácia riadiaceho signálu šírky impulzu 1 ms udrží pohon v polohe 0 stupňov. Aplikácia riadiaceho signálu šírky impulzu 2 ms udrží pohon v polohe 180 stupňov. Aplikácia signálov medzi 1 - 2 ms udrží pohon v uhle 0 - 180 stupňov. Tomu sa dá lepšie porozumieť na nasledujúcom obrázku.

Teraz by ste už pochopili, ako je servo riadené pulznou šírkovou moduláciou (PWM).

Teraz sa naučíme, ako prepojiť servomotor s Arduino.

Schéma zapojenia:

ako prepojiť servomotor s Arduinom.

Zapojenie je ľahké a ľahko vysvetliteľné. Ak používate objemný servomotor, potrebujete externé napájanie. Ak sa pokúsite napájať z napájacieho zdroja Arduino, nakoniec dôjde k preťaženiu portu USB v počítači.

Ak máte podobné servo, ktoré je ilustrované na začiatku článku, môžete ho napájať zo zdroja 5 arduino, ktorý je tiež znázornený v prototype autora.

Autorský prototyp:

Arduino potrebuje na svoju prácu servo knižnicu, uľahčilo nám to prácu a je už v IDE Arduino.

Program:

//--------Program developed by R.Girish--------//
#include
Servo motor
int pos = 0
int t=10
void setup()
{
motor.attach(7)
}
void loop()
{
A:
pos=pos+1
motor.write(pos)
delay(t)
if(pos==180) { goto B}
goto A
B:
pos=pos-1
motor.write(pos)
delay(t)
if(pos==0) { goto A}
goto B
}
//--------Program developed by R.Girish--------//

Vyššie uvedený program vymetie akčný člen 0 až 180 stupňov vpravo a 180 až 0 stupňov vľavo a opakuje cyklus. Toto je jednoduchý program na testovanie servopohonu, ktorý bude pravdepodobne potrebný na napísanie vlastného kódu pre vaše prispôsobené aplikácie.




Dvojica: Obvod ovládača ventilu dvojitého potrubia vodného čerpadla Ďalej: Pochopenie zapojenia regulátora napätia motocykla