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+

3 in 1 Starter Kit

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

KOMPONENTENVORSTELLUNG

KAUF-LINK

SunFounder R3 Platine

BUY

L9110 Motortreibermodul

-

TT Motor

-

LED

BUY

IR-Empfänger

-

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

../_images/car_9.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.

  • Hier wird die Bibliothek IRremote verwendet. Sie können sie über den Library Manager installieren.

    ../_images/lib_irremote.png

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.

  1. 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
    
  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 remote
        IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);  // Start the receiver
        Serial.println("REMOTE CONTROL START");
    }
    
  3. 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 Funktion decodeKeyValue().

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