Construyendo LS-LT5 (9) Indicador nivel batería.

Hay una pieza de adorno del cuerpo de este droide, que desde que la vi, pensé que por su forma era ideal para añadir luces. Mi idea original era esa, poner unas luces similares a las del dome, con la idea de dar algo más de vida al droide. Pero mi compañero Ibero me dijo que poner un indicador del nivel de batería quedaría muy bien. En ese momento no tenía ni idea de como hacer eso, así que me tocó ponerme a investigar.

La pieza en cuestión es esta (Esta no es mía, está sacada del grupo de Facebook). No me diréis que esos 3 “agujeritos” redondos no animan a poner luces…

Lo primero que hice mientras investigaba como hacer eso, fue modificar el archivo, para imprimir la pieza con esos agujeros hechos al tamaño necesario para poder meter un led de 3mm.

La parte fácil ya estaba hecha, tocaba la parte difícil. Tras leer en varios sitios vi que realmente no es difícil. Necesitamos:

  • Una placa Ardunino por mini de 5V (vale cualquiera, pero esta tiene un tamaño muy reducido y es la más barata)
  • Un reductor de voltaje a 5V para alimentar a la placa Arduino. Volví a usar el mismo que tengo para el sistema de sonido., que para eso vienen 6!!
  • Divisor de voltaje. Yo he usado el FZ0430. Valen muchos otros, e incluso lo podéis hacer vosotros mismos.
  • 3 leds, de diferente color. Mejor si son ya son precableados con la resistencia. Si no, le tendréis que poner una.

Una placa Arduino acepta como máximo 5V de entrada. Todo lo que suba de ese voltaje quemará la placa. Dado que la batería que yo estoy usado es de 11.1V, no puedo conectar directamente esa batería al pin del Arduino. Para ello uso un divisor de voltaje/Tensión.

Como se ve, no es más que 2 resistencias en serie tomando la salida en medio de ambas. De este modo, y siguiendo con esa fórmula, si R1 = 30K y R2 = 7,5K, obtenemos que para un voltaje de entrada de 11,1V, tenemos uno de salida de (7.5/(30+7.5))*11.1 = 2.22V
Es decir, hemos dividido por 5 el voltaje. FZ0430 es justo un divisor por 5 de tensión.

Esto quiere decir que si el pin del Arduio lee 2.22V, yo se que el voltaje que tiene la batería es de 11.1V. Si por ejemplo lee un valor de 2.00, sabré que la batería tiene 10V y que su carga ya se ha acabado.

El esquema de conexión que usado es este:

Si alimentamos todo con una misma batería, la conexión GND del divisor de tensión a la Arduino no es necesaria. Si por el contrario, estáis usando una pila u otra batería para alimentar al Arduino, si será necesaria.

Para alojar todos estos componentes diseñé una cajita que irá pegada en el interior del cuerpo de mi droide.

Vamos ahora con el código del Arduino, que es muy sencillo.

//Código Arduino Medidor Nivel Bateria por Ricardo Juntas
const int sensorPin = A0;   // seleccionar la entrada para el sensor
int sensorValue;         // variable que almacena el valor (0 a 1023)
#define LEDVERDE 2
#define LEDAMARILLO 3
#define LEDROJO 4

//UMBRALES
//Valores para bateria de 11.1V. Necesario ajustar según el voltaje de cada batería.

float maxV = 440;
float medV = 426;
float minV = 413;

void setup() {
   Serial.begin(9600);
   pinMode(LEDVERDE , OUTPUT);
   pinMode(LEDAMARILLO , OUTPUT);
   pinMode(LEDROJO , OUTPUT);
}
 
void loop() {
   sensorValue = analogRead(sensorPin);          // read value
   Serial.println("------------");
   Serial.println(sensorValue);                 // print value
   delay(1000);

   if (sensorValue>=maxV)   // battery full
   {
    digitalWrite(LEDVERDE,HIGH);
    digitalWrite(LEDAMARILLO,HIGH);
    digitalWrite(LEDROJO,HIGH);
   
   }

  else if (sensorValue>=medV) // battery mid
   {
    digitalWrite(LEDVERDE,LOW);
    digitalWrite(LEDAMARILLO,HIGH);
    digitalWrite(LEDROJO,HIGH);
   }

   else if (sensorValue>minV) // battery low
   {
    digitalWrite(LEDVERDE,LOW);
    digitalWrite(LEDAMARILLO,LOW);
    digitalWrite(LEDROJO,HIGH);
   }
   else   // batery very low (risk with lipo battery)
   {
    digitalWrite(LEDVERDE,LOW);
    digitalWrite(LEDAMARILLO,LOW);
    digitalWrite(LEDROJO,LOW);
   }
}

Estos valores del Umbral están hecho para mi batería de 11.1V. El Pin Analógico del Arduino puede leer entre 0 y 1023 (Eso serían 5V). Por tanto, si yo pongo 440 estará entrando un voltaje de 2.15V (440*5/1023), que multiplicado por 5 (Por el divisor de tensión) da que la batería tiene actualmente 10.75V. Cada uno deberá ajustar los valores a su batería. Para ellos lo mejor es conectar la batería totalmente cargada y ver que valor devuelve la lectura (puerto serie 9600) Y sobre ese valor, y el mínimo recomendable si es una batería lipo, ajustar esos valores usando una sencilla regla de 3.

Una vez instalado todo, el resultado en mi droide es este:

Con esto doy por terminada toda la electrónica de este droide. Queda terminar con la pintura y LS-LT5 estará listo!!!

Os dejo los links de descarga del fichero de la pieza del cuerpo con los 3 agujeros para los leds, y de la cajita diseñada para almacenar todo.

Os dejo un PDF con el tutorial en Inglés.
https://drive.google.com/file/d/1Uc-NiYo5MV0IozL_9PU5rC5aAHTvyKKm/view?usp=sharing

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Blog de WordPress.com.

Subir ↑

A %d blogueros les gusta esto: