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+

3 in 1 Starter Kit

Sie können sie auch einzeln über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

SunFounder R3 Platine

BUY

L298N Modul

BUY

TT Motor

-

LED

BUY

IR-Empfänger

-

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

../_images/car_remote.png

Code

Bemerkung

  • Öffnen Sie die Datei 9.remote_control.ino im Pfad 3in1-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.

    ../_images/lib_irremote.png

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.

  1. 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
    
  2. 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");
    }
    
  3. 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 Funktion decodeKeyValue().

    • Ü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.