V tomto návode ideme ovládať servomotor spoločnosťou ARDUINO UNO. Servomotory sa používajú tam, kde je potrebný presný pohyb alebo poloha hriadeľa. Nie sú navrhované pre vysokorýchlostné aplikácie. Sú navrhnuté pre nízku rýchlosť, stredný krútiaci moment a presnú aplikáciu polohy. Tieto motory sa používajú v strojoch s robotickými ramenami, riadení letov a riadiacich systémoch.
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.
Súčasti obvodu
Hardvér: ARDUINO UNO, napájanie (5v), kondenzátor 100uF, tlačidlá (dva kusy), rezistor 1KΩ (dva kusy), servomotor (ktorý je potrebné vyskúšať).
Softvér: arduino IDE (Arduino každú noc).
Schéma zapojenia a vysvetlenia servomotora Arduino
V bežných prípadoch musíme ísť do registrov ovládača pre nastavenie frekvencie a pre získanie požadovaného prevádzkového pomeru pre presnú reguláciu polohy serva, v ARDUINO to nemusíme robiť.
V ARDUINO máme preddefinované knižnice, ktoré po vyvolaní alebo zahrnutí súboru hlavičky zodpovedajúcim spôsobom nastavia frekvencie a prevádzkové pomery. V ARDUINO musíme jednoducho uviesť potrebnú polohu serva a PWM sa automaticky nastaví pomocou UNO.
Na získanie presnej polohy serva musíme urobiť:
|
Najprv musíme nastaviť frekvenciu PWM signálu a kvôli tomu by sme mali volať „#include
Teraz musíme definovať názov pre servo „Servo sg90sevo“, tu je zvolený názov „sg90servo“, takže pri písaní pre elixír budeme tento názov používať, táto funkcia sa hodí, keď máme k dispozícii veľa servov na ovládanie, týmto môžeme ovládať až osem servopohonov.
Teraz povieme UNO, kde je pripojený signálny pin serva alebo kde potrebuje generovať signál PWM. Aby sme to dosiahli, máme “Sg90.attach (3);”, tu hovoríme UNO, že sme pripojili signálny pin serva na PIN3.
Všetko, čo zostáva, je nastavenie polohy, polohu serva nastavíme pomocou príkazu „Sg90.write (30);“, týmto príkazom sa ručička serva posunie o 30 stupňov, takže to je všetko. Potom, kedykoľvek potrebujeme zmeniť polohu serva, musíme zavolať príkaz „Sg90.write (needed_position_ angle);“. V tomto obvode budeme mať dve tlačidlá, jedno tlačidlo zvyšuje polohu serva a druhé slúži na zníženie polohy serva.
Ovládanie výukový Arduino Servomotor je vysvetlený v krok za krokom kódu C nižšie.