9. Fernbedienung¶
Dieses Kit wird mit einem IR-Empfänger geliefert, mit dem Sie ein Auto mithilfe einer IR-Fernbedienung steuern können.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist sicherlich praktisch, ein komplettes Kit zu kaufen. Hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
---|---|---|
3-in-1 Starter Kit |
380+ |
Sie können sie auch separat über die untenstehenden Links kaufen.
KOMPONENTENVORSTELLUNG |
KAUF-LINK |
---|---|
- |
|
- |
|
- |
Verdrahtung
Bauen Sie jetzt den Schaltkreis gemäß dem untenstehenden Diagramm.
IR-Empfänger |
R3 Platine |
---|---|
OUT |
12 |
GND |
GND |
VCC |
5V |
LED |
R3 Platine |
---|---|
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.
Hier wird die Bibliothek
IRremote
verwendet. Sie können sie über den Library Manager installieren.
Nachdem der Code erfolgreich hochgeladen wurde, drücken Sie die 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 nach links
2: Vorwärts
3: Vorwärts nach rechts
4: Links abbiegen
6: Rechts abbiegen
7: Rückwärts nach links
8: Rückwärts
9: Rückwärts nach rechts
Wie funktioniert es?
Das Ziel dieses Projekts ist es, das Auto durch Auslesen des Tastenwerts 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 Bibliothek
IRremote
. Sie können diese aus dem Library Manager installieren.#include <IRremote.h> const int IR_RECEIVE_PIN = 12; // Define the pin number for the 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 remote IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // Start the receiver Serial.println("REMOTE CONTROL START"); }
Wenn Sie die Tasten auf der Fernbedienung drücken, der Infrarotempfänger erkennt, welche Taste gedrückt wurde. Anschließend bewegt sich das Auto entsprechend dem zugehörigen Tastenwert.
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(); // Enable receiving of the next value } }
Überprüft, ob ein IR-Signal empfangen und erfolgreich decodiert wurde.
Decodiert den IR-Befehl und speichert ihn in
key
mit einer benutzerdefinierten FunktiondecodeKeyValue()
.Überprüft, ob der decodierte Wert kein Fehler ist.
Gibt den decodierten IR-Wert auf dem seriellen Monitor aus.
Setzt den IR-Signalempfang für das nächste Signal fort.