Arduino - könyvtár szervo programozása

Szervo könyvtár - könyvtár szervo munkához

Mint emlékszünk, egy szervó egy hajtóműves motor, visszajelzéssel. amelynek köszönhetően a kimeneti tengely szigorúan meghatározott szögbe állítható.






Szabványos kormányberendezések, 0-180 fokos forgatás (állandó fordulatszámú szervok is - az úgynevezett folyamatos forgásszervo.). Kicsit később megmutatjuk, hogyan lehet egy hagyományos szervó átalakítani egy ilyen állapotba).

Megjegyzés:
Az Arduino IDE 0017-ben a Servo könyvtár legfeljebb 12 servletet támogat (48-ig a Mega-nál), az IDE 0016 és korábbi verziója csak 9 és 10 érintkezőt működtet.

! Kérjük, vegye figyelembe:
A Mega-tól eltérő táblákon a könyvtár használatával letiltja a (9) és a (10) pólusú analóg írási (PWM) használatát (függetlenül attól, hogy a szervók ehhez a tűhöz vannak-e csatlakoztatva vagy sem). Mega kártyákon legfeljebb 12 servs használható a PWM funkciók befolyásolása nélkül, de a 12-től 23-ig terjedő szervók használatával kikapcsolható a PWM a 11. és 12. tűknél.

kapcsolat
A szervo hajtás áramköre nagyon egyszerű - három vezetékkel rendelkezik:

Arduino - könyvtár szervo programozása

- talaj (barna / fekete),
- tápfeszültség +5 volt (piros),
- jel (narancs / sárga / fehér).
A vezérlőjelet közvetlenül az MK lábról lehet táplálni, de a tápegységet (különösen, ha több mint egy vagy két szervó van) külső áramforrásból kell szállítani (azaz nem a + 5V-os Arduino-tól). Ebben az esetben emlékezned kell arra, hogy az Arduino / CraftDuino földet a külső áramforrás mínuszával kösse össze.

Tekintse meg a könyvtár által biztosított funkciókat.

uint8_t attach (int pin);
uint8_t attach (int pólus, int min, int max);

Leírás:
Adja meg azt a csapot, amelyhez a szervo vezérlő vezetéket csatlakoztatta.

Megjegyzés:
Az Arduino IDE 0016 és a fiatalabb verziók csak 9 és 10 érintkezőt engedélyeznek.


lehetőségek:
(szervo szervo objektum)
pin - port száma, amelyhez a szervó csatlakoztatva van

perc (opcionális) - impulzusszélesség mikroszekundumban a szervo tengely helyzetének 0 fokos beállításához (alapértelmezett 544)







max (opcionális) - impulzusszélesség mikroszekundumokban, a szervo tengely helyzetének 180 fokos beállítása (alapbeállítás: 2400)


void write (int érték);

Leírás:
Állítsa be a szervo forgásszögét fokban.
Állandó forgatású szervo esetén:
0 - forgás teljes fordulatszámon egy irányban,
180 - teljes fordulatszámon történő forgatás a másik irányba,
90 - nincs forgás.


lehetőségek:
szög - szögérték a forgatáshoz: 0 - 180


void writeMicroseconds (int érték);


lehetőségek:
uS az impulzusszélesség mikroszekundumokban (int)

Leírás:
Olvassa el a szervo "aktuális" forgási szögét (az utolsó hívás írása () értéke).


Visszatérési érték:
Visszaadja a 0 és 180 fok közötti szögértéket.

Leírás:
Határozza meg, hogy van-e kötődés a kiszolgálókhoz a tű segítségével.


Visszatérési érték:
Igaz, ha kötelező a pin-y és a hamis.

Leírás:
A tű eltávolítása a Servo könyvtárból. Ha minden szervo változó le van tiltva - a 9-es és a 10-es pólusokat a PWM kimenetre lehet csatlakoztatni a analogWrite () segítségével.


Visszatérési érték:
sz.

Vegyünk egy példát a könyvtári munkára a Sweep példáján, amely a szervo 0-tól 180 fokig forgatja el és vissza (ahogy söpör).
Fájl - Példák - Szervó - sweep


Vannak más könyvtárak is:
SoftwareServo - www.arduino.cc/playground/ComponentLib/Servo - kényelmes a funkciók ugyanazt a nevét a Servo rendszer könyvtárával
- nem korlátozza a kiszolgálók számát a 8. helyen, de ehhez egy módszert kell alkalmazni
SoftwareServo :: refresh ()

MegaServo - www.arduino.cc/playground/Code/MegaServo
- az IDE korábbi változatainak könyvtára (0017-ben nem töltődik be, mert már az IDE-ként szerepel a szervo név alatt :) - lehetővé teszi akár 12 servs

Minden üdvözlet, a szervó forgatását egy körben (360 fokban), szerkesztette a vázlatot, de megállt nélkül megfordul. Ha nem szervo szervóját csatlakoztatja, minden 90 fokban forog. De szükségem van mind a 360-ra, nem pedig a 180-ra. Mondja meg, mi a baj.
itt van a vázlat
#include
Servo myservo;

void beállítás ()
<
// állítsa a csapot a szervo vezérlés kimenetént
myservo.attach (10);
>

void loop ()
<
// állítsa a szöget 0 ° -ra
myservo.write (0);
késleltetés (3000);
// állítsa be a 90 ° -os szöget
myservo.write (90);
késleltetés (3000);
// állítsa a szöget 180 ° -ra
myservo.write (180);
késleltetés (3000);
// állítsa a szöget 270 ° -ra
myservo.write (270);
késleltetés (3000);
>

IMHO, ahogy kellene lennie.
Szervó, egyszerű eszköz, ne forduljon több mint 180-ra.
Az eszközről - itt.
Csak akkor, ha a visszacsatoló potenciométer több fordulatra vált, de a pontosság csökken.
Nem tudom, hogy pontosan hogyan változott meg, de általában a szolgák nem változnak annyira a "360" -on, hanem inkább az "állandó rotáción" - lásd a részleteket.

Eltávolítottam a rögzítőt, potenciométer helyett 2 ellenállást forrasztottam 3,3 kg-ban. lehetetlen megállítani minden 90-et?

Tehát lehetetlen - akkor is kihúzta a potenciométer szervo most már nem tud semmit a jelenlegi helyzetét.
Olvassa el ezt.




Kapcsolódó cikkek