L293D Motortreiber Shield Arduino anschließen & verwenden

Werfen wir einen Blick auf eine sehr nützliche Erweiterung für das Arduino-Board, das Motor Control Shield L293D, und sehen wir uns an, wie man Servomotoren, Schrittmotoren und Gleichstrommotoren an dieses Board anschließen kann. Sie können auch etwas über die in der AFMotor.h-Bibliothek verwendeten Befehle lernen und verschiedene Skizzen zur Steuerung von Schrittmotoren und Servomotoren mit Arduino ausprobieren.




Bestandteile:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • L293D Motortreiber Shield
  • Servomotor
  • Schrittmotor
  • Gleichstrommotor
  • Dupont-Kabel
  • Bibliothek AFMotor.h

Mit dem Arduino-Mikrocontroller kann jeder unerfahrene Funkamateur komplexe Automatisierungsgeräte und interessante Projekte ohne ernsthafte Kenntnisse der Programmiersprache bauen. Das Motor Shield kann eine nützliche Ergänzung für viele Projekte sein, da es den gleichzeitigen Anschluss von 2 Servoantrieben, 2 Schrittmotoren und bis zu 4 Gleichstrommotoren (mit Rotorrichtungsumkehr) ermöglicht.

L293D Motortreiber Shield Arduino pinout, datasheet

L293D Motortreiber Shield Arduino pinout, datasheet

Merkmale des Motor Shield L293D (datasheet)

  • Anschluss von 2 Servoantrieben mit 5 Volt
  • Anschluss von 2 Schrittmotoren von 6 bis 12 Volt
  • Anschluss von bis zu 4 Motoren mit reversibler Drehrichtung
  • Pins zum Anschluss einer externen Stromversorgung für Motoren
  • Motor Shield für Arduino kompatibel mit Uno und Mega Boards

Das Arduino Shield ist sehr einfach anzuschließen – es wird direkt auf dem Uno oder Mega Board montiert. Beachten Sie, dass die Logik und die Motoren ohne eine externe Stromversorgung, die an das Motor Shield angeschlossen ist, mit 5 Volt laufen, was nicht immer ausreichend ist. Daher wird die Geschwindigkeit der Gleichstrommotoren erheblich abweichen, wenn das Arduino-Board vom Computer und der Stromversorgung getrennt ist.

Motorsteuerung mit L293D Motortreiber Shield Arduino

Motorsteuerung mit L293D Motortreiber Shield Arduino

Beachten Sie, dass sich die Motoren, auch wenn Sie in der Skizze die gleiche Drehzahl einstellen, in Wirklichkeit mit unterschiedlichen Geschwindigkeiten drehen können – dies wird durch die Drehzahl des Motors selbst, die Qualität des Getriebes und die Räder beeinflusst. Nachdem Sie die Motoren wie im obigen Diagramm angeschlossen haben, laden Sie das folgende Programm, um den Betrieb des Schildes zu testen.

Programm für Motorsteuerung mit L293D Shield Arduino




#include "AFMotor.h"
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);

void setup() {
  motor1.setSpeed(255);
  motor1.run(RELEASE);
  motor2.setSpeed(255);
  motor2.run(RELEASE);
}

void loop() {
  motor1.run(FORWARD);
  motor2.run(FORWARD);
  motor1.setSpeed(255);
  motor2.setSpeed(255);

  delay(2000);

  motor1.run(RELEASE);
  motor2.run(RELEASE);

  motor1.run(BACKWARD);
  motor2.run(BACKWARD);
  motor1.setSpeed(255);
  motor2.setSpeed(255);

  delay(2000);

  motor1.run(RELEASE);
  motor2.run(RELEASE);
}
  1. Jeder Gleichstrommotor muss einen eigenen, eindeutigen Namen haben;
  2. Die maximale Geschwindigkeit der Motoren im Programm ist 255.

Servosteuerung mit L293D Motortreiber Shield Arduino

Servosteuerung mit L293D Motortreiber Shield Arduino

Zur Steuerung der Servoantriebe wird die Standardbibliothek Servo.h verwendet. Die Servomotoren werden über Pins am Rand der Platine an die digitalen Ausgänge 9 und 10 angeschlossen. Es können nur zwei Servos und zwei Schrittmotoren gleichzeitig an das L293D Motor Control Shield angeschlossen werden. Der Anschlussplan der Servos an das L293D Motortreiber Shield Arduino ist im Bild oben dargestellt.

Programm für Servosteuerung mit L293D Shield Arduino

#include "Servo.h"
Servo servo;

void setup() {
  servo.attach(9);
}

void loop() {
  servo.write(0);
  delay(1000);

  servo.write(90);
  delay(1000);

  servo.write(180);
  delay(1000);
}
  1. Der Befehl servo.attach(9); verbindet den Servo mit dem Arduino-Port 9;
  2. In der Funktion void loop() lassen wir den Servomotor um 0-90-180 Grad drehen.

Schrittmotorsteuerung mit L293D Motortreiber Shield

Schrittmotorsteuerung mit L293D Motortreiber Shield

Die Schrittmotoren werden an die Klemmenblöcke M1 bis M4 angeschlossen. Zur Steuerung der Schrittmotoren sollte die Klasse AF_Stepper aus der Bibliothek AFMotor.h verwendet werden. Mit der Funktion motor.setSpeed(speed) wird die Geschwindigkeit eingestellt und mit motor.step(number of steps, direction, algorithm) wird der Schrittmotorrotor um mehrere Schritte in die eine oder andere Richtung gedreht.

Programm für Schrittmotorsteuerung mit L293D Arduino

#include "AFMotor.h"
AF_Stepper stepper(48, 1);

void setup() {
 
}

void loop() {
  for (byte i = 0; i <= 48; i++) {
    stepper.step(1, FORWARD, DOUBLE);
    delay(30);
  }
  
  for (byte i = 48; i >= 0; i--) {
    stepper.step(1, BACKWARD, DOUBLE);
    delay(30);
  }
}
  1. Kein Kommentar hier

Schlussfolgerung. Beim Anschluss der Motoren an den Arduino werden verschiedene Ports verwendet, an die keine anderen Peripheriegeräte angeschlossen werden können. Zum Beispiel werden die Ports 9 und 10 für den Servo und die Ports 3-8 und 12 für die Motoren verwendet. Wenn Sie etwas anderes anschließen möchten, verwenden Sie die Ports 0 und 1, 2 und 13 (Sie können auch die analogen Ports A0-A5 verwenden).

5/5 - (1 vote)


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert