Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Arduino Power

Componentes y suministros

Adafruit PowerBoost Charger Shield
× 1
Pila recargable de Lipoly (genérica)
3.7 - 4.2V
× 1
Arduino UNO
× 1

Acerca de este proyecto

Los proyectos que involucran a la familia Arduino de placas de microcontroladores generalmente no necesitan ningún circuito especial de administración de energía. Conecta una fuente de alimentación, el dispositivo arranca, hace su trabajo y luego se detiene cuando se desconecta la alimentación. A diferencia de un sistema Raspberry Pi, no hay riesgo de dañar una tarjeta de memoria SD.

Pero para algunas aplicaciones, es posible que desee monitorear el estado de la energía y responder de una manera más administrada, en lugar de simplemente apagarse.

Considere un dispositivo de detección remota que registra datos de temperatura, por ejemplo. Si la batería se agota mientras está desatendida, los registros simplemente se detienen. No hay forma de saber inmediatamente que la batería baja fue el problema. Podría haber sido una falla de software o hardware.

Del mismo modo, para un sistema portátil, sería útil saber cuánta batería queda y cuándo debe recargarse.

Este proyecto presenta varios enfoques para la administración de energía de Arduino con circuitos, software y descripciones para cada uno de ellos. Comenzando con un simple interruptor de encendido / apagado hasta un sistema de registro de datos que incluye el estado de la batería, que está diseñado para el monitoreo del entorno desatendido.

Puede elegir cuál de los subsistemas le interesa. Los describiré todos con una complejidad cada vez mayor, pero puede comentar las partes que no le interesan.

El proyecto se basa en las ideas de los proyectos LiPoPi y Pi Power, que proporciona una funcionalidad similar para los sistemas Raspberry Pi.

Descripción general

El sistema proporciona varias funciones:

  • Encender / apagar con un botón
  • Controle el voltaje de la batería usando el Arduino ADC
  • Apague el sistema con bajo voltaje
  • Registre el voltaje de la batería y un mensaje de apagado para archivar
  • Muestra el estado de la batería con un LED rojo / verde

Presentaré cada uno de estos a su vez, pero el hilo común de todos ellos es la combinación de Adafruit PowerBoost y Arduino.

Con cada uno de estos, agrega y personaliza dos funciones, arduinoPowerSetup () y arduinoPowerMonitor ( ) , al estándar setup () y loop () funciones en su código.

Escudo Adafruit PowerBoost

El sistema utiliza una batería LiPoly recargable y un protector de cargador Adafruit PowerBoost, que pueden cargar la batería y aumentar su salida a 5V.

Adafruit fabrica tres versiones de Power Boost:dos placas de ruptura y un Arduino Shield. La mayor parte del trabajo que se describe aquí usa Power Shield, pero hablaré sobre el uso de los tableros de ruptura más adelante.

Lea esta página sobre cómo configurar PowerBoost Shield. Para preparar el kit Shield necesita:

  • Suelde en las tiras de cabezal de apilamiento
  • Pero no conecte el interruptor
  • Suelde un trozo de cable (4 pulgadas, núcleo sólido 22AWG) al pin de habilitación
  • Puentee las almohadillas para el pin analógico A0 en la parte inferior del escudo

Circuito de encendido / apagado

Este circuito básico utiliza la presión de un interruptor de botón momentáneo para encender el sistema y, cuando está en funcionamiento, para apagarlo, de manera similar a la forma en que funciona mi teléfono.

Cuando presiona y mantiene presionado un sistema apagado, el PowerBoost se enciende y suministra energía al Arduino, que luego se inicia y ejecuta el programa que ha cargado en él.

Cuando presiona el botón nuevamente y lo suelta, el Arduino desactiva el PowerBoost y, debido a que ya no está suministrando energía, el Arduino se apaga.

Lea esta página para conocer los detalles. Aquí está el esquema:

Nota: No necesita este circuito para usar el resto de este proyecto. Puede usar el interruptor opcional provisto con el protector PowerBoost. La principal diferencia es que el conmutador básico simplemente apaga el sistema y no hay forma de grabar un mensaje de registro.

Supervisar el voltaje de la batería

El Arduino tiene 6 convertidores analógicos a digitales (ADC) en los pines analógicos 0-5, lo que simplifica la medición de voltaje. El escudo PowerBoost le permite conectar el voltaje de la batería ( Vbat ) a uno de estos conectando las almohadillas de soldadura adecuadas como se describe en la página PowerBoost Shield. En este ejemplo, lo he vinculado al pin analógico 0 .

El voltaje de las baterías LiPoly varía entre los 4,25 V cuando está completamente cargada a alrededor de 3,7 V cuando se descarga. El ADC convierte el rango de voltaje de 0 V a 5 V en el rango de números enteros de 0 a 1023 , y accedemos a este valor llamando a analogRead () .

Este fragmento de código muestra cómo hacer esto y también cómo calcular el estado relativo de la batería usando los voltajes mínimo y máximo de la batería.

  float maxVoltage =4.25; flotador minVoltaje =3,75; arduinoPowerVoltage =float (analogRead (arduinoPowerVoltagePin)) / 1024.0 * 5.0; float fraccionalVoltaje =(arduinoPowerVoltage - minVoltage) / (maxVoltage - minVoltage);  

Las baterías LiPoly no pierden voltaje linealmente a medida que se descargan, pero están lo suficientemente cerca que podemos estimar la vida restante de la batería usando el voltaje fraccional.

Entonces podemos obtener el voltaje de la batería y estimar la vida útil restante, pero necesitamos una forma de comunicárselo al usuario. Podríamos usar una pantalla alfanumérica y en la siguiente sección mostraré cómo registrar esto en un archivo en una tarjeta SD. Pero esos pueden ser excesivos para muchos proyectos.

Un enfoque más simple es usar un RGB y cambiar el color para reflejar la duración de la batería. Por ejemplo:

  • Verde:más del 50%
  • Amarillo:20% a 50%
  • Rojo:menos del 20%, tiempo de recarga

Para implementar eso, simplemente agregue un LED RGB y dos resistencias de 1K al circuito y agregue un poco de código a arduinoPowerMonitor () .

Los LED RGB suelen utilizar un ánodo común entonces este circuito funciona con eso:

NOTA: En la práctica, utilizo el suministro de 3.3V con mis LED.

NOTA: Como mostraré más adelante, puede haber una 'oscilación' significativa en el voltaje medido, por razones que no entiendo. Si la batería está cerca de uno de los valores en los que cambia el color del LED, es posible que vea que cambia entre los dos estados, muy molesto. Una solución rápida es colocar un condensador de 0,1 uF entre pin analógico A0 y Suelo .

Este diseño de tablero no muestra la batería ni el Arduino. El boceto arduino_2_voltage_led implementa Power On / Power Off y visualización de voltaje LED. El código establece el pin verde o rojo en bajo para encender el led y alto para apagarlo.

NOTA: Puede verificar los voltajes medidos y / o depurar descomentando las llamadas a Serial en el código y ejecutando el Monitor en serie en el IDE. Verá el voltaje real y fraccional de la batería. Por alguna razón, la primera llamada es incorrecta.

Registrando el voltaje de la batería en una tarjeta SD

El indicador LED de voltaje es útil para sistemas Arduino portátiles que funcionan con baterías en los que no te preocupas demasiado por los detalles, solo quieres saber cuándo necesitas recargar la batería.

Pero si está monitoreando sensores en un sistema independiente, digamos, entonces es posible que desee registrar el voltaje de la batería junto con los datos del sensor para tener una mejor idea del consumo de energía a lo largo del tiempo.

Para esta parte del proyecto, estoy usando Adafruit Data Logging Shield, que puede registrar datos en un CSV archivo de formato en la tarjeta SD adjunta, junto con las marcas de tiempo. La Guía Adafruit explica cómo SD y RTC las bibliotecas funcionan y debe comprenderlo antes de trabajar en esta parte del proyecto.

El circuito no ha cambiado con respecto al ejemplo anterior; vale la pena mantener el LED, ya que proporciona información inmediata sobre el estado de la batería, pero esto no es necesario.

Debido a que estamos registrando datos en la tarjeta, es importante que registremos un mensaje de apagado. De esa manera podemos saber si el apagado fue intencional o si ocurrió algún error en el sistema.

Además, debido a que estamos monitoreando el voltaje, podemos verificar cuando el voltaje cae por debajo de un nivel mínimo y apagar el sistema de manera segura. Nuevamente, podemos registrar un mensaje sobre eso justo antes del cierre.

El boceto para esto está en arduino_3_voltage_logging. Esto incluye algunas rutinas de utilidades para generar una cadena de marca de tiempo correctamente formateada, etc. e incluye un truco para hacer parpadear el LED rojo si olvidas insertar una tarjeta SD, lo cual hago todo el tiempo.

Toda la pila de Arduino Uno, Data Logging Shield, PowerBoost Shield y protoboard se ve así:

Datos de voltaje

Aquí hay un gráfico del voltaje de la batería a lo largo del tiempo que muestra la disminución gradual durante un período de alrededor de 20 horas. La disminución no es verdaderamente lineal pero, para estimar la potencia restante, es lo suficientemente cercana.

Como mencioné anteriormente, realmente ayuda agregar un capacitor de 0.1uF entre Pin analógico A0 y Suelo . En esta muestra, la línea violeta muestra el impacto del condensador en comparación con el original en azul.

Registro de datos ambientales en una tarjeta SD

Para terminar, aquí hay una adición más al proyecto. Un proyecto que tengo en mente es un monitor ambiental independiente para mi jardín:temperatura, humedad del suelo, etc.

Instalaré el Arduino, etc., en una caja sellada que se dejará desatendida durante un período de tiempo. Además de que la batería se está agotando, quiero comprobar que no entre humedad en el interior de la carcasa y que no experimente temperaturas extremas que puedan dañar el sistema. Una forma barata y fácil de medir la temperatura y la humedad es el sensor DHT22; consulte el Tutorial de Adafruit para obtener más detalles.

En mi código de ejemplo, utilizo pin digital 5 en lugar del pin 2, ya que ya lo estoy usando para la interrupción del botón de apagado.

El código para esto está en arduino_4_voltage_temp_humidity_logging. Una vez que tuve esto funcionando en una placa, lo conecté a un Adafruit Proto Shield. El sensor DHT22 es bastante voluminoso, pero es barato. Eche un vistazo a otras placas de distribución de Adafruit, Sparkfun, etc. para ver otras alternativas.

Conservación de energía en proyectos Arduino

La siguiente etapa de mi proyecto es reducir el consumo de energía y extender la vida útil de la batería.

Mi punto de partida para esto es un excelente tutorial de Adafruit sobre registro de datos de bajo consumo de Tony DiCola.

Código

Github
https://github.com/craic/arduino_powerhttps://github.com/craic/arduino_power
Github
https://github.com/NeonHorizon/lipopihttps://github.com/NeonHorizon/lipopi
Github
https://github.com/craic/pi_powerhttps://github.com/craic/pi_power

Proceso de manufactura

  1. Disipación de energía
  2. Fuentes de energía
  3. Excavadora
  4. Batería
  5. Arduino Spybot
  6. FlickMote
  7. Televisión casera B-Gone
  8. Reloj maestro
  9. Encuéntrame
  10. Energía eólica
  11. Cómo afecta el recorte de subsidios a la industria de las baterías eléctricas