Analóg kimenet (Szervóvezérlés)
A hobbiszervók vezérléséhez szükséges jel, tekinthető egy speciális PWM jelnek is, ahol a jel impulzusszélessége és periódusideje a szervó adatlapjában megadott értékek köze kell hogy essen (impulzusszélesség: 1-2ms közötti érték, periódusidő: max. 20ms).
/*A program elején belinkelem az Arduino szervókonyvtárat és létrehozok egy mikroszervo nevű szervóobjektumot. A mikroszervo.attach(9) utasítással hozzárendelem a szervót a 9-es lábhoz.
* Szervo poziciojanak valtoztatasa potenciometer-rel
*/#include <Servo.h> // szervokonyvtar
Servo mikroszervo; // mikroszervo nevu szervo objektum
int potPin = 5; // potenciometer A5-re kotve
int val; // valtozo a mert ADC ertek tarolasara
void setup()
{
mikroszervo.attach(9); // mikroszervo Pin9-re kotve
}
void loop()
{
val = analogRead(potPin); // ADC ertek beolvasasa
val = map(val, 0, 1023, 0, 179); // ADC ertek atalakitasa
mikroszervo.write(val); // szervopozicio beallitasa
delay(100); // varakozas
}
A kód megméri a potenciométer feszültségét, és egy ezzel arányos pozícionáló jelet ad a szervóra. Az ADC 0-1023 közé eső számot ad végeredményül, a szervópozíció beállításához viszont 0-179 közé eső szögértéket kell megadni paraméterként. A map() utasítással lehet a 0-1023 közé eső ADC eredményt 0-179 közé eső számmá alakítani.
Nincsenek megjegyzések:
Megjegyzés küldése