2. Steuerung durch Code¶
Im vorherigen Projekt haben wir versucht, den Betrieb des Motors zu steuern, indem wir für den Eingang des L9110-Moduls verschiedene Pegelsignale verwendet haben.
Wenn wir die Pegelsignale durch das Programm ändern, können wir die Bewegung des Autos flexibel steuern.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Set zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
---|---|---|
3 in 1 Starter Kit |
380+ |
Sie können diese auch einzeln über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
---|---|
- |
|
- |
Verdrahtung
Verbinden Sie die Kabel zwischen dem L9110-Modul und dem R4-Board gemäß dem untenstehenden Diagramm.
L9110 Modul |
R4 Board |
Motor |
---|---|---|
A-1B |
5 |
|
A-1A |
6 |
|
B-1B(B-2A) |
9 |
|
B-1A |
10 |
|
OB(B) |
Schwarzes Kabel des rechten Motors |
|
OA(B) |
Rotes Kabel des rechten Motors |
|
OB(A) |
Schwarzes Kabel des linken Motors |
|
OA(A) |
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.
Nach dem Hochladen des Codes wird das Auto jeweils für zwei Sekunden vorwärts, rückwärts, links und rechts fahren.
Wie funktioniert das?
Dieses Projekt entspricht im Wesentlichen dem vorherigen. Es beinhaltet das Vorwärts-, Rückwärts-, Links- und Rechtsfahren des Autos sowie das Anhalten, indem verschiedene Signalpegel an die Eingangspins des L9110-Moduls gesendet werden.
Initialisieren Sie die Pins des L9110-Moduls.
const int A_1B = 5; const int A_1A = 6; const int B_1B = 9; const int B_1A = 10; void setup() { pinMode(A_1B, OUTPUT); pinMode(A_1A, OUTPUT); pinMode(B_1B, OUTPUT); pinMode(B_1A, OUTPUT); }
Legen Sie die Eingangspins auf unterschiedlich hohe oder niedrige Pegel, um die Drehung der linken und rechten Motoren zu steuern, und kapseln Sie sie in einzelne Funktionen.
void moveForward() { digitalWrite(A_1B, LOW); digitalWrite(A_1A, HIGH); digitalWrite(B_1B, HIGH); digitalWrite(B_1A, LOW); } void moveBackward() { digitalWrite(A_1B, HIGH); digitalWrite(A_1A, LOW); digitalWrite(B_1B, LOW); digitalWrite(B_1A, 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-Pin-Nummer.value
: HIGH oder LOW.
Schreibt einen HIGH- oder LOW-Wert an 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-Boards) für HIGH, 0V (Masse) für LOW. -
pin
: die Arduino-Pin-Nummer, für die der Modus festgelegt werden soll.mode
: INPUT, OUTPUT oder INPUT_PULLUP.
Konfiguriert den angegebenen Pin entweder als Eingang oder Ausgang.
-
ms
: die Anzahl der Millisekunden zum Pausieren. Erlaubte Datentypen: unsigned long.
Pausiert das Programm für die angegebene Zeit (in Millisekunden). (In einer Sekunde sind 1000 Millisekunden.)