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, me quedé atrapado, así que pensé en volver sobre mis pasos y revisar cada parte del circuito y luego solo moverme más (hacia la parte del triac).
Resulta que no soy capaz de hacer la detección de cruce por cero incluso.
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() {
}
A continuación se muestra el diagrama del circuito:
Ahora,soyunnovatoenproyectosdebricolajey,comoestecircuitonoestabafuncionando,penséquetambiénpublicaríaaquímicircuitodepruebas.
Porfavor,echeunvistazoalcircuitofísico.
(Heborradolaspartesirrelevantesdelcircuito)
Unpocodeexplicación(porquequizáseldiagramanosealosuficientementeclaro)
ElcabledepuenteamarillodePC817
seenvíacomointerrupciónalpindigital2delarduino(comosepuedevereneldiagrama).
ElarduinodetectalaseñalRISINGenélyllamaalISR.HecomprobadolasalidaenlospinesdelaPC817quevanalarduino(usandounmultímetro),da~10V.
AgreguéunpuntocomúnyunVCCdearduino,yaquemásadelanteenelcircuitodeatenuacióndeCAseutilizará(ytengoentendidoquedondeseaqueVCCseadearduino,gndtambiéndebeserdearduinoynodeotraparte,¿verdad?).
Gracias.Sizu
Actualización1:
HecambiadolaPC817a4N25(comodescubrímástardequeteníaesecomponente)
Heagregadounaresistenciaalaentradade4n25queingresa2V(Estoyconsiderandounaresistenciamásalta,yaquelatensióndirectamáximapara4n25es1.5V)
YELLOWWireestádirectamenteconectadoalpindigital2dearduino(esdecir,INT0)
Actualización 2:
Resulta que, cuando la CA está apagada, la caída de voltaje entre el cable amarillo (pin de interrupción) y el gnd de arduino es de 5 VCC, mientras que cuando se enciende la CA es de 0,54-0,55 V, ¿por qué razón?
También lo he intentado
attachInterrupt(digitalPinToInterrupt(2), zero_crosss_int, FALLING); // Choose the zero cross interrupt # from the table above
Cambié RISING a FALLING , todavía no funcionó.
Esperemos que resuelto:
Tengo que iluminar el LED, olvidé definir el pin del LED como el pin de salida en el código arduino, pero también se ilumina muy débilmente e incluso el multímetro no puede encontrar la caída potencial en el LED
Entonces el nuevo código se ve así:
pinMode(12, OUTPUT);
attachInterrupt(0, ledBlink, FALLING); // Choose the zero cross interrupt # from the table above
}
Nota:
Caída / LEVANTAMIENTO / CAMBIO (los 3 funcionaron pero creo que FALLING debería usarse debido a la resistencia de arranque)