Szervó meghajtó


Az Adafruit 16 csatornás, 12 bites PWM/Szervo meghajtó I2C vezérelt ezért elég
2 Arduino kimenet a 16 szervo vezérlésére. A meghajtók egymásután kötésével
akár 62 meghajtó köthető össze és ezekkel 992 szervó vezérelhető egy időben.

A kapcsolás a következő:

+5V → VCC (csak a vezérlőlap tápellátása nem a szervóké)

GND → GND

Analóg 4 → SDA

Analóg 5 → SCL

A szervók tápellátását a sorkapcsokon keresztül oldjuk meg V+ és a GND érintkezővel.
A bemeneti fesz lehet akár 6V is nem számít a ha a vezérlőpanelt ennél kisebb feszről üzemeltetjük.
Válasszuk meg megfelelően az áramforrás terhelhetőségét, a szervók pár száz milliampertől akár több amperes áramfelvételt is igényelhetnek.


A legtöbb szervó egy standard három tűs csatlakozóval készül, ez közvetlenül csatlakoztatható a meghajtó fejléceihez. A GND kábel (fekete v. barna) általában az alsó sorban a jel vezeték (sárga v. fehér) a felsőben helyezkedik el.


Egy meghajtóra 16 Szervó csatlakoztatható, ha többet szeretnénk használni akkor több meghajtót kell felfűzni a következő módon: a driver kimenetének csatlakozó pontjait össze kell kötni a következő driver bemeneti pontjaival, erre érdemes egy 6 eres szalagkábelt használni. Itt az a lényeg, hogy az OC és a V+ pontokat is össze kell kötni(a GND,VCC,SCL, és SDA pontokat is) a következő panel OC ill. V+ pontjaival.


Ha több szervó meghajtót kötünk össze akkor binárisan el kell nevezni őket, hogy címzés szerint működhessenek. A címet a meghajtó jobb felső sarkában elhelyezkedő forrasztható jumperekkel állítható be a következő módon: a jumperek A0-A5-ig vannak elnevezve, ha egy-egy jumper két felét egybe forrasztjuk az az bináris 1-et jelent, ha nem forrasztjuk akkor bináris 0-át. A hat jumper egy bináris hatjegyű számot ad ami a board címe lesz.


Board0: 000000 (egyik jumper sincs átforrasztva)
Board1: 000001
Board2: 000010
Board3: 000011 és így tovább …


Adafruit PWM/servo könyvtár
Először töltsük le a könyvtárat a https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library oldalról. Nevezzük át a könyvtárat Adafruit_PWMServoDriver -ra, csomagoljuk ki és másoljuk be az Arduino/ libraries könyvtárba.


Nyissuk meg az Arduino IDE-t keressük meg a fájl/ Minták/ Adafruit_PWMServoDriver mappába a servo fájlt , nyissuk meg és töltsük fel a boardunkra, a servónk 0-180 fok közt fog „söprögetni”( ide-oda mozogni).


A szervók impulzus időzítése széles határok között változhat (még a teljesen azonos fajták közt is) ezért mindig célszerű a kalibrálás elvégzése. Ezt a szervó minimum és maximum értékének megadásával érhetjük el.

SERVOMIN: minimális érték megadása, célszerű a minimális határ előtt egy kicsivel meghatározni ezt az értéket.

SERVOMAX: maximális érték megadása, ez is a max határ előtt egy kicsivel kell megadni.


Óvatosan állítsuk be ezeket az értékeket mert ha a szervó fizikai határain túl állítjuk
akkor károsíthatjuk ezzel a szervó mechanikáját.


Fok konvertálása impulzus hosszá: Az Arduino map függvény egy egyszerű módja az
elfordulás fokának átváltására impulzus hosszá. A map függvény használja fel a
SERVOMIN és SERVOMAX értékeket, ezek között ossza fel a tartományt 180 értékre.
A degrees értékével tudjuk pontosan megadni a szervó elfordulását fokban.


pulselength = map(degrees, 0, 180, SERVOMIN, SERVOMAX);


setPWMFreq(freq)

setPWMFreq(freq): ezzel a funkcióval lehet beállítani a PWM frekvenciát, amely
meghatározza hány teljes impulzust generáljon az ic. Másként a frekvencia
határozza meg az impulzusok hosszát, minél nagyobb a frekvencia annál rövidebb
impulzusok generálodnak. A frekvencia nagyon fontos, ha túl magas egy kis terhelésre
is már problémákat okozhat, mivel a jel felfutási ideje hosszabb lehet mint az impulzus
idő így nem tudja elérni a max tápfeszültséget, a PWM jel kisimul.

pwm.setPWMFreq(1000);// 1000Hz freki

setPWM(channel, on, off)


setPWM(channel, on, off): a channel a szervó csatorna azonosító száma (0-15),
on: bekapcsolva magas PWM jelet ad (0-4095) pl on=1024 az 25%-os jel, a 4095 pedig
100% jel,(elmozdulás kezdete) off: bekapcsolva alacsony PWM jelet ad (0-4095) pl.: off=1024 az 75%-os jel, a 4095 pedig 0%-os jel(elmozdulás vége).


Persze a szervókkal még sok minden más is csinálható ez csak egy kis ízelítő, további
jó szórakozást!


Mihaly S