9. Fernsteuerung¶
Dieses Set wird mit einem IR-Empfänger geliefert, der es ermöglicht, das Fahrzeug mit einer IR-Fernbedienung zu 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 sie auch einzeln über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
---|---|
- |
|
- |
Verdrahtung
Bauen Sie den Schaltkreis nun gemäß dem untenstehenden Diagramm.
IR-Empfänger |
R3-Board |
---|---|
OUT |
12 |
GND |
GND |
VCC |
5V |
LED |
R3-Board |
---|---|
Anode(Der längere Pin) |
13 |
Kathode |
GND |
Code
Bemerkung
Öffnen Sie die Datei
9.remote_control.ino
im Pfad3in1-kit\car_project\9.remote_control
.Oder kopieren Sie diesen Code in die Arduino IDE.
Die Bibliothek
IRremote
wird hier verwendet. Sie können sie über den Library Manager installieren.
Nachdem der Code erfolgreich hochgeladen wurde, drücken Sie eine Taste auf der Fernbedienung. Die LED blinkt einmal, um anzuzeigen, dass das Signal empfangen wurde, und das Auto bewegt sich entsprechend der gedrückten Taste. Sie können die folgenden Tasten verwenden, um das Auto zu steuern:
+: Beschleunigen
-: Verlangsamen
1: Vorwärts links
2: Vorwärts
3: Vorwärts rechts
4: Nach links drehen
6: Nach rechts drehen
7: Rückwärts links
8: Rückwärts
9: Rückwärts rechts
Wie funktioniert das?
Das Ziel dieses Projekts ist es, das Auto durch Lesen des Schlüsselwerts der IR-Fernbedienung zu bewegen. Zusätzlich wird die LED an Pin 13 blinken, um den erfolgreichen Empfang des IR-Signals anzuzeigen.
Importieren Sie die
IRremote
-Bibliothek. Sie können sie über den Library Manager installieren.#include <IRremote.h> const int IR_RECEIVE_PIN = 12; // Definiere die Pin-Nummer für den IR-Sensor
Initialisiert die serielle Kommunikation mit einer Baudrate von 9600. Initialisiert den IR-Empfänger am angegebenen Pin (
IR_RECEIVE_PIN
) und aktiviert die LED-Rückmeldung (falls zutreffend).... void setup() { ... //IR-Fernbedienung IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // Starten Sie den IR-Empfänger Serial.println("REMOTE CONTROL START"); }
Wenn Sie die Tasten auf der Fernbedienung drücken, der Infrarot-Empfänger erkennt, welche Taste gedrückt wurde. Anschließend bewegt sich das Auto entsprechend dem zugehörigen Schlüsselwert.
void loop() { if (IrReceiver.decode()) { // Serial.println(results.value,HEX); String key = decodeKeyValue(IrReceiver.decodedIRData.command); if (key != "ERROR") { Serial.println(key); if (key == "+") { speed += 50; } else if (key == "-") { speed -= 50; } else if (key == "2") { moveForward(speed); delay(1000); ... } IrReceiver.resume(); // Empfang des nächsten Werts ermöglichen } }
Überprüft, ob ein IR-Signal empfangen und erfolgreich dekodiert wurde.
Dekodiert den IR-Befehl und speichert ihn in
key
mit einer benutzerdefinierten FunktiondecodeKeyValue()
.Überprüft, ob der dekodierte Wert kein Fehler ist.
Gibt den dekodierten IR-Wert auf dem seriellen Monitor aus.
Setzt den IR-Signalempfang für das nächste Signal fort.