A
pajzs segítségével
könnyen
összeépíthetünk dc illetve stepper motor hajtásokat igénylő berendezéseket. A shield képes
meghajtani 2 szervót és 4 dc motort vagy a dc-k helyett két steppert, erről 2db L293D motorvezérlő
ic gondoskodik. Bírja az 0,6A-os folyamatos terhelést eszközönként, és az akár 1,2A-os
csúcsáramot is képes elviselni.
Külön sorkapoccsal csatlakoztatható
külső áramforrás a motorok kezeléséhez, a vezérlés és táp ellátástól teljesen elválasztva,
evvel megelőzve a motorok használatánál fellépő feszültség
esést.
A szervók a vezérlő áramkört
használják az 5V-os felfutó élhez, a dc ill stepper motorok a külső tápcsatlakozást. Dc motorok
kivezetései közé érdemes 0,1uF tárcsa kondikat forrasztani a motor által gerjesztett zajok
szűrésére, ha ez nem elég akkor a két kivezetés és a test közé
is kondit kell forrasztani.
A
shield a 6db analóg
kimenetet nem
használja ezek más célokra felhasználhatók, ezeken kívül
még nincs használatban a digitális 2
és 13 kimenet. A shield a következő pineket használja:
Digital
pin 11: DC Motor #1
/ Stepper
#1
Digital pin 3: DC Motor #2 / Stepper #1
Digital pin 5: DC Motor #3 / Stepper #2
Digital pin 6: DC Motor #4 / Stepper #2
Digitals pin 9: Servo #1 vezérlés
Digital pin 10: Servo #2 vezérlés
Digital pin 4,7,8 és 12 a dc és
stepper motorok vezérlését valósítja meg a 74HC595
soros-párhuzamos
átalakító segítségével.
A
motorpajzs használatához
le kell
töltenünk az AF_Motor könyvtárat a https://github.com/adafaruit/Adafruit-Motor-Shield-library
oldalról. A fájlt kicsomagolni, majd
átnevezni AFMotor-ra. Az átnevezett
fáljt be kell másolni az Arduino/libraries könyvtárba.
A minta program megtalálható az
Arduino IDE / fájl / Minták / AFMotor / MotorParty.
A pajzsot úgy tervezték hogy 4.5V-25V
közötti tápfeszü motorok használhatók vele, tehát az
1,5-3V-os motorokat felejtsük el.
Nagyon vigyázzunk a sorkapcsok bekötésénél a helyes polaritásra,
mert nincs védő dióda és így
könnyen gallyra vághatjuk a pajzsunkat és az alaplapunkat is.
A szervót legegyszerűbb használni a shieldel, a sima servo könyvtárral kezelhető.
A stepper és a dc motorokhoz már kell az AFMotor könyvtár. Tesztprogram a sztepper ellenörzésére:
#include <AFMotor.h>
AF_Stepper motor(48, 2);//motor felbontásának beállítása
void setup() {
Serial.begin(9600); // soros átvitel bitrátája
Serial.println("Stepper test!");
motor.setSpeed(10); // sebesség beállítása
motor.step(100, FORWARD, SINGLE);//100 lépés előre
motor.release();
delay(1000);
}
void loop() {
motor.step(100, FORWARD, SINGLE);
motor.step(100, BACKWARD, SINGLE);//100 lépés hátra, single 1 tekercs aktiv
motor.step(100, FORWARD, DOUBLE);//duble 2 tekercs aktív egyszerre
motor.step(100, BACKWARD, DOUBLE);
motor.step(100, FORWARD, INTERLEAVE);//átfedés 1 és 2 tekercs felváltva
motor.step(100, BACKWARD, INTERLEAVE);
motor.step(100, FORWARD, MICROSTEP);//pwm-es léptetési módszer, egyenletes elmozdulás
motor.step(100, BACKWARD, MICROSTEP);
}
DC motorok kezelése
#include <AFMotor.h>
AF_DCMotor motor(2, MOTOR12_64KHZ); // 2-es motor 64kHz pwm-el dolgozik
void setup() {
Serial.begin(9600); // bitráta beállítása
Serial.println("Motor test!");
motor.setSpeed(200); // sebesség beállítás 0-255 között
}
void loop() {
Serial.print("tick");
motor.run(FORWARD); // előre forgatás
delay(1000);
Serial.print("tock");
motor.run(BACKWARD); // hátra forgatás
delay(1000);
Serial.print("tack");
motor.run(RELEASE); // megállítás
delay(1000);
}
A négy motorkimenet közül az 1 és 2-es kimenet frekvenciáját lehet állítani, ez lehet:
MOTOR12_64KHZ, MOTOR12_8KHZ,
MOTOR12_2KHZ, vagy MOTOR12_1KHZ. A 3-as és 4-es motorkimenet csak 1kHz-en üzemel.
Több -féle motor shield van
forgalomban, ez a cikk az egyik alapváltozatot mutatta be, más
shieldeknél vannak eltérések nagyobb
terhelhetőség illetve felfűzhetőség terén.