Si desea simplificar aún más el circuito, le sugiero que use este circuito que usa solo una resistencia y un optoacoplador de doble canal (K814P) en el lado de la línea:
Estoledarápicosencadacrucedeceroquepuedeusarcomoreferenciadetiempoparasuretrasoderegulación.Esteesuncircuitoenfuncionamientoyprobado.
Sinembargo,antesdeusarlo,debesteneralgoenmente.Ladeteccióndecruceporceronoseráunpicoinfinitamenteagudo.Enrealidadseráasí:
Elazuleslafuentedealimentación(220V50Hz)yelamarilloeslasalidadelcircuito(enunsistemade3.3V).
Elpicoseobservaráenelcrucecero,perosumicrocontrolador(arduino)detectaráLogicHIGHoLogicLOWunospocosmsantesdelpicoylatensióndesalidamásbaja,respectivamente.¿Porqué?Debidoaqueenunsistemade3.3V,cualquiervoltajeporencimade2VseinterpretarácomoALTO.Algosimilarocurriráconunsistemade5V.
Ademásdeesto,cualquiervoltajeporencimade0,8VtambiénpuedeinterpretarsecomoALTOaveces.Porlotanto,hayunaregiónenlaquenopuedeestarsegurodelosniveleslógicosquepuedeversumicrocontrolador.Paraestarenelladomásseguro,debespermanecerfueradeesazona.Consideraesto:
Como se ve aquí, 0.8 V es el voltaje máximo que confirma una señal lógica BAJA definida. Cualquier señal más que eso podría ser registrada como ALTA.
Tomando el peor de los casos de detección ALTA a 0,8 V, si el triac se enciende dentro del período de 1,3 ms de la detección ALTA, podría conducir a un comportamiento poco confiable. Si se asegura un retraso mínimo de 2 ms en el código, se asegurará una atenuación robusta del dispositivo sin parpadeo.
Para el retraso máximo, considerando el peor de los casos de detección de cero a 2 V, el retraso máximo puede ser de 9,5 ms. Sin embargo, para estar en el lado más seguro, se debe usar un retraso máximo de 9 ms. Para un sistema de 5V y las partes exactas elegidas, el tiempo puede ser un poco desviado, pero debería poder programar por prueba y error.