Tabla de contenido:
- Paso 1: características y costo
- Paso 2: esquema y teoría de funcionamiento
- Paso 3: PCB y electrónica
- Paso 4: caja y ensamblaje
- Paso 5: Código Arduino
- Paso 6: código Java
- Paso 7: ¡Éxito
Video: Fuente de alimentación digital a batería: 7 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
¿Alguna vez ha querido una fuente de alimentación que pueda usar mientras viaja, incluso sin una toma de corriente cerca? ¿Y no sería genial si también fuera muy preciso, digital y controlable a través de una PC?
En este instructivo, le mostraré cómo construir exactamente eso: una fuente de alimentación digital operada por batería, que es compatible con arduino y se puede controlar a través de la PC a través de USB.
Hace un tiempo construí una fuente de alimentación a partir de una antigua fuente de alimentación ATX y, aunque funciona muy bien, quería mejorar mi juego con una fuente de alimentación digital. Como ya se dijo, funciona con baterías (2 celdas de litio para ser precisos) y puede entregar un máximo de 20 V a 1 A; que es suficiente para la mayoría de mis proyectos que requieren una fuente de alimentación precisa.
Mostraré todo el proceso de diseño y todos los archivos del proyecto se pueden encontrar en mi página de GitHub:
¡Empecemos!
Paso 1: características y costo
Características
- Modos de voltaje constante y corriente constante
- Utiliza un regulador lineal de bajo ruido, precedido por un prerregulador de seguimiento para minimizar la disipación de energía
- Uso de componentes soldables a mano para mantener el proyecto accesible
- Desarrollado por ATMEGA328P, programado con Arduino IDE
- Comunicación con PC a través de la aplicación Java a través de micro USB
- Alimentado por 2 celdas protegidas de iones de litio 18650
- Enchufes banana espaciados de 18 mm para compatibilidad con adaptadores BNC
Especificaciones
- 0 - 1A, pasos de 1 mA (DAC de 10 bits)
- 0 - 20 V, pasos de 20 mV (DAC de 10 bits) (operación real de 0 V)
- Medición de voltaje: resolución de 20 mV (ADC de 10 bits)
-
Medida de corriente:
- <40mA: resolución 10uA (ina219)
- <80mA: resolución 20uA (ina219)
- <160mA: resolución 40uA (ina219)
- <320mA: resolución 80uA (ina219)
- > 320 mA: resolución de 1 mA (ADC de 10 bits)
Costo
El suministro de energía completo me costó alrededor de $ 135, con todos los componentes únicos. Las baterías son la parte más cara ($ 30 por 2 celdas), ya que están protegidas con 18650 celdas de litio, es posible reducir significativamente el costo si no se necesita operación de batería. Al omitir las baterías y los circuitos de carga, el precio baja a alrededor de $ 100. Si bien esto puede parecer costoso, los suministros de energía con mucho menos rendimiento y características a menudo cuestan más que esto.
Si no le importa pedir sus componentes en ebay o aliexpress, el precio con baterías bajaría a $ 100 y a $ 70 sin ellas. Las piezas tardan más en llegar, pero es una opción viable.
Paso 2: esquema y teoría de funcionamiento
Para comprender el funcionamiento del circuito, tendremos que mirar el esquema. Lo dividí en bloques funcionales, de modo que sea más fácil de entender; Por lo tanto, también explicaré el funcionamiento paso a paso. Esta parte es bastante profunda y requiere un buen conocimiento de electrónica. Si solo desea saber cómo construir el circuito, puede pasar al siguiente paso.
Bloque principal
La operación se basa en el chip LT3080: es un regulador de voltaje lineal, que puede reducir los voltajes, basándose en una señal de control. Esta señal de control será generada por un microcontrolador; cómo se hace esto, se explicará en detalle más adelante.
Ajuste de voltaje
Los circuitos alrededor del LT3080 generan las señales de control apropiadas. Primero, veremos cómo se establece el voltaje. La configuración de voltaje del microcontrolador es una señal PWM (PWM_Vset), que se filtra mediante un filtro de paso bajo (C9 y R26). Esto produce un voltaje analógico, entre 0 y 5 V, proporcional al voltaje de salida deseado. Dado que nuestro rango de salida es 0 - 20 V, tendremos que amplificar esta señal con un factor de 4. Esto se hace mediante la configuración de amplificador operacional no inversor de U3C. La ganancia del pin establecido está determinada por R23 // R24 // R25 y R34. Estas resistencias son tolerantes al 0,1% para minimizar los errores. R39 y R36 no importan aquí, ya que forman parte del circuito de retroalimentación.
Configuración actual
Este pin de configuración también se puede utilizar para el segundo ajuste: modo actual. Queremos medir el consumo de corriente y apagar la salida cuando exceda la corriente deseada. Por lo tanto, comenzamos de nuevo por una señal PWM (PWM_Iset), generada por el microcontrolador, que ahora está filtrada y atenuada en paso bajo para pasar de un rango de 0 a 5 V a un rango de 0 a 2 V. Este voltaje ahora se compara con la caída de voltaje en la resistencia de detección de corriente (ADC_Iout, ver más abajo) mediante la configuración del comparador del opamp U3D. Si la corriente es demasiado alta, esto encenderá un LED y también tirará de la línea de ajuste del LT3080 a tierra (a través de Q2), apagando así la salida. La medición de la corriente y la generación de la señal ADC_Iout se realiza de la siguiente manera. La corriente de salida fluye a través de las resistencias R7 - R16. Estos suman 1 ohmio; La razón para no usar 1R en primer lugar es doble: 1 resistencia necesitaría tener una potencia nominal más alta (necesita disipar al menos 1 W), y al usar 10 1% de resistencias en paralelo, obtenemos una precisión mayor que con una sola resistencia del 1%. Puede encontrar un buen video sobre por qué esto funciona aquí: https://www.youtube.com/embed/1WAhTdWErrU&t=1s Cuando la corriente fluye a través de estas resistencias, crea una caída de voltaje, que podemos medir, y es colocado antes del LT3080, ya que la caída de voltaje a través de él no debería influir en el voltaje de salida. La caída de voltaje se mide con un amplificador diferencial (U3B) con una ganancia de 2. Esto da como resultado un rango de voltaje de 0 - 2 V (más sobre esto más adelante), de ahí el divisor de voltaje en la señal PWM de la corriente. El búfer (U3A) está ahí para asegurarse de que la corriente que fluye hacia las resistencias R21, R32 y R33 no pase por la resistencia de detección de corriente, lo que influiría en su lectura. También tenga en cuenta que debe ser un amplificador operacional de riel a riel, porque el voltaje de entrada en la entrada positiva es igual al voltaje de suministro. El amplificador no inversor es solo para la medición del curso aunque, para mediciones muy precisas, tenemos el chip INA219 a bordo. Este chip nos permite medir corrientes muy pequeñas y se direcciona a través de I2C.
Cosas adicionales
A la salida del LT3080, tenemos algunas cosas más. En primer lugar, hay un sumidero de corriente (LM334). Esto consume una corriente constante de 677 uA (establecida por la resistencia R41), para estabilizar el LT3080. Sin embargo, no está conectado a tierra, sino a VEE, un voltaje negativo. Esto es necesario para permitir que el LT3080 funcione hasta 0 V. Cuando se conecta a tierra, el voltaje más bajo sería de aproximadamente 0,7 V. Esto parece lo suficientemente bajo, pero tenga en cuenta que esto nos impide apagar la fuente de alimentación por completo. El diodo Zener D3 se utiliza para fijar el voltaje de salida si supera los 22 V, y el divisor de resistencia reduce el rango de voltaje de salida de 0 - 20 V a 0 - 2 V (ADC_Vout). Desafortunadamente, estos circuitos están en la salida del LT3080, lo que significa que su corriente contribuirá a la corriente de salida que queremos medir. Afortunadamente, estas corrientes son constantes si el voltaje permanece constante; para que podamos calibrar la corriente cuando la carga se desconecta primero.
Bomba de carga
El voltaje negativo que mencionamos antes es generado por un pequeño circuito curioso: la bomba de carga. Para su funcionamiento, me referiría aquí: https://www.youtube.com/embed/1WAhTdWErrU&t=1s Es alimentado por un 50% PWM del microcontrolador (PWM)
Convertidor de carga
Echemos ahora un vistazo al voltaje de entrada de nuestro bloque principal: Vboost. Vemos que es 8 - 24V, pero espera, ¿2 celdas de litio en serie dan un máximo de 8.4 V? De hecho, y es por eso que necesitamos aumentar el voltaje, con un llamado convertidor elevador. Siempre podemos aumentar la tensión a 24 V, independientemente de la salida que queramos; sin embargo, esto desperdiciaría mucha energía en el LT3080 y las cosas se pondrían muy calientes. Entonces, en lugar de hacer eso, aumentaremos el voltaje a un poco más que el voltaje de salida. Aproximadamente 2.5 V más alto es apropiado, para tener en cuenta la caída de voltaje en la resistencia de detección de corriente y el voltaje de caída del LT3080. El voltaje se establece mediante resistencias en la señal de salida del convertidor elevador. Para cambiar este voltaje sobre la marcha, utilizamos un potenciómetro digital, el MCP41010, que se controla mediante SPI.
Bateria cargando
Esto nos lleva al voltaje de entrada real: ¡las baterías! Ya que usamos celdas protegidas, simplemente necesitamos ponerlas en serie y ¡listo! Es importante usar celdas protegidas aquí, para evitar sobrecorriente o descarga excesiva y, por lo tanto, dañar las celdas. Nuevamente, usamos un divisor de voltaje para medir el voltaje de la batería y bajarlo a un rango utilizable. Ahora pasemos a la parte interesante: los circuitos de carga. Usamos el chip BQ2057WSN para este propósito: en combinación con el TIP32CG, básicamente forma una fuente de alimentación lineal. Este chip carga las células a través de una trayectoria CV CC apropiada. Dado que mis baterías no tienen una sonda de temperatura, esta entrada debe estar vinculada a la mitad del voltaje de la batería. Con esto concluye la parte de regulación de voltaje de la fuente de alimentación.
Regulador de 5V
La tensión de alimentación de 5 V del arduino se realiza con este sencillo regulador de tensión. Sin embargo, no es la salida de 5 V más precisa, pero esto se resolverá a continuación.
Referencia de voltaje de 2.048 V
Este pequeño chip proporciona una referencia de voltaje de 2.048 V muy precisa. Se utiliza como referencia para las señales analógicas ADC_Vout, ADC_Iout, ADC_Vbatt. Es por eso que necesitábamos divisores de voltaje para reducir estas señales a 2 V. Microcontrolador El cerebro de este proyecto es el ATMEGA328P, este es el mismo chip que se usa en el Arduino Uno. Ya repasamos la mayoría de las señales de control, pero hay algunas adiciones interesantes de todos modos. Los codificadores rotatorios están conectados a los 2 únicos pines de interrupción externos del arduino: PD2 y PD3. Esto es necesario para una implementación de software confiable. Los interruptores de abajo usan una resistencia pullup interna. Luego está este extraño divisor de voltaje en la línea de selección de chip del potenciómetro (Pot). Un divisor de voltaje en una salida, ¿para qué sirve? tu podrias decir. Como se mencionó anteriormente, el suministro de 5 V no es terriblemente preciso. Por lo tanto, sería bueno medir esto con precisión y ajustar el ciclo de trabajo de la señal PWM en consecuencia. Pero como no tenía más entradas libres, tuve que hacer que un pin tire de doble función. Cuando se inicia la fuente de alimentación, este pin se establece primero como entrada: mide el riel de suministro y se calibra a sí mismo. A continuación, se establece como salida y puede controlar la línea de selección de chip.
Controlador de pantalla
Para la pantalla, quería una pantalla lcd de Hitachi comúnmente disponible y barata. Son accionados por 6 pines, pero como no me quedaban pines, necesitaba otra solución. ¡Un registro de turnos al rescate! El 74HC595 me permite usar la línea SPI para controlar la pantalla, por lo que solo necesito 1 línea de selección de chip adicional.
FTDI
La última parte de este suministro de energía es la conexión con el cruel mundo exterior. Para ello, necesitamos convertir las señales en serie en señales USB. Esto se hace mediante un chip FTDI, que está conectado a un puerto micro USB para facilitar la conexión.
¡Y eso es todo!
Paso 3: PCB y electrónica
Ahora que entendemos cómo funciona el circuito, ¡podemos empezar a construirlo! Simplemente puede pedir el PCB en línea a su fabricante favorito (el mío cuesta alrededor de $ 10), los archivos gerber se pueden encontrar en mi GitHub, junto con la lista de materiales. El montaje de la PCB es básicamente una cuestión de soldar los componentes en su lugar de acuerdo con la serigrafía y la lista de materiales.
El primer paso es soldar los componentes SMD. La mayoría de ellos son fáciles de hacer a mano, excepto el chip FTDI y el conector micro USB. Por lo tanto, puede evitar soldar esos 2 componentes usted mismo y usar una placa de conexión FTDI en su lugar. Proporcioné pines de encabezado donde se puede soldar.
Cuando termine el trabajo SMD, puede pasar a todos los componentes del orificio pasante. Estos son muy sencillos. Para los chips, es posible que desee usar sockets en lugar de soldarlos directamente a la placa. Es preferible usar un ATMEGA328P con el gestor de arranque Arduino, de lo contrario tendrá que cargarlo usando el encabezado ICSP (que se muestra aquí).
La única parte que necesita un poco más de atención es la pantalla lcd, ya que debe montarse en ángulo. Suelde algunos cabezales macho en ángulo, con la pieza de plástico hacia la parte inferior de la pantalla. Esto permitirá una buena ubicación de la pantalla en el PCB. Después de eso, se puede soldar en su lugar como cualquier otro componente pasante.
Lo único que queda por hacer es agregar 2 cables, que se conectarán a los terminales banana en la placa frontal.
Paso 4: caja y ensamblaje
Con la placa de circuito impreso hecha, podemos pasar al caso. Diseñé específicamente la PCB alrededor de esta carcasa Hammond, por lo que no se recomienda usar otra carcasa. Sin embargo, siempre puede imprimir en 3D un estuche con las mismas dimensiones.
El primer paso es preparar el panel final. Necesitaremos perforar algunos agujeros para tornillos, interruptores, etc., lo hice a mano, pero si tiene acceso a un CNC, esa sería una opción más precisa. Hice los agujeros de acuerdo con el esquema y golpeé los agujeros de los tornillos.
Es una buena idea agregar ahora algunas almohadillas de seda y mantenerlas en su lugar con una pequeña gota de súper pegamento. Estos aislarán el LT3080 y TIP32 de la placa posterior, al tiempo que permitirán la transferencia de calor. ¡No los olvide! Al atornillar las virutas al panel posterior, use una arandela de mica para asegurar el aislamiento.
Ahora podemos enfocarnos en el panel frontal, que simplemente se desliza en su lugar. Ahora podemos agregar los conectores banana y las perillas de los codificadores rotativos.
Con ambos paneles en su lugar, ahora podemos insertar el conjunto en la caja, agregar las baterías y cerrarlo todo. Asegúrese de usar baterías protegidas, ¡no quiere que las celdas exploten!
En este punto, el hardware está listo, ¡ahora todo lo que queda es darle un poco de vida con el software!
Paso 5: Código Arduino
El cerebro de este proyecto es el ATMEGA328P, que programaremos con el IDE de Arduino. En esta sección, pasaré por el funcionamiento básico del código, los detalles se pueden encontrar como comentarios dentro del código.
El código básicamente recorre estos pasos:
- Leer datos en serie de java
- Botones de encuesta
- Medir voltaje
- Medir la corriente
- Mida la corriente con INA219
- Enviar datos en serie a java
- Configurar boostconvertor
- Carga la batería
- Actualizar pantalla
Los codificadores rotatorios son manejados por una rutina de servicio de interrupción para que respondan lo más posible.
El código ahora se puede cargar en la placa a través del puerto micro USB (si el chip tiene un cargador de arranque). Placa: Arduino pro o pro mini Programador: AVR ISP / AVRISP MKII
Ahora podemos echar un vistazo a la interacción entre Arduino y la PC.
Paso 6: código Java
Para registrar datos y controlar la fuente de alimentación a través de la PC, hice una aplicación Java. Esto nos permite controlar fácilmente la placa a través de una GUI. Al igual que con el código Arduino, no entraré en todos los detalles, pero daré una descripción general.
Comenzamos haciendo una ventana con botones, campos de texto, etc. Cosas básicas de GUI.
Ahora viene la parte divertida: agregar los puertos USB, para lo cual usé la biblioteca jSerialComm. Una vez que se selecciona un puerto, Java escuchará los datos entrantes. También podemos enviar datos al dispositivo.
Además, todos los datos entrantes se guardan en un archivo csv, para su posterior tratamiento.
Al ejecutar el archivo.jar, primero debemos elegir el puerto correcto en el menú desplegable. Después de conectarse, los datos comenzarán a llegar y podremos enviar nuestra configuración a la fuente de alimentación.
Si bien el programa es bastante básico, puede ser muy útil controlarlo a través de una PC y registrar sus datos.
Paso 7: ¡Éxito
Después de todo este trabajo, ¡ahora tenemos una fuente de alimentación completamente funcional!
También debo agradecer a algunas personas por su apoyo:
- El proyecto se basó en el proyecto uSupply de EEVBLOG y su esquema Rev C. Así que un agradecimiento especial a David L. Jones por publicar sus esquemas bajo una licencia de código abierto y compartir todo su conocimiento.
- Un gran agradecimiento a Johan Pattyn por producir los prototipos de este proyecto.
- También Cedric Busschots y Hans Ingelberts merecen crédito por la ayuda con la resolución de problemas.
¡Ahora podemos disfrutar de nuestra propia fuente de alimentación casera, que será útil mientras trabajamos en otros proyectos increíbles! Y lo más importante: hemos aprendido muchas cosas a lo largo del camino.
Si te gustó este proyecto, vota por mí en el concurso de suministro de energía, ¡te lo agradecería mucho! Https: //www.instructables.com/contest/powersupply/
Segundo premio en el concurso de fuentes de alimentación
Recomendado:
Una fuente de alimentación de banco de Sleak desde la fuente de alimentación de la PC: 8 pasos (con imágenes)
Una fuente de alimentación de banco de Sleak desde la fuente de alimentación de la PC: Actualización: la razón por la que no he tenido que usar una resistencia para detener el apagado automático de la fuente de alimentación es que (creo que …) el led en el interruptor que usé consume suficiente corriente para evitar el PSU apagándose, así que necesitaba una fuente de alimentación de sobremesa y decidí hacer una
Fuente de alimentación ATX encubierta a fuente de alimentación de banco: 7 pasos (con imágenes)
Fuente de alimentación ATX encubierta para fuente de alimentación de banco: una fuente de alimentación de banco es necesaria cuando se trabaja con electrónica, pero una fuente de alimentación de laboratorio disponible comercialmente puede ser muy costosa para cualquier principiante que quiera explorar y aprender electrónica. Pero existe una alternativa barata y confiable. Por conve
Fuente de alimentación Bluetooth digital con alimentación USB C: 8 pasos (con imágenes)
Fuente de alimentación digital USB C alimentada por Bluetooth: ¿Alguna vez ha querido una fuente de alimentación que pueda usar mientras viaja, incluso sin una toma de corriente cerca? ¿Y no sería genial si también fuera muy preciso, digital y controlable a través de tu PC y tu teléfono? En este instructivo, te mostraré cómo construir exactamente
Cómo hacer una fuente de alimentación de banco ajustable con una fuente de alimentación de PC antigua: 6 pasos (con imágenes)
Cómo hacer una fuente de alimentación de banco ajustable con una fuente de alimentación de PC vieja: Tengo una fuente de alimentación de PC vieja por ahí, así que he decidido hacer una fuente de alimentación de banco ajustable con ella. Necesitamos un rango diferente de voltajes para alimentar o Verifique diferentes circuitos eléctricos o proyectos. Por lo tanto, siempre es bueno tener un
¡Convierta una fuente de alimentación ATX en una fuente de alimentación de CC normal !: 9 pasos (con imágenes)
¡Convierta una fuente de alimentación ATX en una fuente de alimentación de CC normal !: Una fuente de alimentación de CC puede ser difícil de encontrar y costosa. Con características que son más o menos impredecibles para lo que necesita. En este Instructable, le mostraré cómo convertir una fuente de alimentación de computadora en una fuente de alimentación de CC normal con 12, 5 y 3.3 v