No se puede hacer PWM con un triac porque el triac no se puede cortar, hay que esperara al próximo paso por cero para que se corte él solo. Da igual como intentes controlar el triac, el problema es el triac, no el control. Supongo que como poderse se podría hacer un circuito para cortar el triac cuando quisiese, usar un GTO o alguna cosa así pero entonces saldría muy complicado.
Por lo tanto se hace control de fase sincronizado con la frecuencia de red, vamos un dimmer de toda la vida. Eso son diac, con pics o con lo que gustes.
Ya veo. Observando el PCB de la lavadora, no tiene MOC o optoacoplador de ningún tipo, pero el G del triac BTB16-600BW no tiene "detector paso por cero" y está conectado casi directamente al AVR.
Por otra parte el control de fase solo vale para motores universales de colector.
Si son motores de inducción con rotor en jaula de ardilla o bobinado no vale, vale pero va muy muy mal y tiene muuuchos inconvenientes que lo desaconsejan en el 99% de los casos. En estos motores la velocidad depende de la frecuencia, no de la tensión y por eso hay que hacer una variación de frecuencia. Si se hace por tensión el par cae estrepitosamente y raramente es utilizable.
Como dices que el motor de tu lavadora es de colector lo puedes usar sin problemas.
Mi motor tiene estator de bobinas, rotor de bobinas con escobillas de carbón.
Lo del servomotor para controlar el dimmer me parece poco lógico ya que hacer un control de fase con un pic no es muy complicado. Busca como hacer un dimmer con un pic, me suena que hay mil ejemplos por ahí.
Hay muchos para lámparas y motores con potenciómetro o resistencia ajustable.
En lo que tienen detección de cruce por cero los más comunes son los modelos MOC30XY, donde X indica la máxima tensión nominal:
MOC 3041 -> 400V
MOC 3061 -> 600V
MOC 3081 -> 800V
y la Y indica la corriente que necesita el LED para garantizar el disparo:
MOC 3040 -> 30mA (no existen todos los modelos)
MOC 3041 -> 15mA
MOC 3042 -> 10mA
MOC 3043 -> 5mA
No sabía lo de arriba, para que otros visitantees lo sepan den entrada en vez de mirar la hoa de datos uno por uno. Más información.
En principio el programa sería algo así:
Interrupción en el paso por cero que lanza un timer de como máximo un semiperiodo; 10ms a 50Hz o 8,333 a 60Hz. Cuando el timer se agota genera una interrupción que activa el triac. Osea "cuatro instrucciones" mal contadas, poco programa y poca carga de la CPU porque no hay ningún bucle ni cálculo complejo.
De lo que programes en el timer depende la tensión de salida, cuanto menos tiempo mas tensión, si llegas a los 10 o 8,33ms entonces 0V de salida.
Como en tu caso solo quieres dos velocidades,
Quiero 4 velocidades. Tal que he encontrado un motor de ventialdor de pie y cambia de velocidad sin electrónica, lo que no sabía que este caso, funciona así por sus bobinados. Más inforamción.
puedes probar con varios ángulos de disparo del triac a ver cual está bien para centrifugar y cual para lavar, con dos valores de recarga vale, o puede que solo con uno ya que en centrifugado el ángulo puede ser cero y que el motor funcione con el 100% de la onda y en ese caso ni timer ni interrupción ni nada; pin activado y nada mas.