Arduino detectar corte de luz

Sim900 pinout

Probablemente tienes un par de aparatos que dependen de una fuente de alimentación constante. Puede ser cualquier cosa como una nevera, una bomba de agua, un servidor o un router. Si estas cosas están cerca de ti, puedes reaccionar al instante si el suministro de energía falla. Pero qué pasa si esto ocurre en una zona remota. Si tienes el frigorífico en otro lugar y falla el suministro eléctrico, con el tiempo puedes tener un montón de basura. Para evitar este tipo de situaciones, Medhi inició un proyecto de alarma de fallo de alimentación con Arduino, en el que el circuito detectaría cuando falla la alimentación y enviaría un mensaje corto al propietario para que pudiera tomar medidas inmediatamente y salvar un día.

El dispositivo de alarma está basado en Arduino. Para enviar los SMS, utilizó el viejo teléfono Nokia3310, que tiene mucha información sobre la interconexión mediante comandos FBUS. Lo siguiente fue detectar un fallo de alimentación. Esto se implementa utilizando la fuente de alimentación de Arduino con una batería de 9V de respaldo. Arduino simplemente detecta el voltaje entrante del adaptador de alimentación y si falla, entonces cambia a la batería de respaldo. Con el fin de tener suficiente energía para cambiar entre las fuentes de alimentación hay un gran tapón que impide el reinicio de la placa. No sé si esta es una buena manera de hacer esto, pero si funciona, por qué no.

Arduino guardar la energía variable apagado

Quiero ser capaz de realizar una acción en caso de corte de energía, es decir, cuando la electricidad se va, ya que mis routers de red están en UPS por lo que no sabe acerca de los cortes de energía, así que de alguna manera quiero ser capaz de almacenar los datos de fallo de alimentación en un archivo de texto a través de PHP, así que ¿de todos modos es posible escribir los datos de fallo de alimentación a un archivo de texto a través de PHP?

Si usted tiene un servidor corriendo en los routers que puede ser accedido remotamente, usted podría simplemente hacer «ping» («file_get_contents» o «curl») a su router con peticiones. Si obtienes un error, significa que ya no está conectado. Y luego guardar esto en un archivo de texto.

Módulo gsm Sim900

Durante el sketch el Mega está controlando los 12 steppers a través de señales enviadas a cada uno. Estoy usando módulos Teensy individuales para controlar los drivers Leadshine DM320T. Los módulos Teensy también comprueban los interruptores de límite en cada motor y otras entradas, por lo que estoy utilizando módulos individuales para cada motor. No tendría suficientes pines usando sólo el Mega (confía en mí).

Los motores se ponen a cero en el arranque. Durante el sketch, hay poca posibilidad de que se pierdan pasos, pero eso siempre es una preocupación. Todos los motores vuelven a la posición inicial cuando se completa cada rutina. Dependiendo de la entrada (selección del interruptor), cada rutina variará, así como el recorrido del motor. Al final, siempre vuelven a la posición inicial.

¿Cómo puedo agregar un circuito de detección (?) para saber si se perdió la energía y se interrumpieron las rutinas. Si se detecta esto, detendría toda la operación hasta que se pulse un interruptor de botón y los motores se pongan a cero y vuelvan a la posición de inicio.

Una vez que están en la posición de inicio sé su posición. algunas rutinas se ejecutan una tras otra. El cero está determinado por los interruptores de límite en el recorrido máximo de los motores. La posición de inicio está en el centro.

Esp32 detecta la pérdida de energía

En un Arduino Mega, necesito guardar datos en la EEPROM (unos 40 bytes) en caso de fallo de alimentación. Los datos cambian constantemente (posición de los steppers, velocidad, etc), pero como la EEPROM tiene ciclos de escritura limitados, los datos necesitan ser escritos sólo cuando se detecta una caída de energía, por lo que las escrituras periódicas en el bucle principal o en un temporizador están fuera de lugar.

Normalmente, se necesitaría un supercondensador como respaldo para cuando la energía se cae, pero creo que no es necesario ya que la fuente de alimentación ya los tiene y tarda 1-2 segundos en descargarse cuando se apaga, incluso con un ventilador de 12V funcionando con la fuente de alimentación. Asumiremos el escenario de 2 segundos como máximo, lo que implica que la fuente de alimentación esté encendida durante al menos unos minutos para que los tapones se carguen por completo.

Como mecanismo de detección de caída de tensión, he pensado en un divisor de tensión con 2 resistencias, en paralelo con la alimentación VIN del Arduino (es decir, un circuito totalmente independiente, no dependiente), con la salida del divisor yendo a un pin analógico del Arduino. Siendo la entrada de la fuente de alimentación Vin=12V, yo elegiría los valores de las 2 resistencias R1=10K y R2=5K. Eso significaría un máximo de 0,4mA para el pin y estaría muy por debajo de la corriente recomendada de 20mA que soporta un pin de Arduino. Una relación 1:2 para las resistencias daría entonces una relación Vin/Vout=1/3, y eso significa un Vout=4V máximo que va al pin analógico. Leyendo el valor del pin, con la referencia de voltaje del Arduino a los 5V por defecto, el valor «normal» sería alrededor de 819 (en la escala analógica 0-1023).

Usamos cookies para asegurar que le damos la mejor experiencia en nuestra web. Si continúa usando este sitio, asumiremos que está de acuerdo con ello. Nuestros socios (incluye a Google) podrán compartir, almacenar y gestionar sus datos para ofrecerle anuncios personalizados    Más información
Privacidad