Modelářské servo |
Modelářské servo je elektromotor s převodovkou doplněný elektronikou, která zajišťuje řízení elektromotoru s využitím zpětné vazby od polohy výstupního hřídele (tzv. polohový servopohon). Požadovaná poloha výstupního hřídele je určena vstupním signálem, kde doba trvání impulzu odpovídá úhlu natočení.
Běžná serva poskytují rozsah pohybu cca 0°-180° (šířka impulzu 500 - 2500 ms).
Střední poloha odpovídá impulzu o šířce 1500 ms, opakování impulzů
je s frekvencí cca 50 Hz.
Řídicí signál serva |
Zapojení:
Arduino | Servo | |
---|---|---|
GND | - | GND |
VCC | - | VCC |
D8 | - | IN |
8.1. Servo
Napište program realizující sekvenci pohybů serva. Najetí na polohu 90°, prodleva 1s, poloha 180°, prodleva 1s, poloha 0°, prodleva 1s a návrat na polohu 90°, prodleva 5s.
Pro řízení serva pořebujeme generovat impulzy s dobou trvání 500 - 2500 ms, s frekvencí 50 Hz. To lze realizovat programově, ale zaměstnáme naplno procesor. Proto raději využijeme programovou knihovnu, která realizuje generování servosignálu na pozadí.
Pro ovládání serva je nutné přidat do programu odkaz na knihovnu "servo.h". V programu deklarujeme vlastní proměnnou typu Servo. Před prvním použitím aktivujeme generování signálu pro servo na příslušném pinu. Následně změnou hodnoty šířky pulzu, odpovídající požadovanému úhlu ovládáme servo.
#include <Servo.h>
deklarace proměnné
Servo mojeServo
aktivace výstupu servo signálu
mojeServo.attach(pin)
pin ... určuje, na kterém pinu (nožičce) se má generovat signál pro servo
value ... určuje polohu serva ve stupních (0° - 180°)
mojeServo.writeMicroseconds(value)
value ... určuje šířku impulzu určující polohu serva v ms (500 - 2500)
8.2. Servo ovládané analogovým vstupem
Napište program pro ovládání serva analogovým vstupem, na který je připojen potenciometr (A1), nebo fotorezistor (A0).
value ... vstupní hodnota v rozsahu in_min - in_max
in_min ... minimální vstupní hodnota
in_max ... maximální vstupní hodnota
out_min ... minimální výstupní hodnota
out_max ... maximální výstupní hodnota
8.3. Servo ovládané tlačítky
Napište program pro ovládání serva dvěma tlačítky. Jedním se realizuje pohyb vlevo, druhým vpravo. Ošetřete dosažení krajních poloh serva.
8.4. Servo s plynulým pohybem
Napište program pro přejezd mezi dvěmi polohami, např. 0° a 180°. Volba cílové pozice je určena tlačítkem. Mezi polohami se servo pohybuje pomalu, resp. nastavenou rychlostí.
Možná rozšíření: více poloh, rychlost přejezdu nastavitelná potenciometrem, indikace dozažení cílové pozice, ...