2. Steuerung durch Code

Im vorherigen Projekt haben wir versucht, den Motor durch verschiedene Pegelsignale am Eingang des L298N zu steuern.

Wenn wir die Pegelsignale über das Programm ändern, können wir die Bewegung des Autos flexibel steuern. Hier verbinden wir die Pins IN1~IN4 des L298N der Reihe nach mit den Pins 5, 6, 9 und 10 auf dem R3-Board.

Benötigte Komponenten

Für dieses Projekt benötigen wir folgende Komponenten.

Es ist definitiv praktisch, ein komplettes Set zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

Sie können diese auch separat über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

SunFounder R3 Platine

BUY

L298N Modul

BUY

TT Motor

-

Verdrahtung

Das L298N-Motortreibermodul ist ein leistungsstarkes Treibermodul für DC- und Schrittmotoren. Das L298N-Modul kann bis zu 4 Gleichstrommotoren steuern oder 2 Gleichstrommotoren mit Richtungs- und Geschwindigkeitssteuerung.

Verbinden Sie die Drähte zwischen dem L298N-Modul und dem R3-Board gemäß dem untenstehenden Diagramm.

L298N

R3 Board

Motor

IN1

5

IN2

6

IN3

9

IN4

10

OUT1

Schwarzes Kabel des rechten Motors

OUT2

Rotes Kabel des rechten Motors

OUT3

Schwarzes Kabel des linken Motors

OUT4

Rotes Kabel des linken Motors

../_images/car_motor1.jpg

Code

Bemerkung

  • Öffnen Sie die Datei 2.move.ino im Pfad 3in1-kit\car_project\2.move.

  • Oder kopieren Sie diesen Code in die Arduino IDE.

  • Oder laden Sie den Code über den Arduino Web Editor hoch.

Nachdem der Code hochgeladen wurde, wird das Auto jeweils zwei Sekunden lang vorwärts, rückwärts, links und rechts fahren.

Wie funktioniert das?

Dieses Projekt entspricht im Wesentlichen dem vorherigen. Es soll das Auto durch Ausgabe verschiedener Pegel von IN1 bis IN4 vorwärts, rückwärts, links, rechts fahren und anhalten lassen.

  1. Initialisieren Sie die Pin-Verdrahtung von IN1~IN4.

    const int in1 = 5;
    const int in2 = 6;
    const int in3 = 9;
    const int in4 = 10;
    
    void setup() {
        pinMode(in1, OUTPUT);
        pinMode(in2, OUTPUT);
        pinMode(in3, OUTPUT);
        pinMode(in4, OUTPUT);
    }
    
  2. Setzen Sie IN1~IN4 auf verschiedene hohe oder niedrige Pegel, um die Rotation der linken und rechten Motoren zu steuern, und kapseln Sie sie dann in einzelne Funktionen.

    void moveForward() {
        digitalWrite(in1, LOW);
        digitalWrite(in2, HIGH);
        digitalWrite(in3, HIGH);
        digitalWrite(in4, LOW);
    }
    
    void moveBackward() {
        digitalWrite(in1, HIGH);
        digitalWrite(in2, LOW);
        digitalWrite(in3, LOW);
        digitalWrite(in4, HIGH);
    }
    ...
    
  3. Rufen Sie diese Funktionen in loop() auf.

    void loop() {
        moveForward();
        delay(2000);
        stopMove();
        delay(500);
    
        moveBackward();
        delay(2000);
        stopMove();
        delay(500);
    ...
    
  • digitalWrite(pin, value)

    • pin: die Arduino-Pinnummer.

    • value: HIGH oder LOW.

    Schreibt einen HIGH- oder LOW-Wert auf einen digitalen Pin. Wenn der Pin mit pinMode() als OUTPUT konfiguriert wurde, wird seine Spannung auf den entsprechenden Wert gesetzt: 5V (oder 3,3V bei 3,3V-Platinen) für HIGH, 0V (Masse) für LOW.

  • pinMode(pin, mode)

    • pin: die Arduino-Pinnummer, für die der Modus eingestellt werden soll.

    • mode: INPUT, OUTPUT oder INPUT_PULLUP.

    Konfiguriert den angegebenen Pin, um entweder als Eingang oder als Ausgang zu fungieren.

  • delay(ms)

    • ms: die Anzahl der Millisekunden zur Pause. Zulässige Datentypen: unsigned long.

    Unterbricht das Programm für die als Parameter angegebene Zeit (in Millisekunden). (Eine Sekunde enthält 1000 Millisekunden.)