LBotics.at

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