ELE03
MICROCONTROLADORES
EDDIE MOLINA, OSCAR BLANCO, JUAN
CAICEDO, ELIAN ZAMBRANO, KEINER PUCCINI
INTRODUCCIÓN
Un carro de control remoto por Arduino y HC-05 es un proyecto que combina la tecnología
de Arduino, una plataforma de prototipado electrónico de código abierto, con el módulo
Bluetooth HC-05, que permite la comunicación inalámbrica entre dispositivos.
Este proyecto consiste en construir un pequeño carro que se controla mediante una
aplicación móvil conectada a través de Bluetooth con el módulo HC-05. La aplicación
puede enviar comandos para controlar la dirección y la velocidad del carro, lo que se
traduce en el movimiento de sus motores.
El Arduino actúa como el cerebro del proyecto, procesando los comandos recibidos a través
del módulo Bluetooth y activando los motores del carro en consecuencia. También se puede
utilizar un sensor ultrasónico para evitar obstáculos y garantizar que el carro se mueva de
manera segura y eficiente.
Este tipo de proyecto es una excelente manera de aprender sobre electrónica, programación
y control de motores, y es adecuado tanto para principiantes como para personas con
experiencia previa en electrónica. Además, es una herramienta útil para explorar los
conceptos de robótica y automatización.
MATERIALES
- ARDUINO UNO
- MODULO BLUETOOTH HC-05
- DRIVER L298n
- 2 SERVO MOTORES
- CABLE UTP
- BARRA DE POSITIVO Y NEGATIVO DE UNA PROTOBOARD
- RUEDA DE DIRECCION
EVIDENCIAS DEL CARRO ARMADO
CODIFICACIÓN EN ARDUINO
// CARRO CONTROLADO POR VIA BLUETOOTH DEL GRUPO MOLINA,
CAICEDO, ZAMBRANO, BLANCO Y PUCCINI
#include <SoftwareSerial.h>
#include <Servo.h>
// CONEXIONES PARA EL BLUETOOTH
int bluetoothTx = 2;
int bluetoothRx = 3;
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
// MOTOR 1.
int Motor1A = 5;
int Motor1B = 6;
// MOTOR 2.
int Motor2A = 9;
int Motor2B = 10;
void setup ()
{
bluetooth.begin(115200);
bluetooth.print("$$$");
delay(100);
bluetooth.println("U,9600,N");
bluetooth.begin(9600);
pinMode( Motor1A, OUTPUT );
pinMode( Motor2A, OUTPUT );
pinMode( Motor1B, OUTPUT );
pinMode( Motor2B, OUTPUT );
digitalWrite( Motor1A, LOW );8
digitalWrite( Motor2A, LOW );
digitalWrite( Motor1B, LOW );
digitalWrite( Motor2B, LOW );
}
int flag1 = -1;
int flag2 = -1;
void loop()
{
if(bluetooth.available())
{
char toSend = (char)bluetooth.read();
if(toSend == 'S')
{
flag1 = 0;
flag2 = 0;
digitalWrite( Motor1A, LOW);
analogWrite( Motor1B, LOW);
digitalWrite( Motor2A, LOW),
analogWrite( Motor2B, LOW);
}
if( toSend == 'F' || toSend == 'G' || toSend == 'I')
{
if (flag1 != 1)
{
// ADELANTE EL CARRO.
flag1 = 1;
digitalWrite( Motor1A, HIGH);
analogWrite( Motor1B, 0 );
digitalWrite( Motor2A, HIGH);
analogWrite( Motor2B, 0 );
}
}
if(toSend == 'B' || toSend == 'H' || toSend == 'J')
{
if(flag1 != 2)
{
// REVERSA DEL CARRO.
flag1 = 2;
digitalWrite( Motor1B, HIGH);
analogWrite( Motor1A, 0 );
digitalWrite( Motor2B, HIGH);
analogWrite( Motor2A, 0 );
}
}
if(toSend == 'L' || toSend == 'G' || toSend == 'H')
{
if(flag2 != 1)
{
// GIRA HACIA LA IZQUIERDA.
flag2 = 1;
digitalWrite( Motor2B, HIGH);
analogWrite( Motor2A, 0 );
digitalWrite( Motor1A, HIGH);
analogWrite( Motor1B, 0 );
}
}
else
if(toSend == 'R' || toSend == 'I' || toSend == 'J')
{
if(flag2 != 2)
{
// GIRA HACIA LA DERECHA.
flag2 = 2;
digitalWrite( Motor1B, HIGH);
analogWrite( Motor1A, 0 );
digitalWrite( Motor2A, HIGH);
analogWrite( Motor2B, 0 );
}
}
else
{
if(flag2 != 3)
{
// brr anuel
flag2 = 3;
digitalWrite ( Motor2A, LOW);
analogWrite ( Motor2B, LOW);
digitalWrite ( Motor2B, LOW);
analogWrite ( Motor2A, LOW);
}
}
}
}
DIAGRAMA DE BLOQUE
APLICACIÓN PARA CONECTAR EL CARRO Y GENERAR LOS MOVIMIENTOS
NO CONECTADO EL HC-05
EL HC-05 CONECTADO