PWM y motor lavadora.

[Aporte] Control de fase (Dimmer) con Arduino

Sin delays, claro. Lo complican todo.
Con incandescencia, claro. Las cargas inductivas tienen lo suyo.

Como tú carga es inductiva, ahora necesitas una red snubber. Por mi experiencia no vale cualquiera, debes de ir probando valores para compensar la inductancia de tu motor. No valen los circuitos genéricosencontrar. Nunca he controlado motores pero si muchas bobinas de contactores ac y hay que ajustar a cada modelo, y en algunos casos a cada 'individuo' en concreto.
De todos modos en los datasheets de los moc vienen varios circuitos de disparo para cargas inductivas, a mí no me funcionó ninguno pero puede que a ti si.

Los triacs snubberless más bien son snubberlow que necesitan poco snubber.

No digo que lo que yo acabo de decir sea la palabra del señor, solo es mi experiencia.
¿Pero que tiene que ver que la carga sea inductiva o resistiva para la ejecución del programa? Mi única conclusion es que en el motor se nota mas por el sonido y porque se ve dar tirones. La bombilla como que lo amortigua todo y no se nota tanto.
Por lo demás, ni red snubber ni nada, un simple varistor en paralelo con el Triac y ya vale. Lo he copiado del esquema y de la placa de la lavadora
 
Pues tú mismo, así será.

Mi programa va ok siempre, está más que verificado, y no quema ciclos de CPU, si te apetece úsalo. Los fogonazos que se ven en el vídeo son malos contactos del potenciómetro que tiene los pines muy cortos, es reciclado.

Lo que tú percibes como mal funcionamiento de programa pueden ser fallos de descebado del triac. Como no estoy allí no lo puedo afirmar.
También pueden ser fallos de alimentación, pero eso daría cuelgues, seguramente.
También pueden ser falsas detecciones del detector de paso por cero.
También puede ser el programa pero debería de ir siempre o nunca.
 
Última edición:
¿Pero que tiene que ver que la carga sea inductiva o resistiva para la ejecución del programa? Mi única conclusion es que en el motor se nota mas por el sonido y porque se ve dar tirones. La bombilla como que lo amortigua todo y no se nota tanto.
Por lo demás, ni red snubber ni nada, un simple varistor en paralelo con el Triac y ya vale. Lo he copiado del esquema y de la placa de la lavadora

Me da que no tienes muy claro lo de carga inductiva y resistiva, deberias leer un poco ese tema.
En el motor la carga es inductiva, por que usa bobina y esta al paso de una corriente crea una resistencia, en bobinas y capacidades se conoce como reactancia, que va en funcion de frecuencia y otros conceptos.
Si al motor que usas en tu lavadora, al triac no le colocas una red snubber, me da que te vas a cargar el triac mas pronto que tarde, lo de un varistor va a ser que no te va a ir bien pero alla tu si con eso te sirve.
 
El varistor elimina sobretensiones
La red snubber corrige localmente el factor de potencia

Nada que ver una cosa con la otra.

Si no corriges el desfase el triac no es capaz de descebarse y se queda encendido "para siempre" como eso no es del todo cierto puede que se quede unos cuantos semiciclos y luego por fin se descebe por eso el motor da tirones.


...y si no es eso será otra cosa. Si el control de fase va con delays lo sorprendente sería que funcionase cuando intentes hacer otra cosa a la vez.
 
Última edición:
Para evitar con soltura este tipo de problemas. Usa todo por curce por cero.
No, eso no aporta nada:
Si usas un optotriac con detector de paso por cero, el detector te impide hacer control de fase.
El problema del descebado sigue exactamente igual, el dpc actúa en el cebado, no hace nada en el descebado.

En teoría un triac snubberless es la solución, se supone que esos triacs si que saben descebarse. En la práctica no lo tengo del todo claro, en su día probé de todo y si que es verdad que algunos tenían más facilidad en descebarse que otros, pero hasta que no se ponía la red snubber adecuada para cada carga inductiva no iban 100% confiables.
Insisto que eso es mi experiencia tan solo, fue hace muchos años y pueden haber triacs mejores ahora, y tampoco probé todas las referencias del universo... Solamente todas las que había en la tienda, unas 10. También es cierto que una bobina de un contactor es especialmente inductivo, un motor tiene más parte activa, si que comprobé que cuanto menos factor de potencia menos problemas, claro, las cosas son grises ni son blancas ni son negras.
 
Captura.JPG
Este es el esquema de la lavadora, la parte del Triac del motor. Estoy utilizando los mismos componentes que estuvieron funcionando en ella 13 años. Sólo que disparo el triac con el MOC3021 en vez del integrado que lleva la lavadora. Como veis, lleva una red snubber en el Gate del trial, y el varistor en paralelo.
El Triac es snubberless, y funciona bien. Insisto en que el problema estaba en ese código, desde que utilizo el otro sin utilizar delay, y con las interrupciones del Timer 1, funciona perfectamente.
Me da que no tienes muy claro lo de carga inductiva y resistiva, deberias leer un poco ese tema.
Claro que tengo claro lo que es la carga inductiva o no. Lo que comentaba es que no tiene nada que ver la carga para que el programa del Arduino "se cuelge" o "retarde" o "no cuente bien los microsegundos" o como se quiera llamar, porque la alimentacion del Arduino venia por otra parte totalmente diferente a la del Triac.
Por mi parte creo que puedo dar por zanjado el tema. Era un problema de código que en teoria parece que tiene que funcionar, pero en la práctica no funciona tan bien cuando se debe trabajar con tanta precisión como en este caso, que hay que detectar los pasos por cero, y hacer los disparos en el momento justo y de dentro de un tiempo preciso.
 
10ms es eternidad y media para un microcontrolador. Con una buena programación debe de ir. Por eso les tengo tanta manía a los delays.

Me alegro que lo hayas solucionado, y me apunto la tarea de probar triacs snubberless. La tecnología avanza y me quedo anticuado.
 
¿Puedes subir el esquema completo?
¿El esquema completo original de la lavadora, o el montaje con Arduino que estoy haciendo? El primero, es el manual de servicio que es de pago, por lo que no puedo subirlo, pero si buscas por Internet terminas encontrando el mismo o uno similar.
El de mi montaje solo tengo partes en papel, porque de momento no tengo nada definitivo y voy haciendo pruebas en protoboard.
 
Si buscas, puse en su día un aporte.
Básicamente basta con un pc814 o algo así y una resistencia de unos 150k con eso ya tienes las interrupciones.
Para el triac, lo que diga el datasheet.
 
Para el paso por cero hay muchas opciones. Casi cualquier fototransistor vale. Ese que tu dices y el H11AA1 lo que tienen es 2 fotodiodos en antiparalelo para que detectar las 2 polaridades de la onda. Con un 4N25 y un puente de diodos también sirve.
 
Y con uno simple activando la interrupción de subir y la de bajar también valdrá.
Se pone un diodo en antiparalelo por fuera y ya está.
Uno de los semicírculos irá un poco antes que el otro pero debe de valer.
 
También sirve, pero has de tener en cuenta que no se apaga justo en 0V. Las pruebas que he hecho, se activa como a 400-500ms después de pasar por cero, y se apaga tambien ese tiempo antes, por lo que hay que tener en cuenta esto para sumar o restar retardo y tener una regulación precisa.
 
500ms es medio segundo, 25 ciclos, 50 semicírculos, serán 500ns.
Da bastante igual para un dimmer que se regula visualmente, para un motor lo mismo, seguro que no va ni con el 1 ni con el 2% con suerte podrás regular del 30 a 100% por debajo del 30 no se moverá. Tampoco se notará si va al 98 o al 99% con unos cuantos saltos habrá bastante.
Pero si, siendo fino habría que retardar un poco más un semiciclo que el otro. Pero podría valer en muchos casos y sería más barato que compara un optoacoplador "de alterna" o poner un puente
 
500ms es medio segundo, 25 ciclos, 50 semicírculos, serán 500ns.
Perdón, 500microsegundos quería decir. Entre activacion y desactivacion se pierde 1ms. Y si que es importante, porque si pretendes llegar al 100% de potencia, o proximo a ello, puede ser que crees que estás disparando en el 95%, y resulta que te estas pasando y disparando en el 10% de la siguiente.
Hay un video por youtube que lo explica con osciloscopio y viendo las señales, y al principio le pasa esto y explica por qué pasa eso
 
Si, claro.
Si quieres el 100 de verdad no uses un triac.
En todo caso deja el optotriac siempre activado sin apagarlo nunca, eso no es el 100 pero es lo mejor que lo puedes hacer.
En cualquier caso hay saltos que no son percibibles, ni en velocidad del motor ni visualmente.

Para empezar digitalWrite es una calamidad, supongo que habrá que usar fastdigitalWrite o como se llame
 
Lo del "fastdigitalWrite" lo pensé, pero con "digitalWrite" funciona bien también. Tengo puesto el retardo mínimo 2ms, porque con menos ya se solapan disparos por lo que comentaba antes del detector de paso por cero. Y de máximo 8,5ms. Con más retardo ni gira el motor, y ya con este retardo depende la carga tampoco gira. Si me paso de 9ms pasa lo mismo que con menos de 2ms, se solapan disparos y hace disparos a máxima potencia en vez de a mínima.
 
Arriba