9. Control Remoto

Este kit viene con un receptor IR, que te permite usar un control remoto IR para controlar el movimiento del coche.

Componentes Necesarios

Para este proyecto, necesitamos los siguientes componentes.

Es definitivamente conveniente comprar un kit completo, aquí tienes el enlace:

Nombre

ELEMENTOS DE ESTE KIT

ENLACE

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

También puedes comprarlos por separado en los siguientes enlaces.

INTRODUCCIÓN DEL COMPONENTE

ENLACE DE COMPRA

Placa SunFounder R3

BUY

Módulo Controlador de Motor L9110

-

Motor TT

-

LED

BUY

Receptor IR

-

Cableado

Ahora construye el circuito de acuerdo con el diagrama a continuación.

Receptor IR

Placa R3

OUT

12

GND

GND

VCC

5V

../_images/car_9.png

Código

Nota

  • Abre el archivo 9.remote_control.ino en la ruta 3in1-kit\car_project\9.remote_control.

  • O copia este código en el Arduino IDE.

  • Aquí se utiliza la biblioteca IRremote, puedes instalarla desde el Library Manager.

    ../_images/lib_irremote.png

Una vez subido el código con éxito, al presionar un botón en el control remoto, el LED parpadeará una vez para indicar que la señal ha sido recibida, y el coche se moverá de acuerdo al botón que hayas presionado. Puedes presionar las siguientes teclas para controlar el coche.

  • +: Acelerar

  • -: Desacelerar

  • 1: Hacia adelante a la izquierda

  • 2: Hacia adelante

  • 3: Hacia adelante a la derecha

  • 4: Girar a la izquierda

  • 6: Girar a la derecha

  • 7: Hacia atrás a la izquierda

  • 8: Hacia atrás

  • 9: Hacia atrás a la derecha

¿Cómo funciona?

El efecto de este proyecto es hacer que el coche se mueva leyendo el valor de la tecla del control remoto IR. Además, el LED en el pin 13 parpadeará para indicar la recepción exitosa de la señal IR.

  1. Importa la biblioteca IRremote, puedes instalarla desde el Library Manager.

    #include <IRremote.h>
    
    const int IR_RECEIVE_PIN = 12;  // Define el número de pin para el Sensor IR
    
  2. Inicializa la comunicación serial a una tasa de baudios de 9600. Inicializa el receptor IR en el pin especificado (IR_RECEIVE_PIN) y habilita la retroalimentación LED (si es aplicable).

    ...
    
    void setup() {
    
        ...
        //IR remote
        IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);  // Start the receiver
        Serial.println("REMOTE CONTROL START");
    
    }
    
  3. Cuando presiones las teclas en el control remoto, el receptor infrarrojo sabrá qué tecla se ha presionado y luego el coche se moverá de acuerdo al valor de la tecla correspondiente.

    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
    
        }
    }
    
    • Verifica si se recibe y descodifica exitosamente una señal IR.

    • Descodifica el comando IR y lo almacena en key usando una función personalizada decodeKeyValue().

    • Comprueba si el valor descodificado no es un error.

    • Imprime el valor IR descodificado en el monitor serial.

    • Reanuda la recepción de señal IR para la siguiente señal.