Die Steuerung der vier Motor-Ports erfolgt über ein Objekt aus der Adafruit-Motor-Shield-V2-Library.
Programmierbeispiel
Mit diesem Programm fährt der Roboter abwechselnd zwei Sekunden vorwärts und bleibt dann für zwei Sekunden stehen.
#include <Adafruit_RGBLCDShield.h>#include <Adafruit_MotorShield.h>Adafruit_MotorShield MotorShield = Adafruit_MotorShield();Adafruit_DCMotor *Motor_Port1 = MotorShield.getMotor(1);Adafruit_DCMotor *Motor_Port2 = MotorShield.getMotor(2);void setup(){MotorShield.begin();}void loop(){Motor_Port1->setSpeed(150);Motor_Port1->run(FORWARD);Motor_Port2->setSpeed(150);Motor_Port2->run(FORWARD);delay(2000);Motor_Port1->run(RELEASE);Motor_Port2->run(RELEASE);delay(2000);}
Erklärungen zu diesem Programmierbeispiel
1: #include <Adafruit_MotorShield.h>
2: #include <Adafruit_RGBLCDShield.h>
Einbinden der benötigten Header-Dateien.
4: Adafruit_MotorShield MotorShield = Adafruit_MotorShield();
Zunächst wird das Objekt MotorShield vom Typ Adafruit_MotorShield erzeugt.
5: Adafruit_DCMotor *Motor_Port1 = MotorShield.getMotor(1);
Über den Pointer Motor_Port1 wird in der Folge der Motor, der an Port 1 angeschlossen ist, angesteuert.
9: MotorShield.begin();
Zu Beginn des Programms muss das Objekt MotorShield initialisiert werden.
13: Motor_Port1->setSpeed(150);
Mit der Funktion setSpeed(speed) wird die Geschwindigkeit bzw. die Pulsbreite des PWM-Signals festgelegt.
speed: 0 … 255
14: Motor_Port1->run(FORWARD);
Die Funktion run(mode) steuert die Drehbewegung des Motors.
mode: FORWARD, BACKWARD, RELEASE
