V tomto tutoriálu budeme ovládat servomotor od ARDUINO UNO. Servomotory se používají tam, kde je potřeba přesného pohybu nebo polohy hřídele. Nejsou navrženy pro vysokorychlostní aplikace. Jsou navrženy pro nízké otáčky, střední točivý moment a přesnou polohu. Tyto motory se používají v robotických ramenech, řízeních letu a řídicích systémech.
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.
Součásti obvodu
Hardware: ARDUINO UNO, napájecí zdroj (5v), kondenzátor 100uF, tlačítka (dva kusy), rezistor 1KΩ (dva kusy), servomotor (který je třeba otestovat).
Software: arduino IDE (Arduino v noci).
Schéma zapojení a vysvětlení servomotoru Arduino
V normálních případech musíme jít do registrů ovladače pro nastavení frekvence a pro získání požadovaného pracovního poměru pro přesnou kontrolu polohy serva, v ARDUINO tyto věci dělat nemusíme.
V ARDUINO máme předdefinované knihovny, které odpovídajícím způsobem nastaví frekvence a pracovní poměry, jakmile je soubor záhlaví vyvolán nebo zahrnut. V ARDUINO musíme jednoduše uvést polohu serva, která je potřebná, a PWM se automaticky upraví pomocí UNO.
Věci, které musíme udělat pro získání přesné polohy serva, jsou:
|
Nejprve musíme nastavit frekvenci signálu PWM a proto bychom měli zavolat „#include
Nyní musíme definovat název serva „Servo sg90sevo“, zde je zvoleno jméno „sg90servo“, takže při psaní pro lektvar budeme tento název používat, tato funkce se hodí, když máme k dispozici mnoho serv, tímto můžeme ovládat až osm serv.
Nyní řekneme UNO, kde je připojen signální kolík serva nebo kde potřebuje generovat signál PWM. K tomu máme „Sg90.attach (3);“, zde říkáme UNO, že jsme připojili signální kolík serva na PIN3.
Zbývá jen nastavit polohu, nastavíme polohu serva pomocí „Sg90.write (30);“, tímto příkazem se ruka serva posune o 30 stupňů, tak to je ono. Poté, kdykoli potřebujeme změnit polohu serva, musíme zavolat příkaz „Sg90.write (needed_position_ angle);“. V tomto obvodu budeme mít dvě tlačítka, jedno tlačítko zvyšuje polohu serva a druhé slouží ke snížení polohy serva.
Ovládání výukový Arduino Servomotor je vysvětlen v krok za krokem kódu C níže.