Subir a Inicio

PaperDimmerPCB. Regulador de potencia por triac para microcontrolador (compatible con Arduino)

Conceptos preliminares

Después de buscar un regulador de potencia para microcontrolador mediante triac, sólo he encontrado controles binarios (encendido/apagado), o mediante circuitos especializados. Es por eso que decidí hacer un control sencillo (sólo tiene 8 niveles de potencia).

El circuito se basa en el expuesto en la web http://www.sullivan-county.com/ele/triacs.htm (muy buena por cierto).

En este circuito sustituimos el potenciómetro de 470k por 3 resistencias fijas en serie que puentearemos según nos convenga. Si los valores de las resistencias son 240K,120K y 64K obtenemos hasta 8 niveles diferentes en función de las resistencias que activemos en cada momento tal y como indicamos en la tabla siguiente:

Esto lo hacemos mediante tres optoacopladores que a la vez de aislar la parte del micro de la parte de potencia, puentean las resistencias que están situadas en paralelo con el " foto interruptor bidireccional".

NOTA: Este circuito funciona solo con motores de tipo universal (con escobillas), para regular la velocidad de motores de inducción (sin escobillas) es necesario realizar un variador de frecuencia. 

Características del circuito

Tensión de alimentación: Ninguna
Entradas: compatibles TTL
Intensidad máxima de salida: 8A
Tensión máxima de carga: picos de hasta 600 ó 800v en función del triac elegido
Niveles de tensión en carga: 8
Aislamiento entrada/salida:  7500V

NOTA: Las lámparas fluoresentes no permiten regular la intensidad de la luz con este tipo de circuitos.

Descripción

En el circuito siguiente vemos también el filtro RC que podemos eliminar si no utilizamos cargas de gran carga inductiva.



Es necesario comentar que la lógica es invertida, es decir si activamos con 5V la patilla Led1-3 se activará el fototriac del optoacoplador correspondiente, y puenteará por tanto la resistencia que tiene acoplada en paralelo.
Es decir:
Si Led1=Led2=Led3=0v => R=R7+56+120+270
Si Led1=1; Led2=Led3=5v => R=R7+0+120+270
Si Led1=Led2=Led3=5v => R=R7+0+0+0


Utilizando 3 Salidas de Arduino conectadas a las entradas Led1-Led3 conseguimos graduar la potencia en 8 niveles (para mí son suficientes), si fuera necesario una regulación más fina se podrían añadir más optoacopladores. Con 1 más obtendríamos 16 niveles, pero habría que redimensionar las resistencias de entrada de los Leds para que los intervalos sean proporcionales, y la suma de todas las resistencias en serie sea similar a la del circuito original (R7+~470K).


La placa por el lado de componentes:


Y por el lado de las pistas:

Al estar trabajando con tensiones de 220V (¡¡ con peligro de muerte !!) creo que es mejor realizar una pista de cobre.
Una vez realizado el circuito debes intruducirlo en una caja de plástico que impida contactos accidentales a la zona de alta tensión, y sobre todo no toques el circuito si está enchufado a la red.

Realización

Como soy muy vago, para no andar con lámparas, sosa, revelar,...  Yo utilizo un medio "txapucero":
 
  1. Pega una copia empresa en papel del PaperDimmerPCB a la placa el lado pistas sobre el cobre, para que los bordes de los taladros no tengan rebabas. Antes de nada mide el tamaño de la regla impresa en el documento y comprueba que tiene la longitud indicada, si no es así es que la impresora a modificado la escala de la página, haz los retoques necesarios para que la escala sea 1/1. 
  2. Taladra los agujeros. Todos están en una rejilla de 2,54mm, de forma que si quieres garantizar que no se te escape ningún agujero, puedes pegar el dibujo de las pistas sobre una placa perforada de prototipos, y esta a su vez sobre la placa de cobre. Utilizando la placa perforada como plantilla. Para alinear el dibujo sobre la placa perforada puedes ver los agujeros al trasluz, o utilizar algún componente como referencia (zócalo, regleta de pines...)
  3. Despega el papel y limpiar el cobre de todo resto de pegamento.
  4. Usando los agujeros como referencia, con un rotulador permanente dibujo las pistas.
  5. Ahora si que hay que atacar con ácido la placa (bien cloruro férrico o clorhídrico y agua oxigenada), mira en internet cómo hacerlo.
  6. Una vez limpia con agua y seca la placa, pega sobre ella la impresión de papertrino del lado de componentes.( Yo pego sobre ella "aeronfix" transparente para que no se manche)
  7. Taladra con una aguja los agujeros
  8. Encola la placa (por el lado de la fibra ;-) ) y la pegatina del PaperDimmerPCB
  9. Utiliza unos agujeros cerca del borde exterior como referencia para el encolado( yo he puesto dos regletas de pines en los dos conectores de los extremos).
  10. Y suelda los componentes.

Componentes
  • R1-3    Resistencia 1K 1/4W (3x0,02=0,06€)
  • R4       Resistencia 56K 1/2W (0,02€)
  • R5       Resistencia 120K 1/2w (0,02€)
  • R6       Resistencia 270K 1/2w (0,02€)
  • R7       Resistencia 5K6 1/2w (0,02€)
  • R8       Resistencia 36 1/2W (0,02€)
  • C1-2    Condensador 100nF*/400V (2x0,07=0,14€)
  • D1       Diac BR100 (0,4€)
  • Tr1     Triac BT137 (0,5)
  • Ic1-3   Optoacoplador MOC3021 (3x0,34=1,02€)
  • 1         Disipador 2906.6 TO220 (0,28€)
  • 3         Zocalos 6P (3x0,08=0,26€)
  • 1         Conector bornas CI 4P paso 2x2,54 (~1€)
  • 1         Conector hembra 4 espadines 2,54 (~0,2€)
  • 1         Tornillo y tuerca M3 (~0,2€)
  • 1         Placa de fibra de vidrio con cobre (~0,5€)   
(* Gracias Oriel !!)
Los precios son aproximados (2010) salvo los especificados con ~ que los desconozco.
La placa costaría menos de 5 €

Nota: es importante que los condensadores soporten 400v como mínimo y que las resistencias R4 a R8 sean de 1/2 W (Tensión máxima 350v), ya que las de 1/4 W solo soportan una tensión máxima de 300 V.


NOTA
Precios orientativos y aproximados para que sepas si hablamos de millones de dólares o de céntimos de euro, sin IVA y suministrados por Biltron - 2010
(No tengo nada que ver con Biltron, pero como son muy majos les hago publicidad). 



Resultado

PaperDimmerPCB lado componentes
PaperDimmerPCB lado componentes
PaperDimmerPCB lado cobre



Ejemplos de utilización

A continuación dos ejemplos de como controlar el triac PaperDimmerPCB mediante Arduino (o Paperduino).

En el primer ejemplo denominado AutopaperDimmer encenderemos una luz de manera gradual cíclicamente. 




/*
  AutoPaperDimmer_00
 
 Cada segundo incrementa un paso (8 en total) la potencia de salida, y empieza de nuevo.
 
 El circuito:
 
 LED conectado entre el pin 13 y masa.
  * Nota: La mayoría de las placas Arduino tienen preparado un led conectado al pin 13.
 
 Es necesario conectar las patillas de:
 Arduino  Papertrino
   D2        Led1
   D3        Led2
   D4        Led3
   GND       GND
  
 Creado el 23 de Junio de 2010
 Por Iñigo Zuluaga
 
http://txapuzas.blogspot.com/
 
*/

// DEFINICION DE VARIABLES

int LedPin =  13;        // LED conectado en placa al pin digital 13
int Led1 = 2;            // Entrada Led1 del PaperDimmer
int Led2 = 3;            // Entrada Led2 del PaperDimmer
int Led3 = 4;            // Entrada Led3 del PaperDimmer
int Temp =600;           // Milisegundos de espera
boolean Sal1 = LOW;      // Valor de la salida Led1
boolean Sal2 = LOW;      // Valor de la salida Led2
boolean Sal3 = LOW;      // Valor de la salida Led3
boolean Sal13 = LOW;     // Valor de la salida LedPin

// FUNCION INICIAL

void setup()   {               
  // Inicializar las salidas:
  pinMode(LedPin, OUTPUT);   
  pinMode(Led1, OUTPUT); 
  pinMode(Led2, OUTPUT); 
  pinMode(Led3, OUTPUT);   
}

// CICLO PRINCIPAL

void loop() {
   for (int cont1=0;cont1<2;2;cont1++)  {        // Realiza un ciclo 2 veces
      for (int cont2=0; cont2<2;2; cont2++)  {   // Realiza un ciclo 2 veces
         for (int cont3=0; cont3<2;2; cont3++) { // Realiza un ciclo 2 veces
            delay(Temp);                       // Espera           
            digitalWrite(LedPin, Sal13);       // Lo lleva a la salida
            digitalWrite(Led1, Sal1);          // lleva a cada salida su valor
            digitalWrite(Led2, Sal2);
            digitalWrite(Led3, Sal3);         
            Sal13=!Sal13;                      // Parpadeo del led 13
            Sal1=!Sal1;                        // Cambia el valor de la entrada Led1 del PaperDimmer
          }
      Sal2=!Sal2;                              // Cambia el valor de la entrada Led2 del PaperDimmer
      } 
    Sal3=!Sal3 ;                               // Cambia el valor de la entrada Led3 del PaperDimmer
    }
 }







En este segundo ejemplo denominado PaperDimmer, regularemos la intensidad de luz de una lámpara mediante un potenciómetro conectado a Arduino.


/*
  PaperDimmer

 Regula la intensidad de carga (luz) en función del estado de un potenciómetro.

 EL CIRCUITO
 * Potenciómetro (10K lin)
   - Patilla central del pot a  entrada análogica 0
   - Una patilla lateral a masa (GND)
   - La otra patilla lateral a 5V
* LED conectado entre el pin 13 y masa.
  * Nota: La mayoría de las placas Arduino tienen un led conectado al pin 13.
* Papertrino
Es necesario conectar las patillas de:
 Arduino  Papertrino
   D2        Led1
   D3        Led2
   D4        Led3
   GND       GND
  
 Creado el 25 de Junio de 2010
 Por Iñigo Zuluaga

http://txapuzas.blogspot.com/
 
*/

// DEFINICION ENTRADAS/SALIDAS

int LedPin =  13;         // LED conectado en placa al pin digital 13
int Led1 = 2;             // Entrada Led1 del PaperDimmer
int Led2 = 3;             // Entrada Led2 del PaperDimmer
int Led3 = 4;             // Entrada Led3 del PaperDimmer
int PotPin = 0;           // La entrada analógica 0 para el potenciometro

// DEFINICION DE VARIABLES

int Temp = 100;           // Espera siempre mayor que 20 (50Hz => 20ms)
int ValorPot = 0;         // Valor leído del potenciómetro
int ValPapertrino = 0;    // Valor transmitido al PaperDimmer
boolean ValLedPin = HIGH; // Valor de la salida LedPin13 del Arduino
int ValLed1 = 0;          // Valor de la entrada Led1 del PaperDimmer
int ValLed2 = 0;          // Valor de la entrada Led2 del PaperDimmer
int ValLed3 = 0;          // Valor de la entrada Led3 del PaperDimmer

// FUNCION INICIAL

void setup()   {               
  // Inicializar las salidas:
  pinMode(LedPin, OUTPUT);   
  pinMode(Led1, OUTPUT); 
  pinMode(Led2, OUTPUT); 
  pinMode(Led3, OUTPUT);   
}

// CICLO PRINCIPAL

void loop() {
  ValLedPin=!ValLedPin;           // invierte el valor del pin13
  digitalWrite(LedPin,ValLedPin); // y muestra que el programa funciona
  delay(Temp);
  ValorPot = analogRead(PotPin);   // Lee el valor del potenciómetro   
  ValPapertrino = ValorPot/(1024/7);   //  Escala el valor del pot a 0-7

  ValLed1 = ValPapertrino & 1;    // Enmascara el valor del triac con 001
  if (ValLed1 == 1) {             // si tiene un valor de 1
    digitalWrite(Led1,HIGH);      // activa la entrada Led1 del PaperDimmer
  }
  else {                          // si el valor es distinto a 1
    digitalWrite (Led1,LOW);      // desactiva Led1
  }

  ValLed2=ValPapertrino & 2;      // Enmascara el valor del triac con 010
  if (ValLed2 == 2) {             // si tiene un valor de 2
    digitalWrite (Led2,HIGH);     // activa la entrada Led2 del PaperDimmer
  }
  else {                          // si el valor es distinto a 2
    digitalWrite(Led2,LOW);       // desactiva Led2
  }
 
  ValLed3=ValPapertrino & 4;      // Enmascara el valor del triac con 100
  if (ValLed3 == 4) {             // si tiene un valor de 4
    digitalWrite (Led3,HIGH);     // activa la entrada Led3 del paperDimmer
  }
  else {                          // si el valor es distinto a 4
    digitalWrite (Led3,LOW);      // desactiva Led3
  }
 }





Información legal

1. Propiedad intelectual
Todos los derechos de propiedad intelectual del contenido de Txapuzas eléctronicas, están bajo una licencia Creative Commons Share-Alike, cuyo contenido podéis revisar en este enlace.
Por tanto queda permitido copiar, distribuir, comunicar públicamente la obra y hacer obras derivadas de la misma, siempre que se respeten los términos de la licencia arriba reseñada.
3. Actualizaciones y modificaciones de Txapuzas electrónicas
El autor se reserva el derecho a actualizar, modificar o eliminar la información contenida en Txapuzas eléctrónicas, y la configuración o presentación del mismo, en cualquier momento, sin previo aviso, y sin asumir responsabilidad alguna por ello.
4. Indicaciones sobre aspectos técnicos
El autor no asume ninguna responsabilidad que se pueda derivar de problemas técnicos o fallos en los equipos informáticos, que se produzcan a causa de los circuitos e ideas expuestos en el blog de txapuzas electrónicas, así como de los daños que pudieran ser causados a terceras personas.
El autor se exime de toda responsabilidad ante posibles daños o perjuicios que pueda sufrir el usuario a consecuencia de errores, defectos u omisiones en la información facilitada.



Descargas

Todo lo necesario, circuito ( pcb estilo "paperduino"),  esquema , programas de prueba y datasheets se pueden descargar en el enlace siguiente:

Si tienes problemas con el enlace anterior, aquí puedes descargar todos los archivos de txapuzas

Si encuentras algún fallo, se te ocurre alguna mejora, o simplemente quieres hacer algún comentario, te lo agradeceré: Gracias :-)

82 comentarios:

  1. Hola
    Monté a su proyecto con el programa de Arduino, pero la variación de la luz es muy pequeña, y la luz nunca se apagará.
    He utilizado estos condensadores de 10nF: http://www.transistorbart.nl/store/catalog/condensator_ker10nf.jpg.
    Aquí en Brasil, la frecuencia de la red es de 200V 60Hz, esto podría hacer la diferencia?
    He comprobado el circuito varias veces y todo está bien. ¿Tengo que cambiar el valor de las resistencias.

    Gracias por tu ayuda!

    ResponderEliminar
  2. Hola oriel.
    Antes de nada, decirte que los condensadores que utilizas (cerámicos), tienen una tensión de uso máxima de 100v. Me da la sensación de que el condesador que está entre el diac y el triac (C1) está cortocircuitado. Deberías sustituirlos por algún otro tipo que aguenten más (poliester por ejemplo).
    Saludos

    ResponderEliminar
  3. Hola
    He sustituido los condensadores de cerámica, como ha afirmado.
    Ahora estoy usando condensadores de poliéster (400V). Pero el resultado sigue siendo el mismo. Una cosa importante: aquí, en mi pueblo no encontró el diac BR100. Tuve que usar el diac DB3, que aparentemente es compatible con la tensión de ruptura de 28 a 36V (el datasheet se puede acceder aquí: www.st.com/stonline/books/pdf/docs/7488.pdf).
    ¿Crees que es necesario cambiar el circuito?

    Un hecho interesante es que el circuito funciona mejor cuando se pone el diac en cortocircuito. Puedo hacer un video para mostrar mejor lo que está sucediendo.

    Una vez más, gracias!

    ResponderEliminar
  4. Hola Ariel,
    Lamento que el paperDimmer te esté generando tantos problemas.
    He mirado la hoja de características y del diac DB3 y es equivalente al BR100, no creo que ese sea el problema.
    Si la lámpara no se apaga nunca parece que el diac recibe demasiada tensión y dispara muy pronto haciendo que el triac conduzca durante casi todo el ciclo.
    Se me ocurren dos causas, que las resistencias (R4,R5,R6 y R7) siempre estén puenteadas, o que tengan un valor muy pequeño
    Yo realizaría las pruebas siguientes.
    Primero dar tensión a cada entrada a mano, es decir
    primero conectar D1 a 5v Y el pin 4 a GND, luego D2, luego D3, luego D1 y D2, ... y anotar los resultados
    Si esto no te ayuda, vamos a la parte de alterna.)
    Si tienes un polímetro, ¿puedes comprobar que las resistencias estén bien?.
    Si es asi...
    Quita los optoacopladores de su zócalo, y prueba el circuito
    Si no se apaga la lámpara...
    Desconecta un terminal de la resistencia R7 270000 Ohmnios y prueba el circuito
    Si no se apaga la lámpara el fallo es del triac.
    Si se apaga, creo que necesitas aumentar el valor de las resistencias.
    Yo cogería un potenciómetro de 1MOhmnio y con la resistencia R6 desconectada lo conectaría en vez de las resistencias R4,R5 y R6,
    es decir la patilla central del potenciómetro al pin 6 de IC1 y una patilla lateral del potenciómetro al pin 4 de IC3.
    Al regular el potenciómetro se tiene que apagar y encender la luz. Cuando consigas que la luz se apage, desconecta y mide el valor del potenciómetro, ese será el valor que han de tener R4,R5 y R6 en total.

    Nota (Ten cuidado con los 200V)

    ResponderEliminar
  5. Me di cuenta de que el proyecto original (http://www.sullivan-county.com/ele/triacs.htm) utiliza condensadores de 100nF. He sustituido los condensadores de 10nF a 100nF y ahora está trabajando casi a la perfección :)

    Sólo necesito volver a ajustar (reducir) los valores de las resistencias, porque la lámpara es la pista cuando la resistencia es mayor.

    Gracias por su ayuda y felicitaciones por los proyectos!

    ResponderEliminar
    Respuestas
    1. que valores de resistencia modificaste al cambiar el condensador de 10nF a 100 nF

      Eliminar
  6. Hola Oriel.
    Ante todo pedirte disculpas por el error.
    Verdaderamente el condensador que hay que utilizar es de 100nF (Como podrás ver en las imágenes los condensadores que he utilizado tienen este valor: 0,1uF=100nF.)

    Este fin de semana corregiré el error.
    Gracias por comentar la solución.

    ResponderEliminar
  7. hola estoy enpezando con un proyecto de programacion me gustaria ver si me puedes orientar en algo te platico el royecto es para una fabrica lo ke ocupo es manjar desde el puerto serial los tiempos de las bombas y mira tengo esta pag y un diagrama ke me es diicil interpretarlo ya ke yo no le hayo mucho a esto de la electronico me gustaria ke me ayudaras con esto solo para ke el diagrama lo pueda imprimir en uuna placa para sircuitos http://digitalperuana.com.pe/proyectos_luces_controlcompu.html el software yo lo estoy manejando con visual 2005 .net nomas me interesa lo de el diagrama. gracias

    ResponderEliminar
  8. Hola Cristian,
    Si lo que necesitas es gobernar unos relés a través del puerto serie, quizás te interese un PaperRelé, (mira en otras páginas de este blog) y los puedes manejar desde Arduino.
    !!¿¿La página que indicas es una placa de relés activados por el puesto paralelo.!!??

    Saludos

    ResponderEliminar
  9. serviria el circuito a 120vca y a 60hz o tendria otras resistencias saludos

    ResponderEliminar
    Respuestas
    1. Que tal te funciono?
      Estoy haciendo un proyecto de domotica y no se mucho del tema de potencia, dime... tuviste que modificar alguna resistencia ?
      Gracias

      Eliminar
    2. Que tal te funciono?
      Estoy haciendo un proyecto de domotica y no se mucho del tema de potencia, dime... tuviste que modificar alguna resistencia ?
      Gracias

      Eliminar
    3. Hola, miguel. Tengo el mismo problema. ¿Qué fue lo que modificaste del circuito?
      ¿Simodificaste la resistencia R/? y ¿A qué valor?
      Gracias

      Eliminar
  10. Hola Miguel,
    Yo creo que si te vale.
    Lo digo porque los dimmers comerciales sirven para las redes eléctricas europeas (220v50Hz) y las Americanas (120v&60Hz).
    Lo único que puede pasar es que no se apague del todo o que no se encienda del todo (puedes modificar la resistencia R7 para corregir el defecto).

    Si lo realizas, envía los resultados por favor, para notificarlo a otro posibles usuarios.
    Gracias

    ResponderEliminar
    Respuestas
    1. Hola, disculpa ¿A qué valor de resistencia tengo que modificar la R7 para que se muestren todos los estados de intensidad?
      Gracias

      Eliminar
  11. hola
    mirando este circuito se me plantea la pregunta
    ya que el optocolador es mas barato.
    podriamos sustituir un rele por un optocolador en un circuito para por ejemplo gobernar un motor de 2200W con una tension de 220V AC?

    ResponderEliminar
  12. Hola Xapu,
    Si miras las hojas de caracteristicas del optoacoplador, veras que no puede aguantar tanta potencia (al menos no conozco yo ninguno).

    Saludos

    ResponderEliminar
  13. Hola,

    Felicidades por este blog! es una pasada. Me encanta.

    Te has planteado la posibilidad de no usar 3 puertos digitales y usar una unica señal PWM por ejemplo?

    ResponderEliminar
  14. Hola Marc
    Lo tengo en la lista de tareas pendientes :-)
    Saludos

    ResponderEliminar
  15. Que buen proyecto, estaba buscando algo parecido y me parece sumamente bueno por su simplicidad.

    He encontrado dimmers utilizando deteccion de cruce por cero y control de fase, que para aplicaciones simples se complican bastante.

    Sin embargo, este proyecto me interesa mucho implementarlo, el lunes compro los componentes y estoy pensando integrarlo con un sistema de comunicacion inalambrica para tener una red domótica de dimmers en mi hogar.

    Muchas gracias.

    Saludos

    ResponderEliminar
  16. Hola Iñigo , ya arme el circuito y sin contar algunos problemas iniciales ya esta funcionando.

    Sin embargo, he notado que con las resistencias de 56K, 120K y 270 K se pierden dos niveles de intensidad ( o sea solo se tiene en total 6 niveles de intensidad)

    de la siguiente combinacion:

    0 0 0
    0 0 1 Este nivel se pierde (no se aprecia diferencia alguna)
    0 1 0
    0 1 1
    1 0 0
    1 0 1
    1 1 0 ( Estos dos niveles son practicamente iguales
    1 1 1 )

    O sea que el nivel 2 y el 7 no se pueden apreciar.

    Estoy usando un diac DB3 (como se menciono arriba, al no encorar el DR100 utilizo este como replazo), capacitores de 100uF/400 V, MOC3041 y los mismos valores de resistencia, estoy trabajando con 220V en la red electrica.

    Me gustaría conocer tu opinion, y cual podria ser la solucion para tener los 8 niveles de intensidad.

    Muchas gracias por todo!

    Saludos

    ResponderEliminar
  17. Hola FreddyA
    Parece ser que manteniendo los valores de R7 y C1, los valores de las resistencias de regulación no van desde 0K a 454K (+R7 = 5,6K a 460K), sino de 64 a 390 (+R7= 70 a 396), Es decir hay que incrementar el ángulo de disparo mínimo, y disminuir el máximo.
    Para incrementar el mínimo, podrías aumentar la resistencia R7 y añadirle los 64K=> +R7=69K) (esto también incrementará el máximo)

    Y ahora redimensionar el valor de las resistencias, para que tengan el valor máximo de 390, es decir:
    Unos valores posibles serían (5%): 51K, 100 y 200K


    000 => 0 => 69 (0+R7=69K)
    001 => 51 => 120
    010 => 100 => 169
    011 => 151 => 220
    100 => 200 => 269
    101 => 251 => 320
    110 => 300 => 369
    111 => 351 => 420

    Nota: Con estos valores de resistencias hemos disminuido poco el máximo (no sé si te valdrá)

    ResponderEliminar
  18. Hola Iñigo,

    Yo también he construido el circuito, pero tengo un problema, he conectado un ventilador de uno 50W 220VAC, pero siempre está en el mismo estado. Sea cual sea la combinación de las entradas.

    Se supone que si no doy señal en ninguno de los tres optoacopladores, las resistencias están todas en serie, con lo cual el tiempo de carga del condensador 100nF/400V es maximo, y la potencia debería ser minima o cero, al no tener voltaje en IN1=0V, IN2=0V y IN3=0V, en este caso el TRIAC debería dispararse muy tarde no? Estoy en lo cierto?

    Revisé el estado de los opto al activar con Arduino la señal de control, pero me da la sensación que no se activan, he comprado un nuevo multimetro(no me fio del viejo), porque me extraña mucho que los 5V/4mA de Arduino no sean suficientes para activar el opto. Uso el modelo que tu indicas.

    Si aun frecuentas el post, please ponte en contacto conmigo, me gustaría hacer funcionar tu implementación.

    ResponderEliminar
  19. Cuando digo mismo estado, me refiero a maxima potencia o potencia elevada, pero no noto cambio al realizar los cambios en las entradas digitales de control.

    ResponderEliminar
  20. Hola Boxdaxter
    Antes de nada decirte que algunos motores de AC no permiten el control de velocidad por cambio de tensión, debe hacerse por control de frecuencia.

    Para comprobar que el circuito funciona, con el circuito alimentado (y con cuidado que hay tensiones a 220v) comprobaría la tensión de salida alimentando permanentemente las señales de entrada a distintos valores (0,0,0), (0,1,0),...,(1,1,1). También puedes colocar en vez de un ventilador una bombilla incandescente.
    También puedes comprobar el valor de las resistencias (Ohmnios). Para ello sin conectar el circuito a 220v puedes medir con el tester en modo Ohmnínetro el valor total de las resistencias (entre el pin 6 de IC1 y el pin 4 de IC3), y comprobar como varía la resistencia al modificar el estado de las entradas. Si no se produce ninguna variación, el problema es de la parte de baja tensión, quizás tengas que disminuir el valor de las resistencias R1-R3 a 640.
    Si el valor de la resistencia total varía, el problema es de la parte de AC.

    Saludos

    ResponderEliminar
  21. Hola Iñigo, gracias por tu pronta respuesta.

    He probado con una bombilla y ocurre exactamente lo mismo, no veo cambio en la intensidad.

    Mi multimetro estaba KO! Las resistencias varían correctamente entre 33kohm - 440kohm, debería funcionar.

    O tengo un problema con el angulo de disparo del triac, o he montado mal el circuito, no he usado el mismo posicionamiento que tú, lo monte basándome en el esquema.

    Sabiendo que el potenciometro digital funciona, que mas debería mirar, como puedo conocer el angulo de disparo sin osciloscopio?

    Un saludo.
    Carlos.

    ResponderEliminar
  22. Hola Carlos
    Lo siento, no conozco ningún sistema para conocer el ángulo de disparo sin osciloscopio.
    Lo más probable es que el Diac o Triac estén mal.
    (la resistencia R8 y el condensador C2 sólo es un filtro para proteger el triac con cargas inductivas).

    Saludos

    ResponderEliminar
  23. Sabes que! Voy a volver a construirlo pero con un potenciometro, a ver si funciona.

    Si consigo que funcione, luego le añado el circuito de control.

    Te cuento mañana!

    Gracias.
    Carlos.

    ResponderEliminar
  24. Hola Iñigo,

    Al final funcionó, tenia montado al revés las salidas del triac y no disparaba por desfase.

    Oye, te atreverías con un variador de frecuencia?

    Estoy buscando una buena documentación, pero ya he visto que un variador no es tan sencillo como parece.

    Que me dices?
    Saludos.

    ResponderEliminar
  25. Hola soy Diego, me parece genial tu proyecto, una pregunta, este circuito sirve para controlar la velocidad de un motor de licuadora??
    diegomazinger@hotmail.com
    muchas gracaias

    ResponderEliminar
  26. Hola Diego
    Este circuito vale para motores con escobillas (suelen ser comunes en taladros, ventiladores, ... , para motores síncronos no vale.
    Si tu licuadora tenía varias velocidades, es bastante probable que te funcione.

    Saludos

    ResponderEliminar
  27. Estos montajes estan muy buenos y funcionales, mi pregunta es si se pudiera hacer un adaptador i2c para una pantalla lcd y poner ahi el porcentaje de potencia en que se esta; digo i2c para ahorrarnos pines de salida

    ResponderEliminar
  28. Hola! ¿Es posible adquirir estas placas ya montadas? Un saludo!

    ResponderEliminar
  29. Hola bokeron
    Esta es una página de proyectos caseros, por lo que no se me había surgido la idea de realizar los proyectos y venderlos.
    Si el problema es que no dispones de los materiales y/o ganas de hacer una de estas txapuzas, tal vez si conoces algún aficionado a la electrónica, seguro que los puede hacer él fácilmente.

    Saludos

    ResponderEliminar
  30. Hola Íñigo,soy borekon, lo que pasa que no me deja ponerte comentarios con mi cuenta de google (¿?¿?).Lo que no dispongo es de tiempo. Me gustaría hacerlo para unas luces de navidad, y se acercan los exámenes, trabajos y demás....
    ¿Tú las haces? Te dejo mi mail que creo que la comunicación es más fluida. vivancos en gmail punto com.
    gracias

    ResponderEliminar
  31. Hola bokeron,
    Lo siento, me dedico a la electrónica por afición, de momento no realizo placas para otra gente.

    ResponderEliminar
  32. Buenas noches .. Estaba checando tu proyecto y es perfecto para un proyecto que quiero hacer mi pregunta es .. funcionaria para controlar la velocidad de un motor de abanico .. Tendria que hacerle alguna modificacion o asii tal y como esta podria utilizarlo..?? y otra pregunta tus capacitores con ceramicos ??

    ResponderEliminar
  33. Disculpa se me olvido mencionar soy nuevo utilizando el arduino pero podria basarme en tu programa para controlar la velocidad del motor?

    ResponderEliminar
  34. si yo igual soy nuevo mi pregunta es si puedo controlar un motor universal por medio de labview y el arduino, regulando la velocidad por medio del programa y no del potenciometro

    ResponderEliminar
  35. Hola Iñigo

    Ayer estuve probando un circuito similar (el clásico con opto y triac) y me encontré con que si ponía el filtro RC como tu lo tienes puesto, no había interrupción ninguna. En cambio sin el filtro RC funcionaba a la perfección. Llegué a la conclusión de que tal y como estaba puesto estaba puenteando el triac, que lo que se supone que hace es cortar la fase. Mirando un poco algunos circuitos por ahí, el filtro RC tiene que ir en paralelo a la carga, entre fase y neutro, como es lógico, y tanto tu como yo tenemos los neutros puenteados en los pines del medio de la regleta de salida a 220v. Es decir, que el filtro RC debería ir entre los pines 1 y 2 de j2. Te lo comento para ver si me puedes confirmar que es así, porque tengo que modificar mi circuito para hacerlo con 4 niveles de potencia (2 optos), es decir, igual que el tuyo.

    Gracias y un saludo.
    Un gran blog, por cierto.

    ResponderEliminar
  36. hola a todos, gracias por este estupendo blog.

    He usado el circuito primero con una bombilla, todo correcto y despues para regular la entrada de corriente de un transformador electronico de ac-ac 230-12v, y...
    el triac bt137 casca, despues conecto la bombilla y alumbra al maximo incluso sin el diac.
    Lo queria usar para una cortadora manual de foam con unos 20 cm de nicrom y buscaba una manera de regular el trafo ac.
    Habria alguna manera de regular en la salida 12vac, ¿que diac-triac puedo disparar con 12vac?

    ResponderEliminar
    Respuestas
    1. Hola Jose Manuel,
      Con cargas inductivas (un trafo lo es) es necesario colocar el filtro RC.
      Otro posible problema podría ser que el trafo consuma mucho y el triac no aguante (8A máx.). Con un buen radiador podemos aumentar su capacidad de disipación.

      Si el Triac se calentó demasiado, el problema es de potencia, en caso contrario es de filtro.

      SL2

      Eliminar
  37. OLA amigo mira este puede funcionar para un motor convencional de 110v AC ??dime porfa

    ResponderEliminar
    Respuestas
    1. Hola manuel,
      como ya le dije a Diego
      Este circuito vale para motores con escobillas (suelen ser comunes en taladros, ventiladores, ... , para motores síncronos (sin escobilas)no vale.
      SL2

      Eliminar
  38. Saludos.

    Estoy empezando con la fabricación de tu sistema antes planteado pero me pregunto algo, funcionara aun cuando no utilice tu programa..
    digo mi propósito al implementar tu sistema es dejar en un tiempo indeterminado cierto nivel de potencia entonces no usare tu programa si no otro implementado por mi. he hecho las pruebas respectivas en una breadboard pero no funciona mas de 3 niveles de potencia sera que solo con tu programa funciona.

    ResponderEliminar
  39. hola alguna idea para hacer variar la velocidad de un motor de una caminadora no con potenciometro y este circuito sirve para un motor de una caminadora?

    ResponderEliminar
  40. Me ha venido genial este proyecto, muchas gracias por explicar todo. Me surge una duda, cuanta potencia disipan las resistencias? para tres lamparas led de 9W tendría que cambiarlas?

    Muchas gracias y un saludo!

    ResponderEliminar
    Respuestas
    1. Hola Antonio,
      La potencia de las resistencias la tienes en el listado de componentes, pero por ellas no circula la corriente de la carga.
      Esta corriente sólo circula por el triac, y si utilizas el del esquema aguanta 8A máx (+- 4A uso normal). O sea que sin disipador y con margen de seguridad el circuito puede aguantar hasta => 4A x 220V =880W.
      Ningún problema con 27W!

      SL2

      Eliminar
  41. Hola.

    Supongo que este circuito funciona muy bien para motores AC de 110 VAC con las mismas especificaciones de diseño, no?

    Tambien, si quiero conectar un motor AC en que parte debo alimentar el circuito con 110 VAC y obtener la salida para controlar la velocidad del motor?

    Muchas gracias por la atención prestada... Saludos.

    ResponderEliminar
  42. Disculpa, puedo reemplazar la resistencia de 120k por un potenciómetro de 100k (o de cuanto?) para tener diferentes niveles de velocidad del motor? (la idea es no utilizar el arduino para dicho fin) si no es asi, que debo hacer?

    ResponderEliminar
  43. hola, la imagen para poder imprimir es la que se muestra ahi o esa no esta escalada gracias

    ResponderEliminar
  44. hola muy buen proyecto mi duda es como se puede modificar el circuito para 110v a 60hz le agradezco

    ResponderEliminar
  45. Hola , tengo una consulta.
    ¿en qué software puedo simular este circuito? , ya he tratado en Proteus (ISIS) y en Multisim . En los dos casos no me funciona la simulación.
    Para reemplazar el microcontrolador, simplemente le puse señales lógicas de 0v y 5v. En estos dos programas no encuentro el diac BR100; el triac bt137 solo está en el Multisim. El diac y el triac que usé en proteus fueron unos genéricos; en Multisim el diac que usé fue 1N5758.

    Sería de gran ayuda si tienes el nombre de algún otro software donde estén todos lo componentes de este proyecto.
    Saludos.

    ResponderEliminar
    Respuestas
    1. Hola:

      Puedes usar el BT138 de 12 A., el BT139 de 16A., sus equivalentes que son el BTB16-600 o el BTA16-600, estos dos son iguales a 16 A. Lo que el BTA la parte de atrás está aislado del pin central.

      Para mi motor universal con escobillas se usa el de 16 A a 600 V con un pequeño disipador.

      Saludo.

      Eliminar
  46. Gracias por compartir esta información.

    ResponderEliminar
  47. Buenas:

    ¿Con este circuito se pude ocntrolar la velocidad de un motor universal de una lavadora?

    Mi lavadora utiliza el BTB16-600BW de 16 A y 600 V. A la hora del centrifugado a 1.000 RPM como máximo, empieza lento y poco a poco aumenta de velocidad.

    Un saludo.

    ResponderEliminar
  48. Buenas de nuevo.

    Otra cosa. En tu esquema usas un diac en la puerta o Gate del triac. Usando este circuito parece no ser necesario.

    http://www.subeimagenes.com/img/pic-780243.jpg

    Eso si, el MOC no tiene que tener cruce por cero si usas cargas inductivas en este caso, como motor universal de una lavadora.

    Saludo.

    ResponderEliminar
  49. hola amigo una consulta? quiero hacer este proyecto q esta bien interesante... compre la placa pcb y el acido para hacer el circuito. la pregunta la plantilla de las pistas en que dimension debo imprimirla para dibujarla en la placa
    para q los componentes queden bien...??

    ResponderEliminar
  50. excelente aporte pero tengo problemas con la codificación estoy trabajando con el arduino leonardo, me sale el siguiente error

    sketch_jul23b.ino: In function 'void loop()':
    sketch_jul23b:50: error: expected `)' before ';' token
    sketch_jul23b:50: error: name lookup of 'cont1' changed for new ISO 'for' scoping
    sketch_jul23b:50: error: using obsolete binding at 'cont1'
    sketch_jul23b:50: error: expected `;' before ')' token
    sketch_jul23b:65: error: expected `}' at end of input

    agradecere mucho tu ayuda

    ResponderEliminar
    Respuestas
    1. Grover, there is a mistake in the program:
      check the if statements. they say:
      for (int cont1=0;cont1<2;2;cont1++)
      Obviously that is wrong. should be:
      for (int cont1=0;cont1<2;cont1++)
      There are 3 statements like that

      Eliminar
  51. Disculpa, R8 es 36K? Gracias

    ResponderEliminar
  52. Buenas,

    Soy nuevo en esto, y me gustaria saber, ¿si es posible apagar la luz gradualmente al igual que se hace para encenderla?

    ResponderEliminar
  53. Hola !
    Muy interesantey bien explicado el circuito, en especial el detalle de su uso para motores de induccion (sin escobillas); ¿podrías darme una idea de cómo armar un circuito para un variador de frecuencia para un motor monofasico de 220 AC, 1440 rpm 50 Hz 6 amp fase 1.?
    Desde ya muchas gracias y feliz Año Nuevo

    ResponderEliminar
    Respuestas
    1. Hola:

      Para este tipo de motorers, simplemente usar variadores, así de simple.

      Saludos.

      Eliminar
  54. Buenas noches,
    Me ha encantado el tutorial, he podido usarlo en una práctica de clase ;)
    Pero me queda una duda, Por la parte de alterna, se consume cuando la bombilla esta apagada?

    ResponderEliminar
  55. He utilizado este diseño para Labview,,,y en la velocidad 2,4,6 se detienen las velocidades. En las 0,1,3,5,7 si se nota el incremento de velocidad. Detengo el programa y sigue funcionando el motor. Que fallos de programacion o de componentes paso ahi?

    ResponderEliminar
  56. Utilizando el potenciometro funciona muy bien, se detiene en 380Kohmios. Y use 51k,100k,220k ohmios.

    El problema es en la programacion de labview

    En 0: Velocidad 0
    En 1: velocidad maxima
    En 2: velocidad minima
    En 3: velocidad maxima
    En 4: velocidad 0
    En 5: velocidad maxima
    En 6: velocidad 0
    En 7: velocidad maxima

    Detengo el programa (sstop) y el motor sigue en su ultima velocidad dada.

    https://drive.google.com/file/d/0B8mMeTt6sel2UkhFWkRobTZQMUU/view?usp=sharing

    ResponderEliminar
  57. Hola:

    Lo estoy haciendo con Arduino. Mañana lo pruebo conpotenciómetro.

    Foto del montaje.
    http://1.bp.blogspot.com/-TaC89sWPYcs/VWc-iH4KLUI/AAAAAAAAAyk/Y72c4B8wGYc/s1600/regulador-motor.jpg

    Pon con el potenciómetro lo que quieres en cada velocidad, anota las resistencias y lo montas enlos optoacopladores.

    Saludos.

    ResponderEliminar
  58. Hola Iñigo, funcionaría para controlar la velocidad en un DREMEL??? ya que sería una buena combinación implementarlo en la CNC. Saludos!

    ResponderEliminar
  59. Hola,

    Queria controlar un motor trifasico corriente alterna. Me podeis ayudar.
    Os dejo mi correo de contacto: torne98@gmail.com

    Agradezco vuestra colaboracion. Gracias!

    ResponderEliminar
  60. Buenas, este funciona igual para 110v? Estoy en Mexico y necesito saber si aplica igual, gracias

    ResponderEliminar
  61. puedo utilizar un ICMoc3022?

    ResponderEliminar
  62. Hola, tengo una consulta con respecto al circuito del variador de velocidad.
    Si colocas una bobina de 50uH en serie con la carga, es decir el motor, no generarías un circuito abierto en el instante cero del pico de corriente de arranque? Haciendo que el motor no se mueva?, es decir, inhibirías la corriente de arranque del motor.
    En el instante de arranque es donde ese inductor tendrá la máxima reactancia hasta que finalice el transitorio.
    Espero respuesta, gracias!

    ResponderEliminar
  63. buenas, escribo ya que me intereso el proyecto, tengo que hacer un proyecto para la universidad y necesito guía ya que no soy muy bueno con la electrónica. consiste básicamente en controlar la intensidad lumínica de una habitación manteniendola constante. es decir, si hay demasiada luz solar bajas la intensidad y si no hay luz solar aumentarla a un máximo, solo que en los dos casos la intensidad lumínica debe ser la misma en la habitación. lo cual necesitare fotorresistores para sensar la luz solar, como puedo hacer para incorporarlas a este proyecto?

    ResponderEliminar
  64. Hola, lo primero es decir que ole!!!. todos tus circuitos funcionan al 100%. lo he probado todos. Ojala hubiera mas gente como tú por el mundo ayudando desinteresadamente.
    Dos cosas.¿Cual debería ser la tensión mínima de tensión de salida de este circuito con cualquier carga en la salida?. Por que si es menor que digamos 18v se podría hacer una fuente estabilizada para los paper.
    Tengo hecho una conexión para el paperduino con un módulo wifi esp8266 si quieres podría pasarte el programa y circuito y tú lo papertuneas. MIL GRACIAS.

    ResponderEliminar
  65. buen dia tengo que realizar un control con arduino que me reciba un detector de cruce por cero, regule el ancho de pulso con un potenciometro, y poder controlar el disparo de dos scr, no he sido capas; me podrias ayudar. muchas gracias.

    ResponderEliminar
  66. Lo primero es felicitarte por este proyecto.

    Me llamo Sergio y te estoy mandando esta sugerencia como anónimo porque desde la cuenta google ma falla mucho...

    Ahora viene mi curiosidad.

    No se podría integrar todo en una solo placa?? Es decir, el arduino y tu placa. Evidentemente no creo que haga falta montar todo el Arduino... La idea es que sea como una única pcb. Se podría hacer??

    Gracias y Salu2

    ResponderEliminar
  67. Saludos puedo usarlo en una conexión 110V Normalmente?

    ResponderEliminar
  68. Buenas te molesto, tengo que controlar una resistencia que no puede soportar mas de 75V, seria valido esto para controlarla, te comento la señal que la controlaria seria una señal PWM pero yo necesito que la resistencia resiva solo 75V, intente poniendo un dimmer comercial clavandole el valor en 75V pero a la hora de controlarla tuve q usar un rele y la verdad cuando llega a cierta temperatura necesitaria que no este recibiendo toda la tension sino controlada x pulsos y con el rele eso no lo podria conseguir, como me recomendarias hacerlo, desde ya muchas gracias

    ResponderEliminar
  69. Hola Diego:

    No, no es señal de PWM ya que esta funciona solo con DC, y estamos en AC, regulación por tensión.

    Saludos.

    ResponderEliminar