Estoy haciendo un circuito que controla una carga para TRIAC, con detección de cero. Cada vez que probaba el circuito, independientemente de lo que enviaba desde el microcontrolador, TRIAC siempre enviaba toda la corriente a la carga.
Cuandomiréunosciloscopioparadetectarcero,medicuentadequesolodetectabacerounavezenunaondacompleta(nodos).Investiguéelcomponentequeestabausandoynotéqueel4N35solotieneunLED,asíquecomonoestabarectificandomiondaantes,soloestabadetectandolapartepositivadelaonda.
NopuedoencontrarningúncircuitointegradoquetengadosLEDenmiciudad,asíquedecidícambiarelsoftware.Estaeslafunciónqueheestadousandocuandodetectalainterrupción:
intdimtime=(65*dimming);//For60Hz=>65usleep(dimtime);//WaitforstartTRIACdigitalWrite(AC_LOAD1,HIGH);//StartTRIACusleep(8.33);//DelayTRIACdigitalWrite(AC_LOAD1,LOW);//Turnoff
Este65vinode:1ondacompletade60Hz=1/60=16.6msAlcanzaráelpuntoceroen:(60Hz)->8.3ms(1/2ciclo)8,3ms=8300us(8300us-8.33us)/128=65(Aprox.)(Y128fuelacantidaddepasosquedividí)
Enmipaís,tengo220Vy60HzparaCA.
Mipreguntaes:¿cómopuedocambiarmicódigoparacontrolarTRIACdetectandocerosoloenelladopositivodelaola?¿Esposible?
Porahora,conestecódigo,cuandoenvío128,simplementedejaquelaondapaseporcompleto,ycuandodigo2,porejemplo,laondadesalidaseapaga"incorrectamente", sin seguir la onda de CA.