Banner publicitario de PCBWay
desktop

[APORTE] [AYUDA] Placa de Control para Aspiradoras

Hola compañeros.

Mi Escoba Aspiradora (link) dejó de funcionar de un día para otro y después de comprobar las baterías (18650x7 25.9v) y la electrónica no tuvieran avería alguna, determiné que le había llegado la hora programada para dejar de funcionar. Después de desistir al buscar solución o un recambio de la PCB decidí no tirarla a la basura e intentar crear un circuito de control barato reutilizando las baterías, el interruptor y lo que pudiera rescatar.

Intentando reciclar lo máximo posible que tenía por casa, Empecé desglosando las partes que necesitaría:

- L298N para control de la velocidad del motor por pulsos PWM.
- MicroControlador Arduino NANO 328.
- Un Regulador de tensión LM78xx para alimentar el Arduino a través de la batería.
- Un Divisor de Tensión para conectar la batería a entrada Analógica para su monitoreo y actuar en consecuencia a una lógica establecida.
- BMS 7S para (Cargar, Balancear y Proteger) las Baterías.
- Reciclaje de los Led de la Aspiradora.
- Reutilización del Interruptor SS-24H01 de la Aspiradora.

Programé el Arduino para controlar, según la marcha indicada y según el voltaje restante de la batería, ajustará el DutyCyrcle (PWM) para que la salida al motor siempre de un voltaje fijo de 16v para la primera marcha y 24v para la segunda. El control de los LEDs de nivel de la batería, Pin, modo carga o modo trabajo y alguna cosa más. Cuando haga el esquema del circuito de forma más técnica (ahora lo tengo hecho con InkScape) lo subiré todo al GitHub para compartirlo.

Lo Fui montado todo sobre la marcha mientras me llegaba el BMS y la verdad que luego de unos ajustes aquí y allá funciona estupendamente.

Solo hacía falta instalar el BMS y una vez comprobado que funcionará en descarga. Ya estaba listo para ser montado todo el conjunto.

Ahí es donde me surge un problema. No sé como podría conectar la alimentación externa para cargar la batería. De forma que:
- Si está conectado el cargador, el Arduino se encienda para controlar los leds de cargar.
- Si no está conectado y no hay ninguna marcha puesta, todo este apagado.

¿Ustedes pueden revisar mi humilde proyecto y echarme una mano en eso?

Les adjunto, esquema y fotos de como va de momento:
 

Adjuntos

  • Esquema Conexiónes.png
    Esquema Conexiónes.png
    362 KB · Visitas: 13
  • 001.jpg
    001.jpg
    278.4 KB · Visitas: 13
  • 003.jpg
    003.jpg
    234 KB · Visitas: 14
Para la detección de carga, quizás colocando un jack con corte, algo como;
JACK-DC-5.5.png

Donde el pin (según figura) 4 es el positivo de entrada, el 3 el negativo, y el 2 la señal al arduino que indica si hay o no conectado algo, de ahí tomas la desicion si mostrar solo la carga o activar el motor.

Si la electrónica no permite encender el arduino, puedes colocar dos diodos de modo que a traves de ellos alimentes el regulador con las baterias (mediante el interruptor) o el cargador (mediante el jack. En este caso, quiza convenga usar un mosfet de modo llave que se active solo cuando la puerta se vaya a positivo (pin 2 del jack se abre, y mediante una resistencia conectada al positivo controlas la puerta)...

Tiro ideas nomas...
 
Como el motor solo gira en un sentido no te hace falta un doble puente H, con un simple transistor tienes bastante.
Si dejas el LM te sobra el diodo porque el LM ya lleva.
Sí, tienes razón, quizás esté un poco sobredimensionado. Pero, es lo que tenía a mano. En un cajo desde la última vez que lo use hará una eternidad.
Lo que no entendí bien fue lo del diodo y el LM. Si pudieras concretar, te lo agradecería.

Encontré en por las cajas uno de estos "Conector DC025 5,5x2,1mm" Mañana miraré si me valen.
001.jpg
 
El diodo volante se pone para eliminar la fuerza contraelectromotriz que genera el motor cada vez que lo desconectamos, el LM lleva dentro los diodos necesarios, ese diodo no hace nada.
Bueno lo que hace es quemarse y quemar el LM si te equivocas y lo haces girar al revés.

Si no vas a invertir la marcha al poner un puente H en lugar de un solo transistor tienes el doble de pérdida te tensión.

Respecto a la carga, algunos BMS llevan regulador de carga, la mayoría solo desconectan por sobretensión pero nada más.
He visto alimentadores que controlan la corriente de carga y cortan cuando toca.
Yo personalmente habría usado uno de esos modulitos step down qué puedes controlar corriente y tensión.
 
Gracias por los comentarios. Siempre se agradecen.
Lee el datasheet.
Ya lo hice. Por eso puse el diodo... 🤷‍♂️
00.png

El diodo volante se pone para eliminar la fuerza contraelectromotriz que genera el motor cada vez que lo desconectamos, el LM lleva dentro los diodos necesarios, ese diodo no hace nada.
Bueno lo que hace es quemarse y quemar el LM si te equivocas y lo haces girar al revés.

Si no vas a invertir la marcha al poner un puente H en lugar de un solo transistor tienes el doble de pérdida te tensión.

Respecto a la carga, algunos BMS llevan regulador de carga, la mayoría solo desconectan por sobretensión pero nada más.
He visto alimentadores que controlan la corriente de carga y cortan cuando toca.
Yo personalmente habría usado uno de esos modulitos step down qué puedes controlar corriente y tensión.
Entiendo lo que intentas explicar. De momento como solo dispongo de estos componentes, voy haciendo con ellos.
Sí. Los módulos estos SteepDown son baratos y muy funcionales. Ya pedí unos cuantos.

Este BMS según indican y en teoría, tiene todas las protecciones que puede tener (incluso corta por sobre temperatura) ya veremos...

Ahora mismo, lo que me urge es encontrar una manera ingeniosa con lo que tengo a mi disposición para "conmutar" entre carga y trabajo.

¿Conocen alguna manera de como suele hacerse?

Gracias como siempre por sus comentarios.
 
Yo no usaría un Arduino, usaría un regulador pwm hecho BBB se le da al potenciómetro y se elge el barrimiento.
No usaría un regulador lineal porque es quemar la poca energía de las baterías y además seguramente el módulo pwm funcione directo de la batería.
Buscaría un BMS que controle la carga, el PWM y un interruptor.

Un Arduino tarda en arrancar, consume "mucho" para lo que hace; solo el pwm.

Conmutar entre alimentador o batería se hace solo cuando sueltas el alimentador.
 
Sí. Entiendo que lo haríais totalmente diferente. Bien, pero, me sigue surgiendo la misma duda sobre como conmutaríais "la carga" de la "no carga" y el "modo trabajo". ¿Quizás, implementar un circuito que gestione estas funciones? ¿Existe algo hecho? Por qué no he encontrado nada.
Debe tener algún nombre que desconozco y debe haber mil esquemas que solucionan el problema. ¿Conocen alguno?

Nota: La verdad, la culpa es mía. Debería haber sido más concreto.
A ver si con este nuevo esquema simplificado se entiende mejor lo que necesito y no consigo solucionar:

g2526.png
 
Última edición:
No conmuto nada, no entiendo a qué te refieres.
Si conecto el cargador carga.
Si desconecto el cargador no carga.
Si se pone en marcha, marcha.
Si se para se para.
Si se completa la carga para de cargar, lo que hacen todos los cargadores que merezcan tal nombre.
Si mientras está cargando me apetece ponerla en marcha pues se pone en marcha... Ya que tienes un Arduino programa algo que lo evite. Casi todos los "barrel jack" tienen tres pines y uno de ellos avisa si está insertado el conector o no, eso lo llevas a un pin del "Avelino" y...
 
Sí. Entiendo que lo haríais totalmente diferente. Bien, pero, me sigue surgiendo la misma duda sobre como conmutaríais "la carga" de la "no carga" y el "modo trabajo". ¿Quizás, implementar un circuito que gestione estas funciones? ¿Existe algo hecho? Por qué no he encontrado nada.
Debe tener algún nombre que desconozco y debe haber mil esquemas que solucionan el problema. ¿Conocen alguno?

Nota: La verdad, la culpa es mía. Debería haber sido más concreto.
A ver si con este nuevo esquema simplificado se entiende mejor lo que necesito y no consigo solucionar:

Ver el archivo adjunto 325289

Eso no es necesario. Solo requiere el BMS conectado a la batería, que solo va a cumplir la función de carga de la misma cuando esté conectado al suministro eléctrico. Un interruptor doble polo para conectar el BMS (P+, P-) al sistema del motor.
 
Gracias por vuestro interés compis, os agradezco como siempre vuestros comentarios.
No conmuto nada, no entiendo a qué te refieres.
Si conecto el cargador carga.
Si desconecto el cargador no carga.
Si se pone en marcha, marcha.
Si se para se para.
Si se completa la carga para de cargar, lo que hacen todos los cargadores que merezcan tal nombre.
Si mientras está cargando me apetece ponerla en marcha pues se pone en marcha... Ya que tienes un Arduino programa algo que lo evite. Casi todos los "barrel jack" tienen tres pines y uno de ellos avisa si está insertado el conector o no, eso lo llevas a un pin del "Avelino" y...

Si Scooter, nuevamente tienes razón. Esa es la idea tal cual, punto por punto. Sobre lo de programar el Arduino para que según el estado de un Pin se ponga en modo "Carga" o en modo "trabajo" ya está programado y funciona perfectamente, tal como comente más arriba.


Eso no es necesario. Solo requiere el BMS conectado a la batería, que solo va a cumplir la función de carga de la misma cuando esté conectado al suministro eléctrico. Un interruptor doble polo para conectar el BMS (P+, P-) al sistema del motor.
Mil gracias por tu comentario mcrven. Según entiendo sobre tus líneas (corregirme si me equivoco) el esquema quedaría algo parecido a esto:
g43-7.png
Salvo porque utilizo un polo del interruptor para controlar la marcha, sería así como dices ¿no? En caso de ser así, tal y como está no sirve, me surge el problema (y que es lo que no consigo resolver) que al momento de cargar si está parada no se le suministra energía al Arduino y, por tanto, no puede monitorear la carga y mostrarlo como la placa original (que mostraba las luces en modo carga y el estado de la misma, eso ya está también programado).

A modo de gracia les adjunto el esquema por si alguien se aventura a conseguir el cableado correcto :giggle:
Es posible que haga falta algún componente más, pero, no estoy seguro. Por eso lo he planteado a la comunidad.
Es más complicado de lo que parece o al menos para mí. He hecho varias iteraciones y siempre pasa algo, o se alimenta algo que no debe alimentarse, o no se alimenta cuando debe...

Gracias como siempre.
 

Adjuntos

  • g43-7-0.png
    g43-7-0.png
    74.8 KB · Visitas: 2
Los conectores de alimentación llevan un "conmutador de pilas". Cuando está sacado el jack unen el pin central al auxiliar para que la pila alimente el circuito, cuando metes el jack entonces desconectan del pin central el auxiliar; las pilas se quedan desconectadas y la alimentación pasa directa por el pin central.

Si usas el pin centrla como positivo de la batería o el cargador, tendrás un "1" en el pin auxiliar cuando quirtes el jack y un "aire" cuando lo pongas.

Hablo de memoria, verificalo con un polímetro.

Pon el pin auxiliar con un divisor de tensión al un pin del arduino, cuando metas el jack tendrás un 0 porque el pin auxiliar se desconecta, cuando lo quites tendrás positivo... O no porque eso está antes del bms.... O si porque el bms suele cortar el negativo, no sé.


Osea que creo que no te va a servir ese pin, verificalo.

Lee el pin central con un divisor de tensión antes del regulador de carga/bms
 
La unidad BMS controla la carga de la batería. El Arduino es prácticamente inútil, como te puso @Scooter en el post #11. Ahora... que quieras refinar apariencias... ya es cosa tuya, incluso podrías leer el BMS con el Arduino con optoacopladores y alimentado con la misma batería.
 
Atrás
Arriba