Saltar al contenido

AUTO RC CONTROLADO POR BLUETOOTH

En este tutorial voy a hacer un automóvil controlado por teléfono inteligente (Bluetooth) basado en Arduino Nano. Todos sabemos que Arduino es una excelente plataforma de creación de prototipos, principalmente porque utiliza un lenguaje de programación amigable y hay muchos componentes extra increíbles que nos brindan grandes experiencias. Podemos integrar el Arduino con diferentes módulos (sensores y actuadores) y construir proyectos fantásticos. 

En este proyecto, mostraré cómo usar el módulo Bluetooth para controlar un automóvil que era a Radio Control, a través de comandos provenientes de un teléfono inteligente o tableta Android a través de Bluetooth.

Este es un proyecto muy interesante. Es simple de hacer, fácil de programar el arduino y también un gran proyecto para todos los «MAKERS» como yo. Así que a no perder el tiempo y a hacer este proyecto.

Lista de materiales:

  • Arduino Nano.
  • Controlador de motor L293D o L298N.
  • Módulo Bluetooth HC05 o HC06.
  • Batería de iones de litio 18650 (2ps) o PowerBank.
  • Marco de modelo de coche RC antiguo con sus 4 ruedas y motor de tracción y dirección.
  • Interruptor deslizante.
  • Cables de conexión.

Diagrama de cableado / diagrama de circuito:

Conexionado general

Conectar el controlador del motor y Arduino.
Tener en cuenta que son pares de conexiones por motor.

D5> IN1
D6> IN2

D10> IN3
D11> IN4

Si no es el resultado adecuado (la tracción quedó en la dirección) tener en cuenta invertir las conexiones del par D5y6 por las del par D10-11.
Y si adelante en el control, el auto va hacia atrás, o dirección derecha es izquierda, invertir IN1 por IN2 e IN2 por IN1.

Conectar el módulo Bluetooth a Arduino.

TX de Arduino -> RX del módulo
RX de Arduino -> TX del módulo

Interruptor general

Conectar el cable positivo de la batería al interruptor, luego conectarlo al Breadboar/Protoboard sector lateral identificado con color rojo y el cable negativo de la batería sector lateral identificado con color Azul.
ATENCIÓN: Tener en cuenta el voltaje de alimentación general. Porque de esto depende no quemar los modulos e incluso el arduino.Si lo alimentamos con un powerbank que nos ofrece salida USB (5Vcc) todo estaría perfecto y todo se conectaría en forma directa luego del interruptor; pero en el caso que sea por baterias de un voltaje superior, en nuestro gráfico utilizamos una bateria de 9Vcc, debemos tener dos circuitos identificados de tensión, lo cual en el breadboard/protoboard podemos realizar sin problemas, porque tiene dos canales independientes en sus laterales. En este caso conectamos la tensión de 9Vcc en Vin de la placa arduino y la patita del arduino de que dice 5V la conectamos al otro canal del breadboard/protoboard como figura en nuestro gráfico y tendremos una salida para alimentar los módulos, tener en cuenta no conectar los motores directamente a esta salida porque quemaremos el arduino. El módulo L298N tiene bornera de alimentación exclusiva para los motores como observamos en nuestro gráfico.

Cargar el código:
Primero, retire su módulo bluetooth, luego conecte el Arduino a su PC, luego cargue el código. Esto es necesario para no generar conflictos, errores en la carga del programa al arduino.

Código totalmente modificable y adaptable a nuevas necesidades futuras, como por ejemplo, luces, bocina, etc.

 int Motor1Pin1 = 5;     //motor1
 int Motor1Pin2 = 6;    //motor1
 int Motor2Pin1 = 10;   //motor2
 int Motor2Pin2 = 11;   //motor2
 char bt = 0;       //BT 
 
 void setup()
 {
   Serial.begin(9600);
   
   pinMode(Motor1Pin1,OUTPUT);
   pinMode(Motor1Pin2,OUTPUT);
   pinMode(Motor2Pin1,OUTPUT);
   pinMode(Motor2Pin2,OUTPUT);
   
 }
 void loop()
 {
   if (Serial.available() > 0) //guarda los datos entrantes en la variable 'bt'
   {
     bt = Serial.read();
   
     if(bt == 'F')           //avanzar
     {
       digitalWrite(Motor1Pin1,HIGH);
       digitalWrite(Motor1Pin2,LOW);
       digitalWrite(Motor2Pin1,LOW);
       digitalWrite(Motor2Pin2,LOW);
     }
     else if (bt == 'B')      //retroceder
     {
       digitalWrite(Motor1Pin1,LOW);
       digitalWrite(Motor1Pin2,HIGH);
       digitalWrite(Motor2Pin1,LOW);
       digitalWrite(Motor2Pin2,LOW);
     }
     else if (bt == 'S')     //alto
     {   
       digitalWrite(Motor1Pin1,LOW);
       digitalWrite(Motor1Pin2,LOW);
       digitalWrite(Motor2Pin1,LOW);
       digitalWrite(Motor2Pin2,LOW);
     }
     else if (bt == 'R')    // girar ruedad a la derecha
     {
       digitalWrite(Motor2Pin1,LOW);
       digitalWrite(Motor2Pin2,HIGH);
       digitalWrite(Motor1Pin1,LOW);
       digitalWrite(Motor1Pin2,LOW);
     }
     else if (bt == 'L')     //girar ruedad a la izquierda
     {
       digitalWrite(Motor2Pin1,HIGH);
       digitalWrite(Motor2Pin2,LOW);
       digitalWrite(Motor1Pin1,LOW);
       digitalWrite(Motor1Pin2,LOW);
     }
     else if (bt== 'G')      //avanzar hacia la izquierda
     {
      digitalWrite(Motor1Pin1,HIGH);
      digitalWrite(Motor1Pin2,LOW);
      digitalWrite(Motor2Pin1,HIGH);
      digitalWrite(Motor2Pin2,LOW);
     }
     else if (bt== 'I')      //avanzar hacia la derecha
     {
      digitalWrite(Motor1Pin1,HIGH);
      digitalWrite(Motor1Pin2,LOW);
      digitalWrite(Motor2Pin1,LOW);
      digitalWrite(Motor2Pin2,HIGH);
     }
     else if (bt== 'H')      //retroceder hacia la izquierda
     {
      digitalWrite(Motor1Pin1,LOW);
      digitalWrite(Motor1Pin2,HIGH);
      digitalWrite(Motor2Pin1,HIGH);
      digitalWrite(Motor2Pin2,LOW);
     }
     else if (bt=='J')       //retroceder hacia la derecha
     {
      digitalWrite(Motor1Pin1,LOW);
      digitalWrite(Motor1Pin2,HIGH);
      digitalWrite(Motor2Pin1,LOW);
      digitalWrite(Motor2Pin2,HIGH);
     }
    }
 }

Descargar la aplicación Android para conectarse al auto:

Aplicación para Android

Descargue la aplicación del controlador del automóvil de Google Play Store.

El enlace de la aplicación: haga clic aquí para ver la aplicación

Ahora empareje su automóvil Arduino con su teléfono móvil en la configuración de bluetooth de su teléfono
Abra la aplicación Aruino Haga clic en el botón ‘Conectar’ Seleccione ‘HC-05’ o cualquier nombre que establezca para su HC-05 y, finalmente, juegue con su propio automóvil BT realizado por usted mismo.

No te olvides de compartir en...

4 comentarios en «AUTO RC CONTROLADO POR BLUETOOTH»

  1. hola buenas cuando cargo el código me salta error
    esto es lo que dice

    C:\Users\gustavo\AppData\Local\Temp\.arduinoIDE-unsaved20231111-12156-1hn8hjm.97rc\sketch_dec11a\sketch_dec11a.ino: In function ‘void loop()’:
    C:\Users\gustavo\AppData\Local\Temp\.arduinoIDE-unsaved20231111-12156-1hn8hjm.97rc\sketch_dec11a\sketch_dec11a.ino:19:28: error: ‘gt’ was not declared in this scope
    if (Serial.available() > 0) //guarda los datos entrantes en la variable ‘bt’
    ^~
    C:\Users\gustavo\AppData\Local\Temp\.arduinoIDE-unsaved20231111-12156-1hn8hjm.97rc\sketch_dec11a\sketch_dec11a.ino:19:28: note: suggested alternative: ‘bt’
    if (Serial.available() > 0) //guarda los datos entrantes en la variable ‘bt’
    ^~
    bt

    exit status 1

    Compilation error: ‘gt’ was not declared in this scope

    1. Hola! Disculpa la demora.
      Lo probé nuevamente ayer y funciona ok.
      Me imagino, porque me paso con otros código en diferentes equipos y suelen dar errores similares.
      Varios de ellos solucioné eliminando y reinstalando IDE Arduino.
      El error figura en la línea IF, no le encuentro error de sintaxis, por eso me remito a problemas en el IDE.
      Saludos.
      Cualquier cosa avisame.

  2. Pingback: Experiencia Significativa – IE Carlos Vieco Ortiz

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Salir de la versión móvil