Reto proyecto Medidor Baterías Arduino, sin Arduino
- mjtejedormora
- 4 feb 2018
- 3 Min. de lectura
Primero, debo confesar que no había oído hablar nunca de Arduino, ni de lejos me imaginé que esta pequeña placa ofrecía tal abanico de usos y posibilidades.

En este nuevo gran reto de Educalab he descubierto algunas de las aplicaciones de esta herramienta y con este sencillo video he aprendido a simular un proyecto básico de encendido de una luz led. En la simulación se hace uso de Thinkercadcircuits.
Mediante Arduino, podremos poner en marcha todo tipo de proyectos olvidándonos de la dificultad de crear plaquetas para contener todos los componentes electrónicos necesarios. Esto es posible gracias a una simple programación para darle las órdenes necesarias para controlar todos los aspectos de un proyecto, incluyendo la posibilidad de leer sensores para responder de acuerdo a eventos específicos, mover motores, controlar LEDs y mucho más.
Me he interesado por la elaboración de este proyecto: MEDIDOR DE CARGA DE PILAS Y BATERÍAS. Con 3 leds y 4 resistencias será posible construir este medidor.
Los componentes que se necesitan son :
Arduino UNO o cualquier placa de Arduino
Protoboard donde conectaremos los componentes
Cables para la conexión entre los componentes y la placa
3 resistencias de 220 Ω
1 resistencia de 10 kΩ
1 LED rojo de 5 mm
1 LED amarillo de 5 mm
1 LED verde de 5 mm
Los pasos del montaje son:
Cada LED está conectado en serie con una resistencia de 220 Ω para alargar la vida útil de los mismos. El LED verde está conectado al pin 2, el LED amarillo está conectado al pin 3 y LED rojo está conectado al pin 4.
Para medir la batería se coloca una resistencia pull-down. El polo positivo de la batería lo conectamos a la resistencia de pull-down y a la entrada analógica A0. El otro extremo de la resistencia a tierra. Por último, el polo negativo de la batería debemos conectarlo a la tierra de Arduino.

Antes de entrar a programar se deben tener claros los pasos del algoritmo de trabajo, que son:
Leer el pin analógico donde tenemos conectada la pila
Calculamos el voltaje para el valor que nos ha dado
Evaluamos el voltaje
Si es mayor o igual que el umbral máximo
Encendemos LED verde
Si es menor que el umbral máximo y mayor que el umbral medio
Encendemos LED amarillo
Si es menor que el umbral medio y mayor que el umbral mínimo
Encendemos LED rojo
El resto de los casos
No enciende ningún LED
Apagamos todos los LEDs
Será necesario también utilizar 3 umbrales:
Umbral máximo: indicará que la pila está totalmente cargada.
Umbral medio: de este umbral al umbral máximo la pila se ha usado pero todavía tiene energía.
Umbral mínimo: de este umbral al umbral medio la pila no suministra suficiente energía. Por debajo de este umbral interpretamos que no hay una pila conectada.
Y finalmente el código ARDUINO es el siguiente:
// Pines para los LEDs
#define LEDVERDE 2
#define LEDAMARILLO 3
#define LEDROJO 4
#define ANALOGPILA 0
// Variables
int analogValor = 0;
float voltaje = 0;
int ledDelay = 800;
// Umbrales
float maximo = 1.6;
float medio = 1.4;
float minimo = 0.3;
void setup() {
// Iniciamos el monitor serie
Serial.begin(9600);
// Los pines de LED en modo salida
pinMode(LEDVERDE, OUTPUT);
pinMode(LEDAMARILLO, OUTPUT);
pinMode(LEDROJO, OUTPUT);
}
void loop() {
// Leemos valor de la entrada analógica
analogValor = analogRead(ANALOGPILA);
// Obtenemos el voltaje
voltaje = 0.0048 * analogValor;
Serial.print("Voltaje: ");
Serial.println(voltaje);
// Dependiendo del voltaje mostramos un LED u otro
if (voltaje >= maximo)
{
digitalWrite(LEDVERDE, HIGH);
delay(ledDelay);
digitalWrite(LEDVERDE, LOW);
}
else if (voltaje < maximo && voltaje > medio)
{
digitalWrite(LEDAMARILLO, HIGH);
delay(ledDelay);
digitalWrite(LEDAMARILLO, LOW);
}
else if (voltaje < medio && voltaje > minimo)
{
digitalWrite(LEDROJO, HIGH);
delay(ledDelay);
digitalWrite(LEDROJO, LOW);
}
// Apagamos todos los LEDs
digitalWrite(LEDVERDE, LOW);
digitalWrite(LEDAMARILLO, LOW);
digitalWrite(LEDROJO, LOW);
}
Como reflexión:
Creo que se trata de un proyecto sencillo que se puede realizar para niveles principiantes (como es mi caso o el de mis futuros alumnos), y a la vez de gran utilidad en cualquiera de nuestros hogares donde a menudo almacenamos baterías o pilas a medio usar.
La mayor dificultad se encuentra en el código, que se debe trascribir de forma exacta, cualquier diferencia en los paréntesis o los caracteres de mayúsculas/minúsculas hará que el programa no funcione.
Hasta aquí el tercer reto del curso. Impresionante la aventura Maker. ¡Hasta al próxima!
Comments