¿Es correcto el circuito de detección de cruce por cero?

Estoy trabajando en un circuito de atenuación de CA de bricolaje con arduino. Este proyecto es parte del circuito de atenuación de CA como se menciona aquí

Desde entonces, estaba atrapado, así que pensé en volver sobre mis pasos y verificar cada parte del circuito y luego seguir avanzando (a la parte del triac).

Resulta que ni siquiera soy capaz de hacer detección de cruce por cero.

Mi código en arduino:

int led_to_glow = 12;

void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);
  attachInterrupt(digitalPinToInterrupt(2), zero_crosss_int, RISING);  // Choose the zero cross interrupt # from the table above
}

//the interrupt function must take no parameters and return nothing
void zero_crosss_int(){
  digitalWrite(led_to_glow, HIGH);
  delayMicroseconds(10);
  digitalWrite(led_to_glow, LOW);
  delayMicroseconds(10);
}

void loop()  {
}

El siguiente es el diagrama del circuito:Imagen del circuito

Ahora, soy un novato en proyectos de bricolaje y como este circuito no funcionaba, pensé en publicar mi circuito de tablero aquí también.

Por favor, eche un vistazo al circuito físico.

Circuito físico

(He borrado las partes irrelevantes del circuito)

Un poco de explicación (porque tal vez el diagrama no es lo suficientemente claro)

El cable de puente amarillo de PC 817se envía como interrupción al pin digital 2 de arduino (como se puede ver en el diagrama).

El arduino detecta la señal ASCENSO en él y llama al ISR. He verificado la salida en los pines de la PC 817 yendo al arduino (usando un multímetro), da ~ 10 V.

He agregado un terreno común y VCC de arduino, ya que más adelante en el circuito de atenuación de CA se usará (y entiendo que donde sea que VCC sea de arduino, gnd también debe ser de arduino y no de otro lugar, ¿verdad?) .

Gracias. Sizu

Actualización 1:

Cambié PC 817 a 4N25 (como descubrí más tarde que tenía ese componente)

He agregado una resistencia a la entrada de 4n25 que ingresa 2 V (estoy considerando una resistencia más alta ya que el voltaje directo máximo para 4n25 es 1.5V)

El cable AMARILLO está conectado directamente al pin digital 2 de arduino (es decir, INT0)

Placa de circuito actualizada

Actualización 2:

Resulta que, cuando se apaga la CA, la caída de voltaje entre el cable amarillo (pin de interrupción) y la tierra de arduino es de 5 V CC, mientras que cuando se enciende la CA es de 0,54-0,55 V, ¿algún motivo?

yo tambien he probado

attachInterrupt(digitalPinToInterrupt(2), zero_crosss_int, FALLING);  // Choose the zero cross interrupt # from the table above

Cambié RISING a FALLING , todavía no funcionó.

Con suerte resuelto:

Tengo que encender el LED, olvidé definir el pin del LED como el pin de salida en el código arduino, pero también brilla muy débilmente e incluso el multímetro no puede encontrar la caída potencial en el LED

Así que el nuevo código se ve así:

pinMode(12, OUTPUT);
attachInterrupt(0, ledBlink, FALLING);  // Choose the zero cross interrupt # from the table above
}

Nota :

Falling / RISING / CHANGE (los 3 funcionaron, pero creo que FALLING debería usarse debido a la resistencia pull up)

El LED brilla levemente porque tiene una pequeña relación PWM. El led está encendido durante 10 us y la frecuencia PWM es de 100 Hz (a 50 Hz de red). Así que el led está encendido durante el 0,1% del tiempo
Me preguntaba exactamente lo mismo esta mañana, lo confirmaste gracias, así que si aumento la demora, ¿debería brillar intensamente? Y sí lo hizo :) Gracias una vez más

Respuestas (1)

El circuito de cruce por cero que ha diseñado es conceptualmente correcto: sin embargo, no está correctamente dimensionado. Precisamente, el 30 k Ω Las resistencias que quitó del circuito original no solo tienen la función de reducir el voltaje que va al T 5 optoacoplador ( tipo 4N25 ) a un nivel no destructivo, pero también limita su corriente de ánodo de entrada I A . Sin ellos, el fotodiodo de entrada de T 5 es probable que se destruya durante el encendido. Por lo tanto, debe agregar otras dos resistencias en serie al devanado secundario del transformador, para limitar el valor máximo de I A .

Editar _ Incluso si parece probable que el problema se resuelva configurando correctamente el pin de la placa Arduino, el OP ha pedido consejos sobre cómo dimensionar correctamente la resistencia de entrada del optoacoplador, por lo que decidí agregar las siguientes notas. Comencemos considerando el siguiente circuito estándar de optoacoplador de salida BJT:

esquemático

simular este circuito : esquema creado con CircuitLab

dónde R C es la resistencia del colector de salida (pull-up) y R i norte es la resistencia de polarización de entrada.

  • Cómo diseñar correctamente la resistencia de entrada R i norte ? Suponiendo que la corriente máxima del colector de q 1 es

    I C 1 máximo = V C C R C
    debemos asegurar que la corriente del ánodo de D 1 es suficiente para producir dicha fotocorriente colectora en todas las condiciones . Esto se logra considerando el voltaje pico mínimo V i norte , la tensión máxima del ánodo de D 1 y el CTR mínimo garantizado ( relación de transferencia actual), es decir, deberíamos exigir que
    R i norte C T R V i norte pag k min V A máximo I C 1 máximo
    Esto asegura que el q 1 va en saturación. Al mismo tiempo, necesitamos que la corriente del ánodo no se eleve por encima de su valor nominal máximo absoluto , por lo tanto, debemos exigir que
    I A máximo V i norte pag k máximo V A min R i norte R i norte V i norte pag k máximo V A min I A máximo
    En suma,
    V i norte pag k máximo V A min I A máximo R i norte C T R V i norte pag k min V A máximo I C 1 máximo

  • Consideraciones sobre el tiempo de subida/bajada de la tensión de colector de q 1 . Los optoacopladores no son exactamente los dispositivos más rápidos disponibles en el mercado, debido a la acumulación inherente en su región BC de portadores minoritarios generados ópticamente, que no se pueden quitar rápidamente, y su generación lenta. Sin embargo, el transitorio de encendido suele ser más rápido ya que no implica la eliminación de las cargas almacenadas, por lo tanto, si necesita bordes "empinados" y bien definidos como señales de entrada , elija el V C mi q 1 los que caen .

Gracias Daniele, pero medí el voltaje en el otro lado del optoacoplador solo para estar seguro, y funciona (he mencionado lo mismo en la pregunta) e incluso sin las resistencias, el optoacoplador no se ha quemado (como Lo he comprobado ahora). Además, si tuviera que agregar resistencias, ¿cómo se calcularía el valor? Gracias :)
Según la hoja de datos de PC817 aquí: sharp-world.com/products/device/lineup/data/pdf/datasheet/… , encontré que la corriente directa era de 50 mA y un máximo de 1 A, así que puse una resistencia de 330 ohmios en el entrada de PC817. Sin embargo, todavía no parpadea
Hola @SizuTaylorventuresllc; Agregaré algunas consideraciones a mi respuesta esta noche. Quizás también hay un problema en la salida: ¿el colector del fototransistor está conectado directamente a la placa Arduino o está conectado a una red de entrada?
Daniele, está conectado al pin digital 2 (es decir, INT0 de la placa arduino directamente), es el cable amarillo.
Resulta que, cuando se apaga la CA, la caída de voltaje entre el cable amarillo (pin de interrupción) y la tierra de arduino es de 5 V CC, mientras que cuando se enciende la CA es de 0,54-0,55 V, ¿algún motivo?
Tengo que encender el LED, olvidé definir el pin del LED como el pin de salida en el código arduino, pero también brilla muy débilmente e incluso el multímetro no puede encontrar la caída potencial en el LED
@SizuTaylorventuresllc. Más adelante también veremos esos temas. Siga actualizando la pregunta con sus hallazgos, como ya lo está haciendo.