Cruce por cero arduino

Cruce por cero arduino

Cruce por cero arduino

Triac de paso por cero

Hemos comprobado el cableado varias veces – es exactamente como en el esquema. El código también lo es – todavía no lo hemos cambiado a 50Hz (Austria 230V/50Hz) pero como eso sólo debería afectar a la temporización pensamos que no debería ser relevante ahora mismo. Por el momento estamos trabajando en una placa de prototipos – sí, lo sé, no es terriblemente segura y sólo la estamos usando para pruebas, mejoraremos la seguridad tan pronto como funcione.

En el bucle principal hicimos imprimir este entero a través de Serial.print() para comprobar si el valor está aumentando de forma constante. Me doy cuenta de que Serial.print es probablemente demasiado lento para captar todos los valores, pero al menos debería probar que el valor está cambiando, por ejemplo, subiendo. (+50 por segundo no debería desbordarlo pronto). El entero fue inicializado globalmente con el valor 0.

Lo que es extraño es que el valor SÍ cambia cuando desenchufamos el cable de 230V del circuito – salta a un valor aleatorio (45 o así) – supongo que desenchufar significa unos cuantos encendidos y apagados. Así que alguna forma de detección entre la ausencia de voltaje y el voltaje está ahí – lo que significa que no debe ser completamente brickeado (espero).

Control del calentador triac de arduino

Puedes utilizar el optoacoplador H11AA1 para ejecutar un concepto de detección de paso por cero. Encenderá el fototransistor por cada medio ciclo de la señal principal de CA. Detectando esta señal usando un MCU como Arduino, podemos encontrar la frecuencia de la señal. Aquí hay un sencillo ejercicio de código Arduino para la detección del cruce por cero.

Según la sugerencia de Chris, he tratado de ampliar mi respuesta para detallar. Aquí está el circuito de Arduino y H11AA1 para la detección de la cruz cero. Lo que he hecho aquí es, simplemente conectar una salida del optoacoplador al pin de interrupción del Arduino que detectará una salida del optoacoplador por cada detección de cruce de cero de la alimentación de entrada. Entonces, la interrupción se solicita al controlador y el controlador se detendrá otra actividad y la llamada de la función ‘zerocrossing’ en el programa. Entonces la función incrementa el valor del contador y parpadea un LED si el valor llega a 60. Dado que, para un solo ciclo de CA, ocurren dos eventos de cruce de cero, el LED parpadeará cada medio segundo. Puedes imprimir el valor del contador en un monitor serial para ver el valor de la frecuencia. He desarrollado el programa asumiendo que el valor de la frecuencia es de 60Hz.

Detección del paso por cero

Conecté primero el Nano y luego encendí la red para la bombilla. El bucle contó hasta el nivel=128 y no pasó nada. Puse una función de «Impresión» en la interrupción y noté, que no se disparaba. Entonces probé a medir la red si hay 230V. Sólo toqué el lado N (azul) del circuito y la luz se encendió. Contó hasta ~90 (baja dimm) y luego el contador no fue capaz de imprimir el nivel cada 250ms (aparentemente la interrupción siguió disparando). Después de llegar a 128 un breve destello brillante apagó la bombilla y el conteo comenzó de nuevo. Ahora la bombilla se mantiene apagada hasta que vuelvo a tocar el lado N con mi multímetro.

A niveles más altos (acercándose a mi límite establecido de 128) el contador se ralentiza (probablemente debido a que sigue disparando la interrupción), la luz parpadea una vez y el bucle vuelve a empezar sin encender la bombilla. Sólo cuando se toca con el multímetro la bombilla comienza a atenuarse de nuevo (hasta que el bucle termina).

Siempre me hace gracia el uso de una resistencia en cada pata del puente rectificador. Sugiere que hay algún intento de «aislamiento» de la red eléctrica que no tiene ningún sentido. Hay una buena razón para poner dos resistencias en serie, para sumar la tensión nominal de las dos, ya que la tensión se comparte por igual. El circuito de RobotDyn en realidad tiene las resistencias en paralelo, ¡y montadas bastante cerca!

Cruce de cero scr

Durante varios años he publicado un control de potencia de CA basado en Arduino. La idea era que una interrupción de un detector de paso por cero se utilizaría con un programa de retardo para disparar un circuito triac. Leyendo el valor de un potenciómetro el Arduino calcularía un retardo en cada medio ciclo de CA de 0 a 8,33 milisegundos. Cuanto más largo sea el retardo, menor será la potencia entregada a la carga. Véase la Fig. 1 y los siguientes enlaces.

La Fig. 4 ilustra las formas de onda de salida en mi PC-osciloscopio. TP2 muestra la forma de onda pobre del circuito colector del transistor. TP3 ilustra un pulso limpio de alto a bajo con un ciclo de trabajo del 7% aproximadamente.

En la Fig. 5 he sustituido los inversores de disparo Schmitt SN74LS14 y el optoacoplador 4N25 por un único circuito optoacoplador H11L1. El pin 4 es una salida de drenaje abierto con una resistencia de pull up. El H11L1 dispone de un circuito interno de disparo Schmitt y detector. El rango de tensión en la salida es de 3 a 16 voltios.

«El H11L1 y el H11L2 tienen un LED infrarrojo de arseniuro de galio acoplado ópticamente a un detector integrado de alta velocidad con salida de disparo Schmitt. Diseñados para aplicaciones que requieren aislamiento eléctrico, tiempo de respuesta rápido, inmunidad al ruido y compatibilidad con la lógica digital.»

Acerca del autor

admin

Ver todos los artículos