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+ |
También puedes comprarlos por separado en los siguientes enlaces.
INTRODUCCIÓN DEL COMPONENTE |
ENLACE DE COMPRA |
---|---|
- |
|
- |
|
- |
Cableado
Ahora construye el circuito de acuerdo con el diagrama a continuación.
Receptor IR |
Placa R3 |
---|---|
OUT |
12 |
GND |
GND |
VCC |
5V |
Código
Nota
Abre el archivo
9.remote_control.ino
en la ruta3in1-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.
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.
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
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"); }
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 personalizadadecodeKeyValue()
.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.