//Programa movimiento carro controlado via Bluetooth - FÍSICA PARA TODOS
/*Conexion del Modulo Bluetooth HC-06 y el Arduino
ARDUINO Bluetooth HC-06
0 (RX) TX
1 (TX) RX
5V VCC
GND GND
!!Cuidado!! Las conexiones de TX y RX al modulo Bluetooth deben estar desconectadas
en el momento que se realiza la carga del codigo (Sketch) al Arduino.
Conexion Driver L298N
ARDUINO L298N
2 IN1
3 IN2
5 ENA
7 IN3
8 IN4
6 ENB
*/
int IN1 = 2; // IN1 a pin digital 2
int IN2 = 3; // IN2 a pin digital 3
int IN3 = 7; // IN3 a pin digital 7
int IN4 = 8; // IN4 a pin digital 8
int estado = 'c';
void setup(){
Serial.begin(9600); // inicia el puerto serial para comunicación con el Bluetooth pines 0
(RX) y 1 (TX)
pinMode(IN1, OUTPUT); // IN1 como salida
pinMode(IN2, OUTPUT); // IN2 como salida
pinMode(IN3, OUTPUT); // IN3 como salida
pinMode(IN4, OUTPUT); // IN4 como salida
void loop(){
if(Serial.available()>0){ // lee el bluetooth y almacena en estado
estado = Serial.read();
}
if(estado=='a'){ // Boton desplazar al Frente
Avance(); // funcion de avance ambos motores A y B
}
if(estado=='b'){ // Boton IZQ
GiroIzquierda();
}
if(estado=='c'){ // Boton Parar
Detiene(); // funcion que detiene ambos motores
}
if(estado=='d'){ // Boton DER
GiroDerecha();
}
if(estado=='e'){ // Boton Reversa
Reversa();
}
}
void Avance(){ // funcion para avance de motor A y B
digitalWrite(IN1, LOW); // IN1 a cero logico
digitalWrite(IN2, HIGH); // IN2 a uno logico
digitalWrite(IN3, LOW); // IN3 a cero logico
digitalWrite(IN4, HIGH); // IN4 a uno logico
}
void GiroIzquierda(){ // funcion para avance de motor B
digitalWrite(IN1, LOW); // IN1 a cero logico
digitalWrite(IN2, LOW); // IN2 a uno logico
digitalWrite(IN3, LOW); // IN3 a cero logico
digitalWrite(IN4, HIGH); // IN4 a uno logico
}
void GiroDerecha(){ // funcion para avance de motor A
digitalWrite(IN1, LOW); // IN1 a cero logico
digitalWrite(IN2, HIGH); // IN2 a uno logico
digitalWrite(IN3, LOW); // IN3 a cero logico
digitalWrite(IN4, LOW); // IN4 a uno logico
}
void Detiene(){ // funcion que detiene ambos motores
digitalWrite(IN1, LOW); // IN1 a cero logico
digitalWrite(IN2, LOW); // IN2 a uno logico
digitalWrite(IN3, LOW); // IN3 a cero logico
digitalWrite(IN4, LOW); // IN4 a uno logico
}
void Reversa(){ // funcion para reversa de motor A y B
digitalWrite(IN1, HIGH); // IN1 a cero logico
digitalWrite(IN2, LOW); // IN2 a uno logico
digitalWrite(IN3, HIGH); // IN3 a cero logico
digitalWrite(IN4, LOW); // IN4 a uno logico
}