Go Down

Topic: Leer estado de rele externo (Read 16311 times) previous topic - next topic

surbyte


arlaor

Buenas tardes surbyte
he subido tu codigo y lo he probado y he encontrado lo siguiente:
cuando el circuito inicialmente está apagado y luego se accionan los 110AC, arduino lo detecta normal y muestra el mensaje AC_ON correctamente.
cuando el circuito esta inicialmente encendido, arduino omite o desconoce el estado del circuito, dado a que no hay un cambio de estado aun, por tanto no muestra AC_ON, pero si luego de esto apago el circuito y vuelvo a activarlo, arduino ya muestra el mensaje AC_ON, dado que ya se produjo un cambio de estado.
entiendo que esto sucede, porque las interrupciones detectan y envian informacion siempre y cuando inicialmente haya un cambio de estado, dependiendo del tipo de interrupcion de LOW a HIGH, viceversa o ambos, pero no cuando inicia en el estado que deseo detectar.
No se si esto se pueda solucionar en el codigo de la interrupcion o se deba generar un codigo aparte para la deteccion inicial del estado. Estoy pensando en las posibles opciones.


surbyte

#62
Jan 28, 2017, 03:47 am Last Edit: Jan 28, 2017, 03:53 am by surbyte
Yo no te di la respuesta final, sino el camino para que lo trabajes tu.
El código que puse lo adapté en 2 min de un dimmer. Asi que puede tener fallos.

Code: [Select]
if (XtimePeriod > 9750) // mayor que 9750 useg      // ajusta este tiempo a ver si va bien
     zero_cross = 1;                                 // set the boolean to true to tell our dimming function that a zero cross has occured
 }
 else
     zero_cross = 0;

en un ambiente de 50 hz la señal tiene dos semiperíodos de 10 mseg.
En un ambiente de 60 hz la señal tiene dos semiperiódos de 8.333mseg
Entonces corrige ese 9750 porque estaba pensado para 50 hz (mi frecuencia de red) y ajusta a tu caso.
Ya que hablas de 110VAC supongo que será 60Hz.
Prueba esa parte del código para que detecte un cruce x cero 60/50Hz

arlaor

creo que no me hice entender, el código trabaja bien con el valor que tiene, los cambios los asume correctamente, pero como te decía los cambios de AC ON y AC OFF no tienen ningún inconveniente, sino cuando el estado inicial del circuito esta en modo activo (encendido) y el arduino apagado, entonces cuando el arduino inicia, no detecta que el circuito ya está encendido, porque aun no ha pasado de inactivo a activo, que es el caso en el que las interrupciones trabajan, o sea, aun no ha sucedido una interrupción y por esto arduino no detecta el real estado del circuito. No se si aclaro un poco o confundo mas.

surbyte

Si ahora te comprendo.
Pero eso no se corrige en 1 semiperíodo? Por tu comentario no... voy a analizarlo.

daviten

Quiero hacer esto , no me sale.

surbyte


Go Up