Si has soñado en tener tu propio Camión Bombero, pero mejor aún, si haz soñado construirlo con tus propias manos, pues ha llegado la hora de poner a trabajar tu imaginación y espíritu creador con esta guía de ayuda donde te mostramos cómo hacer un Camión Bombero con Arduino.
Utiliza elementos que se pueden conseguir fácilmente, aquí la lista completa para que puedas armarlo conforme al diagrama que te vamos a presentar.
¿Cómo armar un Camión Bombero? – Proyecto con Arduino.
Paso 1. Consigue los siguientes materiales.
Materiales.
- Tarjeta Aruino Uno.
- Módulo Sensor termistor de temperatura.
- Módulo Sensor Infrarrojo.
- Módulo bluetooth HC-06.
- Mini Bomba de Agua.
- Circuito Integrado L293.
- Batería recargable LiOn de 12V a 13000mAh.
- Un chasis de carrito como este.
- Un teléfono Android que pueda ajecutar la aplicación que te vamos a dejar aquí abajo.
- Una resistencia de 1 Mega ohm.
- Una resistencia de 100 Kilo Ohms.
- Un protoboard mediano.
Paso 2. Arma el siguiente circuito.
Ahora lo que debes hacer primero es ensamblar los componentes de acuerdo al siguiente diagrama:
Paso 3. Carga el código a tu tarjeta Arduino.
Carga el código a tu Tarjeta Arduino UNO el cual te mostramos aquí abajo.
Recuerda recalibrar los valores que vienen mencionados en el código, estos valores cambiarán dependiendo de las condiciones y componentes que estés utilizando.
¡IMPORTANTE!
Antes de cargar el código a tu tarjeta Arduino UNO es importante que desconectes los pines RX y TX que están conectados al Bluetooth (pin 0 y pin 1 de la tarjeta Arduino UNO). Una vez que termine de cargarse el programa a la tarjeta vuelve a conectarlos.
Código Arduino del Camión Bombero controlado con Bluetooth.
[code language=»java»]
/*
* Created by Nikolidakis Stelios and Valsamakis Kwnstantinos in 2017 //
* Project: Control mini-firefighter via bluetooth with android smartphone
*/
//L293 Connection
const int motorA1 = 5; // Pin 2 of L293
const int motorA2 = 6; // Pin 7 of L293
const int motorB1 = 10; // Pin 10 of L293
const int motorB2 = 9; // Pin 14 of L293
const int pump = 11; //Digital pin (11) for the water pump
const int ledPin = 12; // Digital pin (12) for the alarm led
const int BTState = 2; //Bluetooth (HC-06 JY-MCU) State pin on pin 2 of Arduino
//Battery Level
const float maxBattery = 8.0;// Change value to your max battery voltage level!
int perVolt; // Percentage variable
float voltage = 0.0; // Read battery voltage
int level;
// Use thise to make a delay without delay() function!
long previousMillis = -1000*10;// -1000*10=-10sec. to read the first value. If you use 0 then you will take the first value after 10sec.
long interval = 1000*10; // interval at which to read battery voltage, change it if you want! (10*1000=10sec)
unsigned long currentMillis; //unsigned long currentMillis;
//Useful Variables
int i=0;
int j=0;
int state;
void setup() {
// Set pins as outputs:
pinMode(motorA1, OUTPUT);
pinMode(motorA2, OUTPUT);
pinMode(motorB1, OUTPUT);
pinMode(motorB2, OUTPUT);
pinMode(pump, OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(BTState, INPUT);
// Initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
void loop() {
//Stop the car when connection lost or bluetooth disconnected
if(digitalRead(BTState)==LOW) { state=’S’; }
/* Save incoming data to variable ‘state’
in order to control the car through the
android app */
if(Serial.available() > 0){
state = Serial.read();
}
/*************Sensor Initialization*********/
int TH = analogRead(A1); //Sensor Termistor de Temperatura
int IR = analogRead(A2); //Sensor Infrarrojo
/****************DETECCIÓN DE FUEGO***************/
/*Calibra estos valores de acuerdo a las condiciones
en las que vayas a utilizar este proyecto*/
if ((TH<770) && (IR<100)) { digitalWrite(ledPin, HIGH); }else{ digitalWrite(ledPin, LOW); } /* The programming for the movement of the car (all credits go to Mihalis Vassilakis of www.ardumotive.com for this)*/ /******Vas a tener que recalibrar los valores de acuerdo a los motores que estás utilizando en tu carrito.******/ /***********************Forward****************************/ //If state is equal to letter ‘F’,the car will go forward! if (state == ‘F’) { analogWrite(motorA1, 150); analogWrite(motorA2, 0); analogWrite(motorB1, 175); analogWrite(motorB2, 0); } /**********************Forward Left************************/ //If state is equal to letter ‘G’,the car will go forward left else if (state == ‘G’) { analogWrite(motorA1, 150); analogWrite(motorA2, 0); analogWrite(motorB1, 75); analogWrite(motorB2, 0); } /**********************Forward Right************************/ //If state is equal to letter ‘I’,the car will go forward right else if (state == ‘I’) { analogWrite(motorA1, 75); analogWrite(motorA2, 0); analogWrite(motorB1, 150); analogWrite(motorB2, 0); } /***********************Backward****************************/ //If state is equal to letter ‘B’,the car will go backward else if (state == ‘B’) { analogWrite(motorA1, 0); analogWrite(motorA2, 115); analogWrite(motorB1, 0); analogWrite(motorB2, 150); } /**********************Backward Left************************/ //If state is equal to letter ‘H’, car will go backward left else if (state == ‘H’) { analogWrite(motorA1, 0); analogWrite(motorA2, 150); analogWrite(motorB1, 0); analogWrite(motorB2, 75); } /**********************Backward Right************************/ //If state is equal to letter ‘J’, car will go backward right else if (state == ‘J’) { analogWrite(motorA1, 0); analogWrite(motorA2, 75); analogWrite(motorB1, 0); analogWrite(motorB2, 150); } /***************************Left*****************************/ //If state is equal to letter ‘L’, wheels will turn left else if (state == ‘L’) { analogWrite(motorA1, 100); analogWrite(motorA2, 0); analogWrite(motorB1, 0); analogWrite(motorB2, 0); } /***************************Right*****************************/ //If state is equal to letter ‘R’, wheels will turn right else if (state == ‘R’) { analogWrite(motorA1, 0); analogWrite(motorA2, 0); analogWrite(motorB1, 100); analogWrite(motorB2, 0); } /***************************PUMP**********************************/ //If state is equal to letter ‘W’, turn pump on else if (state == ‘W’) { if (i==0){ digitalWrite(pump, HIGH); i=1; } else if (i==1){ digitalWrite(pump, LOW); i=0; } state=’n’; } /************************Stop*****************************/ //If state is equal with letter ‘S’, stop the car else if (state == ‘S’){ analogWrite(motorA1, 0); analogWrite(motorA2, 0); analogWrite(motorB1, 0); analogWrite(motorB2, 0); } /***********************Battery*****************************/ //Read battery voltage every 10sec. currentMillis = millis(); if(currentMillis – (previousMillis) > (interval)) {
previousMillis = currentMillis;
//Read voltage from analog pin A0 and make calibration:
voltage = (analogRead(A0)*5.015 / 1024.0)*11.132;
//Calculate percentage…
perVolt = (voltage*100)/ maxBattery;
if (perVolt<=75) { level=0; } else if (perVolt>75 && perVolt<=80) { level=1; } // Battery level else if (perVolt>80 && perVolt<=85) { level=2; } //Min ———————— Max else if (perVolt>85 && perVolt<=90) { level=3; } // | 0 | 1 | 2 | 3 | 4 | 5 | >
else if (perVolt>90 && perVolt<=95) { level=4; } // ———————— else if (perVolt>95) { level=5; }
Serial.println(level);
}
}
[/code]
Paso 4. Conecta a tu SmartPhone mediante Bluetooth.
Una vez montado el Mini Camión Bombero, ha llegado el momento de enlazarlo a tu teléfono Adroid usando el bluetooth.
Descargar aquí la aplicación ardumotivebt_v2.1.apk
(En caso de que tengas problemas al ejecutar la aplicación anterior, puedes utilizar esta otra.)
Abre la aplicación, en seguida busca entre los dispositivos detectados el «HC-06», selecciónalo, espera a que la aplicación se enlace con el nuevo dispositivo.
En caso de que pida contraseña introduce: 1234
Aquí ya deberías de estar listo para utilizar tu Mini Camión Bombero.
Nota: Para activar la bomba del Camión Bombero utiliza el botón de las luces en la aplicación.
Te dejamos una foto del prototipo para que te des una idea de cómo quedaría ya montado.
Si tienes dudas recuerda que puedes dejar tus comentarios.
¿Quieres iniciar con Arduino pero aún no sabes cómo? Participa en nuestro próximo Taller completamente práctico. Haz clic en la imagen de aquí abajo.
2 comentarios
juanimigone11
hola, una pregunta, yo tengo la placa L293D en vez del integrado L293, en ese caso, cómo sería la conexión de la placa con los componentes ?? necesito una respuesta por favorr , gracias
Tesl@Bem
Hola Juan.
Gracias por tu comentario.
Es la misma conexión con el L293 que tú tienes. No cambia, así que puedes utilizar el mismo diagrama que alcanzas a ver en este tutorial.
Si tienes más dudas, estamos para ayudarte.