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+ |
Sie können diese auch separat über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
---|---|
- |
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 |
Code
Bemerkung
Öffnen Sie die Datei
2.move.ino
im Pfad3in1-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.
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); }
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); } ...
Rufen Sie diese Funktionen in
loop()
auf.void loop() { moveForward(); delay(2000); stopMove(); delay(500); moveBackward(); delay(2000); stopMove(); delay(500); ...
-
pin
: die Arduino-Pinnummer.value
: HIGH oder LOW.
Schreibt einen HIGH- oder LOW-Wert auf einen digitalen Pin. Wenn der Pin mit
pinMode()
alsOUTPUT
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. -
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.
-
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.)