Tabla de contenido:
- Paso 1: Cambiar del proyecto base
- Paso 2: V0.2 de la placa
- Paso 3: Placa de pruebas: controlador de pantalla de caracteres I2c ampliado
- Paso 4: Placa de pruebas: pantalla de caracteres con I2c integrado
- Paso 5: realización
- Paso 6: extensibilidad
- Paso 7: Lista de piezas
- Paso 8: Tablero: Restablecer, botón Gnd E para seleccionar la batería
- Paso 9: Tablero: I2c y pines de la fuente de alimentación
- Paso 10: Tablero: Termistor y voltaje de medición
- Paso 11: Tablero: Resistencia para medir voltaje
- Paso 12: Paso de soldadura: todos los pines
- Paso 13: Pasos para soldar: resistencia de extracción y termistor
- Paso 14: Pasos de soldadura: MOSFET, resistencia para verificar el voltaje
- Paso 15: Código
- Paso 16: Resultado después del montaje
- Paso 17: Primero seleccione el tipo de batería
- Paso 18: Comience a descargar
- Paso 19: Excepciones: batería extraída
- Paso 20: Excepciones: Alerta de temperatura
- Paso 21: prueba del amperaje
- Paso 22: Paquete
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Comprobador de capacidad de batería.
Con este dispositivo, puede verificar la capacidad de la batería 18650, el ácido y otros (la batería más grande que probé es la batería de ácido de 6v 4, 2A). El resultado de la prueba está en miliamperios / hora.
Creo este dispositivo porque lo necesito para verificar la capacidad de la batería china falsa.
Por seguridad, agregué, usando un termistor, la temperatura de la resistencia de potencia y la batería para evitar que se caliente demasiado, con este truco puedo verificar la batería ácida de 6v sin disparar la placa (en el ciclo de descarga algún tiempo pasa a la resistencia de potencia caliente y el dispositivo espera 20 segundos para reducir la temperatura).
Selecciono un pequeño microcontrolador compatible con atmega328 nano (eBay).
Todo el código está aquí.
Paso 1: Cambiar del proyecto base
Robé la idea del proyecto de OpenGreenEnergy, y rehago el tablero para agregar funciones, por lo que ahora se vuelve más general.
v0.1
- VCC de Arduino ahora se calcula automáticamente;
- Variable agregada para cambiar la configuración de una manera más cómoda.
- Porcentaje añadido de descarga
- Temperatura adicional de la batería y la resistencia de potencia
v0.2
- Posibilidad añadida de selección de batería
- Creé un prototipo de tablero (mira el esquema), con la pantalla, el botón y el altavoz fuera del tablero porque en el futuro me gustaría crear un paquete.
- Se agregó la gestión del límite de temperatura a la resistencia de potencia para que pueda bloquear el proceso cuando la temperatura aumenta más allá de los 70 ° (por encima de esta reducción de potencia de la resistencia de temperatura).
v0.3
Próximamente una placa de este servicio
Paso 2: V0.2 de la placa
En v0.2 para admitir varios tipos de baterías, creé una estructura que debe llenarse con el nombre de la batería, el voltaje mínimo y el voltaje máximo (necesito ayuda para llenarlo: P).
// Estructura de la batería typetruct BatteryType {char name [10]; float maxVolt; float minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType batteryTypes [BATTERY_TYPE_NUMBER] = {{"18650", 4.3, 2.9}, {"17550", 4.3, 2.9}, {"14500", 4.3, 2.75}, {"6v Acid", 6.50, 5.91 }};
Ahora uso un conjunto de resistencias de 10k para que el divisor de voltaje lea la temperatura doble de la entrada analógica. Si desea cambiar el soporte de voltaje, debe cambiar este valor (explique mejor a continuación):
// Resistencia al voltaje de la batería
#define BAT_RES_VALUE_GND 10.0 #define BAT_RES_VALUE_VCC 10.0 // Resistencia de voltaje de la resistencia de potencia #define RES_RES_VALUE_GND 10.0 #define RES_RES_VALUE_VCC 10.0
Si no usa termistor, establezca esto en falso:
#define USING_BATTERY_TERMISTOR true
#define USING_RESISTO_TERMISTOR true
Si usa una pantalla i2c diferente, debe reescribir este método:
vacío dibujar (vacío)
En el proyecto, puedes encontrar esquemas fritzing, fotos y más.
Paso 3: Placa de pruebas: controlador de pantalla de caracteres I2c ampliado
Usé una pantalla de caracteres genérica, construí el controlador i2c y lo usé con mi biblioteca personalizada.
Pero si lo desea, puede tomar un controlador i2c normal (menos de 1 €) con una biblioteca estándar, el código sigue siendo el mismo. Todo el código de visualización está en función de dibujo, por lo que puede cambiarlo sin cambiar otras cosas.
Mejor explicado aquí.
Paso 4: Placa de pruebas: pantalla de caracteres con I2c integrado
El mismo esquema sin i2c controlado expandido.
Paso 5: realización
Para medir el voltaje utilizamos el principio de un divisor de voltaje (más información en Wikipedia).
En palabras simples, este código es el factor multiplicador para medir el voltaje de la batería.
batResValueGnd / (batResValueVolt + batResValueGnd)
Inserté las 2 resistencias del valor batResValueVolt y batResValueGnd después y antes del cable de lectura analógica.
batVolt = (muestra1 / (1023.0 - ((BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)) * 1023.0))) * vcc;
sample1 son las lecturas analógicas promedio;
Vcc voltaje Arduino de referencia;
1023.0 es el valor máximo de referencia de lectura analógica (la lectura analógica de Arduino va de 0 a 1023).
Para obtener amperaje, necesita voltaje antes y después de la resistencia de potencia.
Cuando tenga la medida del voltaje antes y después de la resistencia de potencia, puede calcular los miliamperios que consume la batería.
El MOSFET se utiliza para iniciar y detener el drenaje de la batería de la resistencia de potencia.
Por seguridad, inserté 2 termistores para monitorear la temperatura de la batería y la resistencia de potencia.
Paso 6: extensibilidad
Intento crear un prototipo de placa que sea extensible, pero por ahora solo uso un conjunto mínimo de pines (en el futuro agregaré leds y otros botones).
Si desea un voltaje de soporte superior a 10v, debe cambiar el valor de la resistencia de la batería y la resistencia de acuerdo con la fórmula
(BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)
en el esquema Tensión de alimentación de la resistencia
Tensión de alimentación de la resistencia GND 1/2 / (Tensión de alimentación de la resistencia 2/2 + Tensión de alimentación de la resistencia GND 1/2)
El rosa está soldando
Paso 7: Lista de piezas
Propiedades del tipo de pieza de cantidad
- 2 5mm Tornillo TermInal Montaje en PCB Bloque de terminales de tornillo 8A 250V LW SZUS (eBay)
- 1 clon de Arduino Pro Mini (Nano compatible) (eBay)
- 1 canal P básico FET IRF744N o IRLZ44N (eBay)
- 11 10kΩ Resistencia de resistencia 10kΩ (eBay)
- 2 Sensor de temperatura (termistor) 10kΩ; (eBay)
- * Forma de encabezado masculino genérico ♂ (masculino); (eBay)
- * Forma de encabezado femenino genérico ♀ (femenino); (eBay)
- 1 placa PerfBoard Placa prototipo 24x18 (eBay)
-
10R, 10W
resistencia de potencia (eBay) Encuentro la mía en un viejo televisor crt.
Paso 8: Tablero: Restablecer, botón Gnd E para seleccionar la batería
En la parte izquierda de los pines puede encontrar el botón y el timbre.
Yo uso 3 botones:
- uno para cambiar el tipo de batería;
- uno para iniciar la descarga de la batería seleccionada;
- luego uso el pin de reinicio para reiniciar todo y activar una nueva operación.
Todos los pines ya están bajados, por lo que debe activarlos con VCC
El reinicio se activa con GND
El rosa está soldando
Paso 9: Tablero: I2c y pines de la fuente de alimentación
En la base puede ver el VCC, GND y SDA, SCL para mostrar (y otros en el futuro).
El rosa está soldando
Paso 10: Tablero: Termistor y voltaje de medición
A la derecha hay pines para leer el valor del termistor, uno para resistencias de potencia o termistor y el otro para (pines macho / hembra para conectar) termistor de batería.
Luego están los pines analógicos que miden el voltaje diferencial antes y después de la resistencia de potencia.
El rosa está soldando
Paso 11: Tablero: Resistencia para medir voltaje
Aquí puede ver la resistencia que permite soportar un voltaje doble que el pin arduino (10v), debe cambiar esto para admitir más voltaje.
El rosa está soldando
Paso 12: Paso de soldadura: todos los pines
Primero agrego todos los pines y lo sueldo.
Paso 13: Pasos para soldar: resistencia de extracción y termistor
Luego agrego todo el resitor desplegable (para botones) y el conector i2c (pantalla).
Entonces, el termistor de la resistencia de potencia es muy importante, ya que la batería de ácido se calienta demasiado.
Paso 14: Pasos de soldadura: MOSFET, resistencia para verificar el voltaje
Ahora debemos insertar mosfet para activar descarga y resistencia para verificar voltaje.
2 resistencia para voltaje antes de la resistencia de potencia 2 resistencia para voltaje después de la resistencia de potencia, cuando tiene este voltaje, puede calcular el consumo de miliamperios.
Paso 15: Código
El microcontrolador es compatible con nano, por lo que debe configurar su IDE para cargar un Arduino Nano.
Para trabajar, debes descargar el código de mi repositorio de github.
Entonces debe agregar 3 bibliotecas:
- Cable: biblioteca arduino estándar para el protocolo i2c;
- La biblioteca de Termistor de aquí no es la biblioteca que puede encontrar en arduino IDE, sino mi versión;
- LiquidCrystal_i2c: si usa la versión extendida / personalizada del adaptador i2c (mi versión) debe descargar la biblioteca desde aquí, si usa el componente estándar puede tomar la biblioteca de arduino IDE, pero todo se explica mejor aquí.
No pruebo LCD con biblioteca estándar, me parece que son intercambiables, pero si hay algún problema, no dude en ponerse en contacto conmigo.
Paso 16: Resultado después del montaje
La placa base está en la foto, luego podemos ir a probarla.
Paso 17: Primero seleccione el tipo de batería
Como se describe tenemos un mapa de valor con configuración de batería.
// Estructura de la batería typetruct BatteryType {char name [10]; float maxVolt; float minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType batteryTypes [BATTERY_TYPE_NUMBER] = {{"18650", 4.3, 2.9}, {"17550", 4.3, 2.9}, {"14500", 4.3, 2.75}, {"6v Acid", 6.50, 5.91 }};
Paso 18: Comience a descargar
Haga clic en el segundo botón para comenzar a descargar.
En la pantalla puede ver miliamperios actuales, miliamperios / hora, porcentaje de descarga, voltaje de la batería y temperatura de la resistencia de potencia y la batería.
Paso 19: Excepciones: batería extraída
Si retira la batería, el proceso de descarga va a pausar, cuando vuelva a insertarlo, reinicie en el último valor.
Paso 20: Excepciones: Alerta de temperatura
Si la temperatura (batería o resistencia de potencia) se calienta, el proceso de descarga se detiene.
#define BATTERY_MAX_TEMP 50
#define RESISTANCE_MAX_TEMP 69 // 70 ° en la hoja de datos (resistencias de reducción) #define TEMP_TO_REMOVE_ON_MAX_TEMP 20
El valor predeterminado para la temperatura máxima es 50 ° para la batería y 69 para la resistencia de potencia.
Como puede ver en el comentario, la resistencia de potencia se ve afectada por la reducción de potencia cuando supera los 70 °.
Si se activa la alerta, comience TEMP_TO_REMOVE_ON_MAX_TEMP segundos de pausa para poner la temperatura baja.
Paso 21: prueba del amperaje
El resultado de la prueba de amperaje es bueno.
Paso 22: Paquete
Con componente separado, el paquete resulta sencillo de realizar.
En una caja se debe hacer un rectángulo para la pantalla LCD, los orificios para los botones pulsadores y un barril hembra externo para suministrar voltaje desde la fuente de alimentación.
El botón no necesita resistencia desplegable porque ya lo agregué a bordo.
Cuando tengo algo de tiempo lo creo y lo publico.