fpőksaőfp

2015. június 16., kedd

Analóg kimenet (Szervóvezérlés) /Arduino kapcsolások #5/

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).
/*
* 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 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.
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