Detectar el apagado automático (y retrasar el apagado)

1

soy nuevo! Y toda una nueva. : \

Construyo un proyecto con un Arduino y algunos neopixels. El problema es que los neopixels almacenan su último estado, y cuando enciendo la fuente de alimentación (para ambos), tienden a parpadear al comenzar antes de que Arduino tenga la oportunidad de apagarlos.

Es un interruptor que enciende y apaga. Así que pensé, puede ser que pueda medir la fuente de alimentación y detectar cuándo está apagada, pero mantenerla con un capacitor (separado por un diodo, por lo que la medición no es falsificada por el capacitor). Si se detecta un nivel de BAJO, podría enviar una señal de apagado a los LED y listo, problema resuelto.

(No usé los valores de resistencia correctos para la caída de voltaje a 5 V. Lo siento)

Mi primera pregunta: ¿Es eso posible? ¿O es el drenaje del arduino a alto para que un capacitor lo mantenga el tiempo suficiente? ¿Qué tan grande debe ser el condensador? ¿O ustedes tienen una mejor manera de resolver esto?

Mi otra idea mucho más simple sería un relé, que omitiría el interruptor y sería encendido por el arduino en su encendido. Así que puedo detectar el estado de apagado y hacer mis cosas y luego desconectarme con los relés. Pero mi objetivo sería hacerlo sin ese relé gigante, feo y ruidoso.

    
pregunta Patrick

2 respuestas

1

Si está totalmente inactivo en el método de cambio, esto es lo que sugeriría:

simular este circuito : esquema creado usando CircuitLab
Esto usa un interruptor DPST, en lugar de SPST. Esta configuración resuelve los problemas de diodo y capacitor que tenía, y le permite usar attachInterrupt () para crear una función para borrar todos los neopixels antes de la pérdida de energía. Tenga en cuenta, sin embargo, que necesitará su (s) condensador (es) para poder suministrar el arduino Y todos los neopixels mientras escribe en ellos. Esto es factible, pero requiere altos valores de faradio. Los supercondensadores pueden ser una opción, pero tienden a ser más caros. BGMicroElectronics tiene algunos que pueden ajustarse a un presupuesto. Los condensadores de 2.7 V y 50 F por un par de dólares los colocan en serie para 5 V y 25 F, pero requieren mucha energía para cargar, demasiado para la gran mayoría de las fuentes de alimentación. Puede buscar otros supercondensadores, pero sugiero este método en su lugar:

Si no está alimentando esto con una batería, use algo como this (SE) (la primera respuesta) o this (youtube) (recomendado) en su lugar, entonces un botón es suficiente para decirle al arduino que se apague, y el propio arduino corta la alimentación, después de reiniciar todos los neopixels. Estas soluciones consumen cantidades mínimas de energía mientras están apagadas, por lo que no las sugiero para aplicaciones con baterías.

Para hacernos eco de Wesley Lee en los comentarios: el diodo y el capacitor que tengas no funcionarán. Los condensadores no permiten que pase la CC, por lo que la configuración por sí sola no permitirá que la energía llegue al arduino, pero el diodo evita que la corriente fluya hacia el condensador de todos modos. Lo arreglé utilizando el interruptor DPST para evitar el contraflujo.

También se podría hacer de esta manera:

simular este circuito

Donde Vin es el conector jack de barril no la línea de 5 V de arduinos, pero nuevamente se encontrará con el problema de cargar los condensadores, y estos contienen toda la energía que necesita.

    
respondido por el ambitiose_sed_ineptum
0

Su solución haría que Arduino encienda todo antes incluso de tomar la lectura analógica, por lo que podría no funcionar tan bien como le gustaría. Asegúrese de no escribir nada en absoluto en el WS2812 cuando no quiera que se enciendan, o si desea que empiecen, puede tranquilizarlo escribiendo 0,0,0 en cada LED.

Si definitivamente no es un problema de software, pruebe un MOSFET de energía. Hará lo mismo que el relé (en este caso), sin ruido de clic. Solo asegúrate de que:

1) Asegúrese de tener un resistor desplegable (para n canales) en su MOSFET para que el valor predeterminado sea APAGADO (sin transferencia de corriente), luego enciéndalo con un ALTO digital cuando desee que los LED se enciendan

2) Elija un MOSFET con una calificación de corriente suficientemente alta para sus LED. WS2812 tira un máximo de unos 60 mA si recuerdo correctamente, así que consigue algo con un poco de espacio para maniobrar. Un MOSFET de 2 amperios puede alimentar 33 WS2812 al máximo, quizás 25 o 30 para estar seguro. Ahora que lo pienso, si estás usando tantos deberías p

También los NeoPixels son una marca de WS2812 (o equivalente), en caso de que fuera un punto de confusión.

    
respondido por el Orotavia

Lea otras preguntas en las etiquetas