235651744-dimmer-arduino-arduino.pdf

Upload: lenin-medina

Post on 06-Jul-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    1/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/

    Dimmer-Arduino

    Publicado el 19 de octubre 2012

    Cambio de una carga de corriente alterna con un Arduino es bastante simpel: o bien un relé

    mecánico o un relé de estado sólido con un triac ópticamente aislado.

    Se convierte en un poco más complejo si se quiere regular una lámpara de CA de la red con un

    arduino: simplemente limitando la corriente a través un triac no es realmente posible debido a la

    gran potencia del triac entonces tendrá que disipar, resultando en mucho calor y también no es

    eficiente desde el punto de vista de uso de la energía.

    La forma correcta de hacerlo es a t ravés de control de fase:. El Triac entonces está

    completamente abierto, pero sólo durante una parte de la onda AC sinoid

    Uno podría un Arduino dejar abierta la Triac para un número de microsegundos, pero que tiene el

    problema de que es impredecible durante qué parte del sinuswave el triac se abre y por lo tanto elnivel de regulación es impredecible. Se necesita un punto de referencia en la onda de seno.

    Para que un detector de cruce por cero es necesario. Este es un circuito que cuenta la Arduino (u

    otro microcontrolador) cuando la onda de seno pasa a través de cero y por lo tanto da un punto

    definido en el que la onda de seno.

     Apertura de la Triac para un número de microsegundos después de por lo tanto, el cruce por cero

    da un nivel predecible de atenuación .

    Arduino Arduino y cosas relacionadas

    http://arduinodiy.wordpress.com/http://arduinodiy.wordpress.com/http://arduinodiy.wordpress.com/http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    2/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 2

    Este circuito, que es un ejemplo.

    Dicho circuito es fácil de construir: El paso por cero se deriva directamente de la red de corrientealterna rectificada líneas - a través de un acoplador óptico, por supuesto-y le da una señal cada

    vez que la onda pasa por cero. Debido a que la onda senoidal pasa primero por la rectificación

    doble por etapas (véase la figura a continuación), la señal de cruce por cero se da sin tener en

    cuenta si la onda de seno sube por cero o hacia abajo por cero. Esta señal se puede utilizar para

    dirigir una interrupción en el Arduino.

    Seguir 

    Siga "Arduino"

    Obtenga cada nuevo postentregado a su bandeja deentrada.

    Únete a otros 42 seguidores

    Enter your email address

    Registrarme

    Desarrollado por WordPress.com

    http://wordpress.com/signup/?ref=lofhttp://void%280%29/http://arduinodiy.files.wordpress.com/2012/10/0-crossing1.jpg

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    3/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 3

     Apertura de

    la triac se realiza a través de un circuito de triac opto acoplada probado y comprobado. Para el

    Triac un TIC206 se puede utilizar, pero un BT136 (un poco más barato) probablemente funcionaría

    también. Con respecto a la MOC3021: que tiene una tensión directa de aproximadamente 1.2 a

    1.4 voltios y una corriente de disparo de 8-15 mA. Un LED tiene una tensión directa de unos

    2Volts. Suponiendo una señal de dirección digital de 5 V que da un valor de resistencia entre (5-

    3.2) / 0.015 = 120 Ohm y (5-3.2) / 0.008 = 225 Ohm, por lo que 220 una opción decente. En

    realidad, un LED puede tener una tensión directa ligeramente inferior y una resistencia de 330

    Ohm fue encontrado para trabajar también. Es importante no elegir un opto-triac aquí con un filtro

    de cruce por cero incorporado. El MOC3041 MOC3061 o para el caso, por lo tanto no es utilizableen este circuito. El MOC 3021 es. NOTA: algunas personas han experimentado el parpadeo como

    consecuencia de una señal de entrada débil. Como la caída de tensión sobre un LED puede variar 

    dependiendo del color. que es más seguro para reemplazar el LED por un puente de alambre y

    aumentar la resistencia de 220 Ohm a 330 o 470 Ohm En cuanto a las resistencias de 30k: El

    1/2 Watt debe hacerlo como las resistencias disipan algunos 400mW. Si usted piensa que es

    demasiado, reemplazar el 4N25 4N33 con una y las dos resistencias de 30k con dos resistencias

    100 k. Tenga cuidado sin embargo al usar optoacopladores sensibles como el 4N32, ya que será

    fácilmente plenamente en la saturación.

    http://arduinodiy.files.wordpress.com/2012/10/sine.gif

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    4/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 4

    Este es el circuito completo del dimmer 

    Todos los que uno necesita entonces es el software. Afortunadamente alguien ya ha hecho el

    trabajo básico. Simplemente adapté el código ligeramente:

    / *

    AC Voltaje dimmer con Zero detección cruzada

    Autor: Charith Fernanado http://www.inmojo.com

    Licencia: Creative Commons Attribution Share-Alike 3.0 License.

    Coloque el pasador transversal cero del módulo de Arduino pin de int

    Seleccione la correcta Interrupción # de la siguiente tabla:

    (Los números de pin son los pines digitales, NO pins físicas:

    pin digital 2 [INT0] = pin físico 4

    y pin digital 3 [INT1] = pin física 5)

     Pin | de interrupción de # | Plataforma Arduino

     ---------------------------------------

     2 | 0 | Todo

     3 | 1 | Todos

     18 | 5 | Arduino Mega Sólo

     19 | 4 | Arduino Mega Sólo 20 | 3 | Arduino Mega Sólo

     21 | 2 | Arduino Mega Sólo

    En el pin programa se elige 2

     * /

    int AC_LOAD = 3; / / Salida de pin Opto Triac

    int oscurecimiento = 128; / / Nivel de atenuación (0-128) 0 = ON, 12

    / * Debido a problemas de tiempo, el uso de '0 'a veces puede hacer

    parpadeo. Es más seguro utilizar un valor ligeramente superior a '0

    http://arduinodiy.files.wordpress.com/2012/10/dimmer2.jpg

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    5/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 5

    * /

    void setup ()

    {

      pinMode (AC_LOAD, OUTPUT) ;/ / pin de carga Set AC como salida

      attachInterrupt (0, zero_crosss_int, RISING);

    / / Escoge '0 'como interrupción para el cruce por cero

    }

    / / La función de interrupción debe tener parámetros y devolver nada

    void zero_crosss_int ()/ / Función para ser disparado en el cruce por cero para atenuar la

    {

      Cálculo del ángulo / / cocción: 1 onda 50Hz completo = 1/50 = 20 m

    / / Cada zerocrossing así: (50 Hz) -> 10 ms (1/2 Ciclo) Para 60Hz

    / / 10 ms = 10000US

      / / (10000US - 10us) / 128 = 75 (aprox) Para 60Hz => 65 

    int DimTime = (75 * oscurecimiento); / / Para 60Hz => 65 

    delayMicroseconds (DimTime); Ciclo / / Off

      digitalWrite (AC_LOAD, HIGH); / / Triac despido

      delayMicroseconds (10); / / Triac El retardo de propagación

      / / (Para uso 60Hz 8,33)

      digitalWrite (AC_LOAD, LOW); / / Triac Off

    }

    void loop () {

     for (int i = 5; i

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    6/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 6

    El aspecto a considerar es que si usted está construyendo un sistema en el que no está

    utilizando una fuente de alimentación ya hecho, sino más bien proporcionar su propia fuente dealimentación, construido a partir de un transformador y un rectificador, usted podría considerar 

    recogiendo el 0-travesía desde el lado secundario del transformador.

    Un posible circuito podría tener este aspecto:

    http://arduinodiy.files.wordpress.com/2012/12/voedingbig.jpghttp://arduinodiy.files.wordpress.com/2012/10/dimmer-p1040650.jpg

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    7/57

     Like

    One blogger likes this.

    CONEXO

    Conmutación de baja

    tensión de CA con un

    microcontrolador 

    Interruptor de un solo

    canal Triac AC

    Relé de estado sólido

    para el microcontrolador 

    C

    en15 de diciembre 2012 a las 17:03  dijo:

    http://arduinodiy.wordpress.com/2012/09/30/solid-state-relay-for-microcontroller/http://arduinodiy.wordpress.com/2012/10/21/single-channel-triac-ac-switch/http://arduinodiy.wordpress.com/2013/09/02/switching-low-voltage-ac-with-a-microcontroller/http://en.gravatar.com/mskvaer

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    8/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 8

    Swell. Voy a intentar esto. Estoy en 115V/60Hz

    Ha proporcionado los valores de 60 Hz, pero lo que haga con los 30K resistencias? ¿Debo

    duplicarlas o medio de ellos y lo que acerca de su Potencia? Lo siento, no soy tan hábil

     Arduino

    en16 de diciembre 2012 a las 10:50 am  dijo:

    Gracias mitad de ellos. Potencia puede seguir siendo la misma. Más que

    suficiente

    Jos

    en22 de diciembre 2012 a las 11:57 am  dijo:

    Saludos, tengo un par de preguntas tontas (?); Soy un tipo de matemáticas y (hasta) Yo

    no sé nada sobre el hardware; mi hermano construyó la cosa y parece que funciona, pero

    no entiendo por qué; es probablemente porque no sé cómo funciona un triac ...

     A partir del código Puedo ver que la mitad de un ciclo de toma 10000US y el pin

     AC_LOAD se establece en alto para 10us en algún momento durante ese ciclo. Mi

    calculadora muestra que (10000US-10us) / 128 == 78.046875us así ¿no 78us ser unamejor aproximación en lugar de 75us? ¿Por qué se divide el (medio) ciclo en 128 partes?

    Sería más 'natural' no 256 partes?

    Mi otra pregunta trata sobre el propio procesador: durante ese retraso puede el procesador 

    aún se interrumpa o se trata efectivamente muerto durante ese período de retardo? (Lo

    siento por esto, no pude encontrar una respuesta de Google en cualquier lugar).

    Gracias por la lectura y

    Saludos cordiales,

    Jos

     Arduino

    en28 de febrero 2013 a las 1:41 am  dijo:

    Josh, disculpas por mi última contestación. 78 nosotros puede de hecho ser una

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    9/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 9

    mejor aproximación, sólo haber elegido un número agradable cerca

    wether 256 sería un proceso más natural es de hasta al gusto, incluso a 256 la

    velocidad del cambio es más importante que el tamaño del paso. Para mi

    propósito pasos 0f 128a parecía satisfactoria, pero no hay problema en tomar 

    pasos más pequeños

    Gracias por su interés

    Jos

    en28 de febrero 2013 a las 9:58 am  dijo:

    No hay problema; en la media hora que tomé un enfoque diferent: su solución hace que la

    espera hasta que el procesador tiene que enviar un pulso a la triac; en mi solicitud de que

    es una pérdida de tiempo, así que utiliza un temporizador que interrumpe el procesador de

    nuevo cuando ha llegado el momento de enviar un pulso. Divido los 0,01 s en 256 partes y

    preescala el temporizador / 8; eso hace 20.000 ticks por 0,01 segundos y funciona muy

    bien, mientras que mi procesador puede hacer otras cosas; cerca de la "ventaja" de la

    alarma de cruce por cero simplemente me dejo el triac o desactivar porque la corriente es

    demasiado baja para cambiar correctamente a un estado encendido (este valor difiere

    según el tipo de triac).

     Arduino

    en20 de marzo 2014 a las 12:55 pm  dijo:

    Esa es, de hecho, una buena solución Josh. El ejemplo que di era sólo eso, un

    ejemplo. He dado una solución con una interrupción del temporizador, así

    Nativepr 

    en03 de marzo 2013 a las 2:54 am  dijo:

    ¿Puedo usar un arduino a dimm 220v para un todavía?

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    10/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 10

    Gracias por su respuesta

     Arduino

    en07 de abril 2013 a las 22:31  dijo:

    No estoy seguro de lo que quieres decir con un alambique

    nativerpr 

    en28 de abril 2013 a las 2:02 am  dijo:

    Me refiero a un aparato de destilación. Para controlar la temperatura de la

    caldera

     Arduino

    en20 de junio 2013 a las 20:41 dijo:

    En principio esto es posible, pero puede haber soluciones más fáciles para

    que

     Andy

    en21 de marzo 2013 a las 16:40  dijo:

    ¿Alguien más ha tenido problemas con el parpadeo / brillantes destellos de la lámpara?

    Me parece que no puede conseguir una transición sin problemas, incluso con la 'DimTime'set variable a un valor fijo tengo los mismos problemas donde me esperaba un brillo

    constante.

    Voy a ser la partida a un Hackspace local del domingo (donde tienen un osciloscopio) y

    publicaré lo que me entero.

     Andy

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    11/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 1

    en26 de marzo 2013 a las 10:52 am  dijo:

    He echado un vistazo a mi alimentación de 5V en un ámbito. La forma de onda es

    terrible. No es de extrañar el arduino consigue flancos ascendentes adicionales.

    Hizo que mi propio suministro de 5V y funciona muy bien ahora.

     Arduino

    en07 de abril 2013 a las 22:32  dijo:

    Estoy feliz de que ya se enteró de lo que pr eproblem es, fuente de alimentación

    5volt año. Gracias por publicarlo

     Arduinodiy

    en28 de marzo 2013 a las 22:08  dijo:

    Ese es un enfoque interesante. Mi programa era sólo una manera rápida de mostrar el

    funcionamiento pero si yoy establece una interrupción de temporizador que sería más

    eficiente.¿Le importaría compartir su código?

    Jeff 

    en30 de abril 2013 a las 1:51 am  dijo:

    He encontrado una gran cantidad de problemas con "parpadeo / destellos brillantes" en el

    poder en torno a un 40-50%. La manera de solucionar este problema es abandonar el

    puente de diodos como un detector de cruce por cero. En su lugar colocar la red eléctrica

    a través de 150K de resistencia (yo usé 3 * 47K en serie) para controlar directamente la

    entrada óptica, pero (lo más importante) poner un diodo en paralelo con la entrada óptica,

    dirección inversa. Así que ahora en el columpio positivo de la vivo, la entrada óptica se

    "ilumina", y en la oscilación negativa del diodo en paralelo atrapa el voltaje en la entrada

    óptica de ir más de ~ 0,7 voltios polaridad inversa, y la entrada óptica es "oscuro ". Ahora

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    12/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 12

    usted tiene una buena onda cuadrada en el colector opto o "el cruce por cero out", el

    cambio de 0-5v y 5v a 0V etc exactamente con la red de cruce cero.

    En el código, cambie:

    attachInterrupt (0, zero_crosss_int, RISING);

    a:

    attachInterrupt (0, zero_crosss_int, CHANGE);

     Ahora "vacío zero_crosss_int ()" se denomina a cada paso por cero como antes.

    He utilizado un 4N33 en lugar de un 4N25. Es posible que necesite más bajo que 150K si

    está utilizando un 4N25. También me pareció que necesitaba un 2.2K tire hacia arriba de

    la resistencia en el colector opto (10k es mucho a mayor), a conseguir lindas fuertes

    subidas y caídas. Tener buenos fuertes subidas y caídas en los cruces por cero es clave

    para evitar "parpadeo" o miss-disparo.

    He adaptado el código se ejecute en interrupción utilizando el temporizador 1, en lugar de

    poner en un retraso en el código de servicio zero_crosss_int. Aquí está mi código de

    prueba arduino leonado:

    Char inByte ;/ / personaje de recepción serie

    int volátiles variar = 19980; / / .. Esto es OFF valor .. 200 = 100 uS con un preescala 8,

    100 * 200 = 10 ms ... pero int respuesta tarda 10us a fin de utilizar 19.980

    int AC_LOAD = 3; / / Salida Opto Triac pin

    int atenuación = 10; / / Nivel de atenuación (0-100) 0 = apagado, 100 = en

    void setup ()

    {pinMode (AC_LOAD, OUTPUT) ;/ / pin de carga Set AC como salida

    attachInterrupt (1, zero_crosss_int, CHANGE);

    / / cambio elige como interrumpir el paso por cero

    Serial.begin (115.200);

    }

    / / la función de interrupción debe tener parámetros y devolver nada

    vacío zero_crosss_int ()

    / / Función para ser disparado en el cruce por cero para atenuar la luz

    {

    ajuste del ángulo / / Firing

    / / inicializa Timer1

    TCCR1A = 0; / / Establecer toda registro TCCR1A a 0

    TCCR1B = 0; / / Igual para TCCR1B

    / / set comparar registro de coincidencia a cuenta del temporizador deseada:

    OCR1A = varían;

    / / activar el modo de CTC:

    TCCR1B | = (1

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    13/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 13

    TCCR1B | = ( ; 1

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    14/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 14

    Jeff 

    en30 de abril 2013 a las 2:01 am  dijo:

    una parte del código no fue fijado derecha. un trozo faltaba en el medio. Aquí está el

    código de nuevo:

    Char inByte ;/ / personaje de recepción serie

    int volátiles variar = 19980; / / 200 = 100 nosotros con una preescala 8, 100 * 200 = 10 ms

    de interrupción = off ... pero int respuesta = 10us así 19980

    int AC_LOAD = 3; / / Salida Opto Triac pin

    int atenuación = 10; / / Nivel de atenuación (0-100) 0 = apagado, 100 = en

    void setup ()

    {

    pinMode (AC_LOAD, OUTPUT) ;/ / pin de carga Set AC como salida

    attachInterrupt (1, zero_crosss_int, CHANGE);

    / / Permite seleccionar '1 "como interrupción para el cruce por cero

    Serial.begin (115.200);

    }

    / / la función de interrupción debe tener parámetros y devolver nada

    vacío zero_crosss_int ()

    para ser disparado en el cruce por cero para atenuar la luz / / Función

    {

    / / Firing ajuste del ángulo/ / inicializa Timer1

    TCCR1A = 0; / / Establecer toda registro TCCR1A a 0

    TCCR1B = 0; / / Igual para TCCR1B

    / / set comparar registro de coincidencia a cuenta del temporizador deseada:

    OCR1A = varían;

    / / activar el modo de CTC:

    TCCR1B | = (1

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    15/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 15

    }

    Serial.print ("nivel es");

    Serial.println (oscurecimiento);

    break;

    case 'l':

    atenuación = atenuación-5;

    if (oscurecimiento

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    16/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 16

    }

    void loop () {

    if (Serial.available ()> 0)

    "

    insertar arriba exacto después TIMSK1 texto | = (1

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    17/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 17

    Lamentablemente no puedo enviar u correo electrónico, ya que no tengo dirección

    yr

    Nikoas

    en06 de mayo 2013 a las 22:29  dijo:

    Tratar de utilizar un temporizador en lugar de los delayMicroseconds pero sigue

    parpadeando .. Código es como esto:

    int AC_LOAD = 3;

    volátil int atenuación = 128;

    void setup ()

    {

    pinMode (AC_LOAD, OUTPUT) ;/ / pin de carga Set AC como salida

    attachInterrupt (0, zero_cross_int, RISING);

    }

    void loop ()

    {

    }

    void zero_cross_int ()

    {

    SetTimer (65 * oscurecimiento);

    }

    ISR (TIMER1_COMPA_vect)

    {

    digitalWrite (AC_LOAD, HIGH);

    delayMicroseconds (8,33);

    digitalWrite (AC_LOAD, LOW);

    }

    void SetTimer (microsegundos int)

    {

    TCCR1A = 0; / / Establecer toda registro TCCR1A a 0

    TCCR1B = 0; / / Igual para TCCR1B

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    18/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 18

    TCCR1B | = (1

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    19/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 19

    No estoy vendiendo cualquier módulo de che. El que he vinculado es mailorder 

    Chethan

    en19 de julio 2013 a las 19:44 dijo:

    Hola, si no está disponible, entonces voy a tratar de construir mi propio.

    ¿Podría usted los pls compartir el circuito completo esquemática ...? ..Tengo que construir en la India por lo que mi alimentación de CA será

    50Hz 230v ...

     Arduino

    en19 de julio 2013 a las 23:13 dijo:

    Che que, el circuito completo es en este artículo. En caso de que noestaba claro, se necesita el circuito que u verá inmediatamente por encima

    de la lista de programas que tiene el 4N25, el MOC3021, el puente

    rectificador y el triac. Anuncio se puede ver un circuito simple rally.

    Encontrará el diseño de impresión por debajo de la lista de programas y

    una foto de los componentes en el PCB justo debajo. Los valores

    indicados se refieren a 230 voltios. No dude en preguntar si lo que necesita

    saber más

     Arduino

    en27 de agosto 2013 a las 19:43  dijo:

    no estoy seguro de lo que quieres decir Chethan. lo que forma parte del

    circuito le falta?

    Indra

    en29 de septiembre 2013 a las 6:10 pm  dijo:

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    20/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 20

    Hola, he construido este c ircuite mi cuenta, y ahora quiero programar mi controlador atmel

    8051 para recibir la señal de accionamiento paso a cero, la señal de atenuación en.

    Lo que entendí desde el programa anterior es, Conecte estos puntos a los pines de

    microcontrolador, y utilizar el programa anterior. Zero Crossing señal o / p trabajo como de

    interrupción en el controlador y en base a esto se acciona la señal del atenuador hacia

    fuera puesto ..

    ¿Puedo utilizar encima programa directamente con sólo dando detalles pin correcto en el

    programa ..

     Arduino

    en29 de septiembre 2013 a las 19:29  dijo:

    Indra, sí que se entiende wel. Tendrá que conectar el cruce por cero a una

    interrupción del microcontrolador annd continuación tiene un pin de salida del

    microcontrolador encienda el optoaislador / triac

    Sin embargo, el programa en sí mismo probablemente no funciona

    inmediatamente, ya que no es puro C, pero si usted tiene un compilador de C para

    el año 8051 un uso dyou este programa, obtendrá bastante lejos, mediante la

    adaptación de los pasadores y haciendo que la lengua un poco más pura C.

    Si consigues que funcione, yo estaría muy interesado para que usted pueda

    compartirlo

    Gracias por yr comentario

     Arduino

    en29 de septiembre 2013 a las 22:18  dijo:

    es posible que desee comprobar aquí:

    http://www.linuxforturkey.com/lamp_dimmer/lamp_dimmer.php . durante algún

    código

    que sé que hace muchos años que escribí algo de código para hacer esto por un

    8051, incluso en ensamblador, pero después de 20 años he perdido ese código y

    no estoy trabajando con más de 8.051

    http://www.linuxforturkey.com/lamp_dimmer/lamp_dimmer.php

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    21/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 2

    indra

    en30 de septiembre 2013 a las 6:18 am  dijo:

    Gracias por la información, a continuación es el código que he escrito, me dejaron test y

    post los resultados

    # include

    /*============================================================================

    =============================================================================

    int oscurecimiento = 0;

    delayMicroseconds void (unsigned int i)

    {

    unsigned int j, k;

    for (j = 0; j

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    22/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 22

    void main (void)

    {

    / * ----------------

    Zero Crossing interrupción

    ---------------- * /

    IT0 = 1; / / Configurar Zero Configurar interrumpa 0 para el borde que cae sobre / INT0

    (P3.2)EX0 = 1; / / Habilitar la interrupción EX0

    EA = 1; / / Habilitar Global Interrupt Flag

    / * ----------------

    para Triac unidad P1.0

    ---------------- * /

    P1 = 0x00;

    / * ----------------

    esperar para

    siempre. ---------------- * /

    int i;

    for (i = 5; i

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    23/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 23

    Hola, he intentado mi tabla con el código que he escrito para 89V51RD2.

    recibo la interrupción de Zerocrossing pin de salida ...

    Pero la carga (bombilla) que estoy conectado no está variando, su siempre ON .. si me

    quito la señal de entrada triac también mi carga es ON ".. Es TRIAC está bien?

    Dado que no he tenido 30k (1,2 vatio), conecté 33k (1/2watt) todos los demás o normal

    resistencia ..

    aquí está mi retraso y el código de ISR

    delayMicroseconds void (unsigned int i)

    {

    for (j = 0; j

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    24/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 24

    indra

    en09 de octubre 2013 a las 5:51 am  dijo:

    Hola, Ya que yo no he puesto ningún pie ic,, voy a tratar de reemplazar el IC y comprobar 

    ...

    Tengo una pequeña pregunta: ¿

    Tengo que apoyar a cuatro niveles de regulación para mi carga (bombilla).

    se cambia el retardo entre ON y OFF triac funciona bien?

     Al igual que a continuación.

    / / Nivel: 0

    P0 = 0 × 01; De disparo / / triac

    delayMicroseconds (8); / / Triac El retardo de propagación de Nivel: 0

    P0 = 0X00 ;/ / triac Off 

    / / Nivel: 1

    P0 = 0 × 01; De disparo / / triac

    delayMicroseconds (10); / / Triac El retardo de propagación de Nivel: 1

    P0 = 0X00 ;/ / triac Off 

    / / Nivel: 3P0 = 0 × 01; De disparo / / triac

    delayMicroseconds (12); / / Triac El retardo de propagación de Nivel: 2

    P0 = 0X00 ;/ / triac Off 

     Arduino

    en10 de octubre 2013 a las 1:42 am  dijo:

    Es mejor primero desoldar un pin de la resistencia.

    Con respecto a los 4levels usted tiene que establecer los ajustando el retardo

    desde el zerocrossing

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    25/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 25

    indra

    en10 de octubre 2013 a las 11:23 am  dijo:

    Hola, el problema era con optoaislador, me desoldar resistencia de 1k .. ahora no es ON

    .. Así como usted sugirió que intentaré sustituir con el nuevo ...

    Con 4levls sentido, yo no entendía "retardo desde el zerocrossing" .. ¿Está agregando un

    cierto retraso en la rutina de interrupción que me pasa por la salida de cruce por cero ..

    según mi código de abajo, cada vez que tengo la interrupción, en la rutina de interrupción

    que hago el disparo traic y OFF ..

    Entonces, ¿dónde agregar el dealy con el fin de tener niveles tenues diffrent

    vacío ex0_isr (void) interrumpen 0

    {

    P0 = 0 × 01; De disparo / / triac

    delayMicroseconds (10); / / Triac El retardo de propagación

    P0 = 0X00 ;/ / triac Off

    }

     Arduino

    en11 de octubre 2013 a las 9:24 am  dijo:

    Hola Indra, bueno que identificaron el problema. Sin embargo, asegúrese de que no

    interrumpía cualquier cortocircuito accidental entre las pistas de la optoaislador.

    Con el retardo de la zeorcrossing quiero decir que el lightlevel de la lámpara depende de

    en qué parte del 50Hz (o 60Hz) Ciclo de enviar un pulso a la TRIAC.

    En un ciclo de 50 Hz el tiempo transcurrido entre dos cruces por cero es de 10 ms (8,33

    en una 60Hz) .

     Así que si usted quiere tener la lámpara de yr a media potencia, es necesario encender el

    TRIAC mitad de ese ciclo, que es de 5 ms después de la zerocrossing.

    Si quieres lámpara año en el 25% hay que esperar para 7,5 ms después de la

    zerocrossing antes de que se activa el TRIAC y si quieres lámpara año a la fuerza el 75%

    que necesita para activar el TRIAC después de 2,5 ms.

    (técnicamente para el 25% y el 75% se trata de una aproximación como el área bajo la

    curva no es liniair, pero está lo suficientemente cerca para la ilustración de los proces).

    Hay que añadir que la demora en su programa antes de disparar el TRIAC. ¿Dónde está

    exactamente depende de ti, pero lo que he hecho en mi código de Arduino es que en mi

    rutina de interrupción, multiplico un stepvariable con un steptime. Posteriormente me puse

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    26/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 26

    esa variable en mi bucle principal.

    Desde solo deseas 4 niveles, podría establecer una más grande steptime ejemplo 2.4ms

    y que se multiplican con una variable.

    Posteriormente, en el bucle principal se establece esa variable que decir 1, 2, 3 o 4

    También puede establecer el total de DimTime directamente en su mainloop de la

    siguiente manera:

    interrumpir {

    delayMicroseconds (DimTime);

    P0 = 0x01;

    delayMicroseconds (10); / / Propogationdelay

    P0 = 0x00;

    }

    loop {

    IF condición DimTime = 9,000;

    ELSE IF condición DimTime = 7,000;

    ELSE IF condición DimTime = 5,000;

    ELSE DimTime = 2000;

    }

    He elegido 9000 en lugar de (10000-10) porque el 4N25 que da la zerocrossing no es ideal

    en un sentido de que no da un pulso muy estrecho. A los efectos normales de regulación

    que no es un problema, pero podría dar algunos problemas de tiempo cuando se regula

    cerca de los bordes de su ciclo

    Espero que ayude, buena suerte. no vacilamos en preguntar si necesita más ayuda

    Indra

    en12 de octubre 2013 a las 10:14 am  dijo:

    Hola,

    Gracias por la información detallada. Traté como usted ha dicho anteriormente.

    en lugar de la regulación a nivel constante .. Mi carga (bombilla) parpadea al ritmo que he

    añadido como DimTime ...

    este es mi código de demora.

    delayMicroseconds void (unsigned int i)

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    27/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 27

    {

    for (j = 0; j

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    28/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 28

    Indra

    en14 de octubre 2013 a las 19:48  dijo:

    Hola, gracias por su ayuda .. yo soy capaz de obtener cuatro niveles DIM ..

    Pero de repente la carga parpadea .. como se había sugerido reemplacé con 220ohm

    440ohm y 1kohm, pero aún así me sale el parpadeo durante el funcionamiento normal ..

    pls sugieren cómo para superar este parpadeo ..

    Desde mi 8051 pin hacia fuera puesto no era capaz de conducir el MOC3021, he usado

    un TIP122 para conducir .. como below https://lh3.googleusercontent.com/-

    OHBImWUiKVM/UlwtYFIGwgI/AAAAAAAAABo/_o4aIjLk8ts/w776-h458-no/test.png

    Y a continuación es mi código completo

    / * Dimmer.C - Keil Evaluation Board MCBx51 con 80C51 dispositivo * /

    # Include

    # include

    int regulación = 0;

    unsigned int j, k;

    anular delayMicro (unsigned int nosotros)

    {

    for (; nosotros> 0; nosotros-)

    {

     _nop_ (); / / Si el cristal es cristal de 11 MHz a continuación retraso es de ~ 1

    microsegundo

    }}

    void delay (unsigned int i)

    {

    for (j = 0; j

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    29/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 29

    {

    for (j = 0; j

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    30/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 30

    {

    atenuación = 380; / / Nivel 1

    delay (9999);

    atenuación = 450; / / Nivel 2

    delay (9999);

    atenuación = 500; / / Nivel 3

    delay (9999);

    atenuación = 550; / / Nivel 4delay (9999);

    }

    }

     Arduino

    en14 de octubre 2013 a las 23:24  dijo:

    Hola Indra, gracias por su código. Pero para ser sincero, es difícil de decir. Sigo dando un

    ejemplo de que en la medida de lo que puedo ver es sólo simple y debería trabajar

    su Drive_Trac rutina parece totalmente innecesario, ya que se puede establecer que en su

    routne interrupción. Ahora sólo tienes años de interrupción llamada de rutina otra rutina.

    Su función de retardo parece un poco demasiado complicado y se puede simplificar. P0 =

    0 × FF supuesto enciende la totalidad del puerto, pero como yo no sé en que TRIAC pinaño está, lo dejé como tal, pero creo que podría escribir por ejemplo P0_1 = 1.

    No soy un programador de C, pero ¿por qué no intenta algo como esto y ver lo que

    sucede:

    / * ================================================ === * /

    void ex0_isr (void) interrumpa 0

    {

    int DimTime = (75 * oscurecimiento);

    delayMicroseconds (DimTime);

    P0 = 0 × FF;

    delayMicroseconds (10); / / Propogationdelay

    P0 = 0 × 00;

    }

    void msdelay (valor unsigned int) {

    unsigned int x, y;

    for (x = 0; x

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    31/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 3

    }

    / * ================================================ === * /

    void main (void)

    {

    / * ----------------

    Configurar INT0 (interrupción externa 0) para generaruna interrupción en el flanco de bajada de / INT0 (P3.2).

    Habilitar la interrupción EX0 y luego habilitar el

    indicador de interrupción

    mundial. ---------------- * /

    IT0 = 1; / / Configurar interrumpa 0 para el borde que cae sobre / INT0 (P3.2)

    EX0 = 1; / / Habilitar la interrupción EX0

    EA = 1; / / Habilitar Global Interrupt Flag

    P0 = 0 × 00; / / Todos los pines de PORT0 declarada como salida

    / * ----------------

    Esperar

    siempre. ---------------- * /

    while ( 1)

    {

    for (i = 5; i

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    32/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 32

    {

    TMOD = 0 × 01;

    TL0 = 0xFD;

    TH0 = 0x04B;

    TR0 = 1; / / Iniciar el temporizador.

    while (TF0 == 0); / / Run hasta TF se convierte en 1

    TR0 = 0; Temporizador / / detener

    TF0 = 0; / / Restablecer la bandera}

    }

    indra

    en15 de octubre 2013 a las 19:18  dijo:

    Hola, gracias a su paciencia y buena respuesta ... yo tratamos con osciloscopio para

    cotejarla con el retardo adecuado .. parece que he puesto los retrasos propios

     Ahora he hecho un programa, en el que usuario enviará su nivel deseado (como un

    comando de UART, como SET L1, L2 SET etc) .. Su trabajo también.

    Pero todavía tengo un poco de problema, es decir, cuando la carga está en un cierto nivel,

    se enciende correctamente hasta que se recibe el comando siguiente UART del usuario.Durante en algún nivel de la carga de repente parpadea (parpadeo repentino) a nivel alto y

    reaparece al mismo nivel .. Esto no está relacionado con mi retraso o periodo, que ocurre

    de forma irregular, y muy a menudo. ¿Es a causa de algún problema en mi circuito? Traté

    de cambiar todos los valores de la resistencia, pero todavía esto sigue ..

     Arduino

    en16 de octubre 2013 a las 3:13 am  dijo:

    No creo que se trata de un fallo en el circuito de año, podría ser picos en PSU

    año. Si comparte código yr conmigo voy a comprobar.

    Trate de ejecutar el código que te di y ver cómo se comporta

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    33/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 33

    Maha

    en08 de noviembre 2013 a las 20:18 dijo:

    hola,

    He conectado el circuito de dimmer, pero yo solía MOC3020. lo hace adecuado o tengo

    que usar 3021?

     Arduino

    en14 de noviembre 2013 a las 7:14 am  dijo:

    Sí u can. Lo más importante es que el acoplador óptico es la detección de uno sin

    paso por cero

    Malí

    en22 de noviembre 2013 a las 20:32 dijo:

    Saludos y gracias por compartir. No me queda claro cómo se limita la corriente que va

    hacia la puerta del Triac. Es una resistencia de 1K (CA a que MOC3021), lo que permitiría

    aprox I_G = 215 mA pasar, es decir, -220 + V_R + V_ {TM} + T_ {GT} = 0, donde R = V_R

    / I_G. Tanto los triacs que mencionas tienen una sensibilidad puerta mucho más bajo que

    esto. Es probablemente 10k? Gracias

     Arduino

    en22 de noviembre 2013 a las 21:03 dijo:

    Es cierto que a veces se utilizan los valores más altos de la resistencia, y creo que

    también yo veo 68 o 100k. Sin embargo, no hay 220 voltios sobre el triac, ya que está en

    serie con la carga. Esto probablemente no es una resistencia muy alta, dependiendo de la

    potencia de la carga de modo de cálculo año se acerca para esos momentos el triac está

    apagado. El 220 voltios es sin embargo un promedio. Si desea activar el triac cerca del

    cruce por cero, los números son diferentes.

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    34/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 34

    Más que para iniciar el cálculo de que he elegido un diseño existente que conozco

    funcionó bien. Estoy seguro de que a pesar de una mayor resistencia también funcionaría.

    Puedo intentar una vez lo que podría ser la resistencia máx. Si usted descubre que wld

    encantaría oír.

    De Tony

    en25 de noviembre 2013 a las 22:44 dijo:

    ¿Cuál es la carga de corriente máxima de esto? Estoy diseñando un control para un

    elemento de calefacción 5500W a 240 VCA (~ 23Amp max) que quiero ser capaz de

    ajustarse de 0 V (apagado) a plena potencia (a) a 240VAC. El 240VAC PSU tiene dos

    líneas telefónicas a 120VCA 180 grados fuera de fase. ¿Es este el tipo de circuito que

    debe utilizarse para esta aplicación? ¿Tengo que usar diferentes componentes de

    corriente con una capacidad superior?

     Arduino

    en26 de noviembre 2013 a las 7:35 am  dijo:

    Tony, no soy lo suficientemente competente en 2 o 3 fases de corriente alterna

    para responder con seguridad a esta pregunta. En principio este circuito es

    adecuado para cualquier carga, siempre y cuando se elige el triac derecha. Usteddice que tiene 2 líneas de alta tensión de 180 grados fuera de fase, pero si puedo

    entender también tiene un feed neutro, 3 hilos ir al dispositivo de año? Si se trata

    de sólo dos líneas, entonces la única cosa que cuenta es el hecho de que hay un

    cruce por cero. Si usted tiene 3 líneas de lo que es un poco más complicado, pero

    sí, en principio, 2 circuitos podría ser la respuesta, sin embargo no tengo

    experiencia con eso. Tal vez alguien aquí puede ayudar 

    Malí

    en25 de noviembre 2013 a las 23:18 dijo:

    Gracias por su respuesta. Después de algunas lecturas por fin he entendido los criterios

    para elegir el valor de la resistencia de R_G. Cuando se coloca en este circuito, tendrá

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    35/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 35

    dos efectos principales:

    a) Se limitará / Proporcionar la corriente que pasa por la puerta del triac (I_ {GT})

    b) Se hará que la tensión disminuya cuando el triac está encendido ( V_R)

    El valor más bajo de esta resistencia puede tener (para 220 V AC) es de R = 220 * sqrt (2)

    / I_ {TMS}, donde I_ {} TMS es la máxima corriente permitida en fototriac del

    fotoacoplador. Estos son valores de la oleada, por lo que son transitorios y representan un

    límite antes de desmontarlo. Por lo tanto, en su circuito R sería de R = 220 * sqrt (2) / 1 =311,12 o 330 ohmios, ya I_ del MOC3021 {TMS} = 1A. Esto es consistente con I_ {GM}

    que es la corriente de pico puerta de la TIC206. En el esquema se utiliza 1K lo que

    limitaría la corriente a 311mA.

    Este caso "aumento" puede tener lugar sólo cuando se recibe un impulso por la fototriac y

    es capaz de realizar I_ {GT}, y por supuesto, para un valor de la línea de 220 * sqrt (2).

    Carga entonces se acumulan en la puerta del triac hasta V_ {GT} se acumulan y el triac

    se activa.

    En el cuadrante I, (V_ {GT} y A1 son más positivas que A2) para que la carga suficiente

    para edificar y V_ {GT} en el triac principal a la abeja alcanzado, el voltaje a través del

    triac debe ser igual V_R + V_ {TM } + V_ {GT}

    Por supuesto V_R = I_ {GT} * R. Comúnmente, V_ {TM} + V_ {GT} será tanto representan

    aproximadamente 3V (hoja de datos). Al mismo tiempo, la resistencia debe ofrecer 

    suficiente corriente a la puerta del Triac, digamos que un mínimo de 25 mA (sensibilidad

    del Triac), así

    V_ {triac} = 330ohms * 1.3 V 25 mA 1.1 V = 10.65V y

    V_ {triac} = 1k ohmios * 1.3 V 25 mA 1.1 V = 27.4V (el valor de su circuito)

    ¿Cuál es la tensión necesaria para activar el triac. Por lo tanto, el más pequeño de la

    resistencia se requiere menos voltaje para encender el triac principal. Lo que sucede

    después es principalmente que hay una caída de tensión en A1 y A2, por lo que la

    tensión y la corriente fototriac caerá causando estado de apagado (del fototriac). La tríada

    principal se mantendrá interruptor si se respeta la I_H corriente de mantenimiento. Cuando

    la corriente de carga está por debajo de I_H, el triac principal se apaga hasta que un

    impulso del fotodiodo se emite de nuevo con el fin de polarizar V_ {GT} y construir la carga

    requerida en el siguiente ciclo. Q1 y Q3 son los cuadrantes para esta configuración.

    Saludos.

     Arduino

    en26 de noviembre 2013 a las 7:16 am  dijo:

    Gracias Malí para clasificar hacia fuera y escribirla claramente. Parece hasta

    cierto punto es posible que haya leído los mismos artículos en que hice y que me

    hizo decidirme a usar sólo un tratado y reposó en el diseño

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    36/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 36

    franssenrogier 

    en26 de noviembre 2013 a las 1:15 am  dijo:

    Hola,

    Soy un programador / usuario arduino novato y estoy tratando de configurar este dimmer 

    para que la luz se descolora in / out. Me dimmer sí configurado correctamente y funciona

    perfectamente con el código de seguridad.

     Ahora que he estado intentando algunas cosas a mí mismo en el código, pero me siguen

    dando la "búsqueda de nombre de '" mensaje de error cuando i verifico ella.

    Yo sólo ajusté el bucle del código original de este modo:

    void loop () {

    int x = 1;

    for (int i = 5; i> -1, i = i + x) {

    if (i == 128) x = -1;

    }

    {

    atenuación = i; / / Línea de mensaje de error de

    delay (10);

    }

    }

    Miré el código de error en la web y me enteré de que tiene algo que ver con una "i" algo

    demasiado o, pero pensé que la "i" para la regulación sigue siendo la misma que la 'i' en

    de bucle.

     Arduino

    en27 de noviembre 2013 a las 2:44 am  dijo:

    Este error significa que u hacer múltiples declaraciones de i. Donde u hacer esto

    no es inmediatamente claro para mí, pero su código es un poco extraño. . Dado

    que no es inmediatamente claro para mí lo que está tratando de achive es difícil

    decir lo que hay que cambiar

    El problema sin embargo es en el ';' después de que su 'x = -1' en su sentencia if 

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    37/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 37

    No debe haber un punto y coma después de una sentencia if. Debe haber un

    punto y coma después de la acción que se define por corchetes alrededor

    Si x = -1 es la acción tras su condición, no debe haber corchetes alrededor.

    Cuando su soporte final debe ir depende de lo que usted está tratando de lograr.

    Sin embargo, parece que acaba de agregar al azar una sentencia if sin tener la

    estructura de la actual bucle "for" en consideración.

    No estoy seguro de lo que está tratando de lograr, pero eliminando el punto y

    coma hace año error desaparece, pero luego por supuesto pide un punto y coma.retirar 'x = -1;' en total hace que el error de código de funcionamiento libre.

     Así, ergo usted ha estructurado su caso, condición equivocada. Un caso de

    condiciones debería tener este aspecto:

    Si (condición) {action;}

    Mientras que usted tiene:

    Si algo (condición);

    acción existente del bucle FOR

    Jos

    en27 de noviembre 2013 a las 8:43 am  dijo:

    Su variable 'i' se declara en un for-loop, por lo que es local para ese bucle, es

    decir, no se puede utilizar fuera de ese circuito; el remedio es simple: declare

    fuera del bucle, por ejemplo, cuando usted declaró 'x' es un buen lugar.

    Saludos cordiales,

    Jos

    Malí

    en26 de noviembre 2013 a las 2:55 pm  dijo:

    Por el contrario, gracias a t i por compartir. Esta fue mi primera vez la publicación y era

    muy servicial. Diseños felices.

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    38/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 38

    bigWcharly

    en04 de diciembre 2013 a las 9:33 am  dijo:

    Muchas gracias por compartir esto! También los comentarios y el apoyo que dan son

    realmente útiles!

    @ Mali, también gracias a usted por su detallada explicación sobre el valor de la

    resistencia entre el moc y triac Si he entendido bien, el valor más pequeño es mejor,

    ya que entonces el voltaje al otro lado del triac es menor y menos energía se disipa?

    ¿Existe la posibilidad de que las corrientes transitorias se romperá la R de menor valor?

    He visto circuitos similares donde también añaden una resistencia entre la puerta y la T1

    del triac. ¿Le suena familiar a cualquiera? ¿Por qué esto se necesitaría? He estado

    rompiendo la cabeza de él, pero la única razón que se me ocurre es que sólo es

    necesario si la corriente de puerta max es menor que la corriente del terminal máx del

    moc? Así que por lo general no necesita entonces .. . ¿Alguien puede confirmar?

     Ahora, que he construido el circuito con R 330 y también una resistencia s imilar entre G y

    T1. He notado que cuando conecto el circuito a la red eléctrica, la lámpara parpadea y

    hasta mi arduino recoge falsas alarmas (yo uso una interrupción adicional para controlar la

    luz con un interruptor). Alguien se dio cuenta de esto también? ¿Cómo puedo solucionar 

    esto? La carga es puramente resistiva (bombilla tradicional).

    En espera de su respuesta, muchas gracias de nuevo

     Arduino

    en04 de diciembre 2013 a las 21:35  dijo:

    Gracias bigWcharley

    comentario de Malí era útil por cierto. Yo, básicamente, elegí un valor que es

    seguro para el MOC y la puerta.

    Conozco el circuito te refieres, yo siempre supuse que era conseguir una

    definición más estricta de la tensión en la puerta coz que tiene un divisor de

    tensión, pero no estoy seguro . Youe explicación podría ser verdad, asílo que se refiere a la oscilación, ¿esto sólo sucede cuando se agrega que la

    resistencia extra?

    El parpadeo de la lámpara puede ser causado por el arduino recogiendo falsas

    alarmas, pero ¿por qué se recoge éstos (es decir, ¿cuál es la razón) que no sé.

    Tal vez alguien más kmnows

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    39/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 39

    aficionado

    en06 de enero 2014 a las 22:49  dijo:

    Hola,

    no entiendo lo que he hecho, pero que funcione.

    / / -------------

    int AC_LOAD = 3;

    int atenuación = 8;

    void setup ()

    {

    pinMode (AC_LOAD, OUTPUT) ;/ / pin de carga Set AC como salida

    attachInterrupt (0, zero_crosss_int, RISING);

    pinMode (4, INPUT);

    digitalWrite (4, HIGH);

    pinMode (5, INPUT);

    digitalWrite (5, HIGH);

    }

    void zero_crosss_int ()

    {int DimTime = (75 * oscurecimiento); / / Para 60Hz => 65

    delayMicroseconds (DimTime); Ciclo / / Off

    digitalWrite (AC_LOAD, HIGH); De disparo / / triac

    delayMicroseconds (10); / / Triac El retardo de propagación / / (para uso 60Hz 8.33)

    digitalWrite (AC_LOAD, LOW); / / Triac Off 

    }

    void loop () {

    if (digitalRead (4) == LOW) oscurecimiento + +;

    delay (10);

    if (digitalRead (5) == LOW) oscurecimiento;

    delay (10);

    if (atenuación> 120) oscurecimiento;

    if (oscurecimiento

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    40/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 40

    / / ----------------------

    Gracias por este proyecto, un cordial saludo

     Arduino

    en07 de enero 2014 a las 5:07 am  dijo:

    Eso es bueno. Gracias por reacción año

    scott2512

    en17 de enero 2014 a las 20:27  dijo:

    ¿Habrá alguien capaz de darme una lista de todas las piezas que necesito para construir 

    esto, por favor?

     Arduino

    en17 de enero 2014 a las 22:03  dijo:

    Scott, estoy un poco sorprendido ya que parecía evidente desde el circuito, perotal vez yo no estaba claro:

    10k resistor, 1 k, 220R, 30k, 30k

    4N25

    MOC3021

    Puente rectificador

    TRIAC como TIC206

    LED rojo

    Usted podría saltar el LED y hacer la resistencia de 220R una 470 R

    Tom

    en20 de marzo 2014 a las 1:28 am  dijo:

    http://gravatar.com/scott2512

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    41/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 4

    Hola,

    Gran mensaje. No puedo hacer que funcione, aunque. Creo que mi problema es con la

    detección de cruce por cero (cuando intento configurar +5 V a Triac manualmente las

    luces luz correctamente, así que para este circuito funciona muy bien).

    Para el puente rectificador utilizo DF08, es BR adecuado para esto? Como usted ha

    mencionado más arriba, me supuesto utilizo 4N25 junto con dos resistencias de 30k(230V 60 Hz).

    Traté de controlar el puerto serie (debe mostrar '1 'cada interrupción), y me dieron

    resultado sólo al enchufar el cable de 230 V y desenchufarlo.

    Lo siento por mi pregunta de novato, pero estoy realmente nuevo a la electrónica.

    Gracias de antemano por su respuesta,

    Tom

     Arduino

    en20 de marzo 2014 a las 4:22 am  dijo:

    El dfo8 debería estar bien, pero sólo le dou comprobar la disposición de pines para

    ver si es compatible. U puede medir cualquier salida en el pin crissing cero?

    Tomen20 de marzo 2014 a las 4:29 am  dijo:

    Como mencioné antes, cuando trato de medir la producción de cero pin

    cruce consigo 5 V sólo cuando estoy enchufando y desenchufando 230V,

    de lo contrario no pasa nada. Revisé todos los pins montón de veces y

    todo parece estar conectado bien. Como puedo ver que está utilizando

    doble rectificación gradual, DF08 es monofásico, ¿importa?

    Tal vez debería publicar foto de Circut en placa si no es demasiado para

    usted?

     Arduino

    en20 de marzo 2014 a las 4:46 am  dijo:

    Sí, seguir adelante y publicar eso. El shld rectificador ser un puente. Tuve

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    42/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 42

    la impresión de que el DF08 es un puente. ¿Se inserta el camino

    correcto? ¿El 4N25 insertado de la manera correcta?

    Tom

    en20 de marzo 2014 a las 5:00 am  dijo:

    Sí, tanto 4N25 y DF08 se colocan en la posición correcta. ¿Podría decirme qué BR que

    utilizó en su caso?

    Por favor envíeme un correo electrónico, ya que no puedo poner fotos aquí, voy a enviar de

    vuelta en respuesta a su correo electrónico.

     Arduino

    en20 de marzo 2014 a las 5:02 am  dijo:

    Voy a tener que comprobar. Enviará u email cuando estoy detrás de mi escritorio

    Tomen20 de marzo 2014 a las 24:18  dijo:

    Ok, a la espera, gracias!

     Arduino

    en20 de marzo 2014 a las 24:38  dijo:

    He hecho utilizado un DF02

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    43/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 43

    Tom

    en20 de marzo 2014 a las 24:58  dijo:

    DF02 es también única por etapas que he podido ver en la ficha técnica. Yo acabo de

    enviar un correo electrónico

     Arduino

    en20 de marzo 2014 a las 13:03  dijo:

    Tiene que uno y verlo. ¿Es realmente un 4N25? Realmente no puedo distinguir el

    número

    Tomen20 de marzo 2014 a las 13:08  dijo:

    Sí, esto es 100% 4N25. Tiene LTV 4N25 escrito en él, que creo que es

    LTV código de productor (Lite-On)

     Arduino

    en20 de marzo 2014 a las 13:12  dijo:

    Tengo una hoja de datos. No está seguro de lo que la monofásica se referiría a ya

    que es un rectificador normal de puente. De todos modos, la configuración parece

    bien.

    ¿Ha utilizado el programa exactamente como yo siempre que (con INT 0)?

    Lo que quiero que hagas es medir el voltaje en el lado primario del optoacoplador.

    Si la configuración es correcta, el software está bien, los cables están bien,

    entonces empiezo a pensar que quizás su 4N25 no está bien.Después de hacer la medición puede cambiarla por otra?

    Tom

    en20 de marzo 2014 a las 13:29  dijo:

    Ok, acabo medí lo que está pasando justo después de BR, y no da

    ninguna Votage. Ahí es donde sucede la magia - como he mencionado

    antes sólo cuando enchufo y enchufo el cable 230V consigo algunos

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    44/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 44

    resultados - cuando lo intenté con el multímetro veo que incluso cuando

    mostrando 0 cuando conecto o alejar el multímetro cable muestra - 0.00V

    por un rato.

    De hecho, yo no sé cómo es posible porque yo ya cambié DF08 dos

    veces. He cambiado de nuevo y ... funciona. El primero que yo sólo sé que

    roto, segundo parecía estar bien!

    Voy a terminar el circuito de regulación y le dejaré saber si todo funciona

    bien.

     Arduino

    en20 de marzo 2014 a las 13:31  dijo:

    ok parece que tienes el problema existe. Componentes impares, pero he

    tenido vienen directamente desde la tienda y ser defectuoso también. daño

    no puede comprobar 

    Tom

    en20 de marzo 2014 a las 3:05 pm  dijo:

    Sí, funciona bien ahora. Tengo otro problema ahora, y tal vez algo en el

    código. Estoy tratando de valores diferentes para la regulación:

    Cuando me puse int atenuación de 25 que parece tener la potencia

    máxima, cuando me puse a 23 empieza a parpadear mal. Cuando me

    puse de atenuación a 128 que tiene aproximadamente 1/2 de potencia,

    149 es el valor que se ilumina sólo un poco.

    Parece que los valores propios son entre 25 y 149. ¿Por qué?

     Arduino

    en20 de marzo 2014 a las 16:41  dijo:

    ¿Se refiere a los valores de "i"?

    Si es así que me sorprendería. Los valores límite son teóricamente 0 y

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    45/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 45

    128 debido a que el software toma 128 pasos de 75 microsegundos (para

    50Hz). Esa es una aproximación, ya que en teoría podría ir a 133 (como

    133.3 * 75 es 10000US = 100 Hz).

    Polonia-donde está-ha 50 Hz de frecuencia por lo que el 75 de nosotros en

    el software debe estar en lo cierto. ¿Está seguro que no por casualidad

    selecciona 60Hz? En ese caso, en 128 su tiempo sería 8320 nosotros y

    por lo tanto la lámpara no sería totalmente apagado.

    Si, efectivamente, usted tendría que a 60 Hz y luego a 149 su tiempo sería9685, que es de hecho casi apagado.

    Si, efectivamente, ha seleccionado correctamente 50Hz luego una fuente

    de alimentación "sucia" puede causar estragos ya que puede couse picos

    adicionales que provocan la interrupción.

     Así que primero me gustaría comprobar el software de año para ver lo que

    el tiempo que ha selecc ionado.

    Assaf Laufer 

    en09 de abril 2014 a las 14:09  dijo:

    Hola Arduino, usted escribió:

    El aspecto a considerar es que si usted está construyendo un sistema en el que no está

    utilizando una fuente de alimentación ya hecho, sino más bien proporcionar su propia

    fuente de alimentación, construido a partir de un transformador y un rectificador, usted

    podría considerar recogiendo el 0-travesía desde el lado secundario del transformador.

    ¿Es posible conectarse a 4N25 y 1k directamente a BR1 y BR2 así a eliminar?

     Arduino

    en10 de abril 2014 a las 9:06 am  dijo:

    Querido Assaf, mi respuesta es "depende"

    Usted no puede captar la señal directamente desde BR1 porque hay un

    condensador de filtrado sobre el + y -. líneas y, por tanto, simplemente no hay

    ninguna señal de zerocrossing izquierda ya

    Lo que podría hacer es tomarlo off BR1 y luego usar un diodo antes de alimentar 

    https://www.facebook.com/assaf.laufer

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    46/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 46

    la tensión de los capacitores.

    Sin embargo, ya que el puente es un componente barato, decidí simplemente

    mantenerlo limpio y separar las dos señales por completo.

    Confío en que responde a su pregunta

    Christoph

    en24 de mayo 2014 a las 23:10  dijo:

    Estoy interesado en hacer este proyecto. Acabo de recibir una chispa Core y funciona

    muy bien. Así que ese es mi plan - para adaptar este proyecto para el Núcleo. Mi

    pregunta no es sobre eso, aunque (aún no). Más bien, es en lo que respecta a los cables

    al dimmer. Mi dimmer actual tiene dos cables. Uno de la red y uno para la carga (y una

    tierra). ¿Cómo voy a ser capaz de hacer este proyecto (que parece que necesita dos

    cables de la red eléctrica y dos fuera)?

     Arduino

    en30 de mayo 2014 a las 7:12 am  dijo:

    Christoph no estoy del todo seguro de lo que u están pidiendo, pero voy a tratar de

    responder. No estoy seguro de si te están diciendo yr dimmer actual tiene doscables + un tercero o que realmente tiene 3 cables, pero no es tan importante. De

    hecho, un dimmer puede ser visto como un dispositivo que está en serie con la

    carga. Por lo tanto sólo dos cables son lo suficientemente: uno procedente de la

    red eléctrica y uno que va a la carga. La carga, por supuesto, tiene otro cable que

    va de nuevo a la red eléctrica.

    El dimmer para el arduino es de hecho el mismo, pero tiene un circuito agregado a

    él a ella para detectar el cruce por cero. Eso tiene dos cables de la red eléctrica.

    La carga como u puede ver tiene un cable que va directamente a la red, pero

    simplemente se conecta a t ravés de la Junta de Coordinación de este circuito.

    ¿Eso aclarar o hace necesidad de u un poco más de explicación. No dude en

    preguntar 

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    47/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 47

    Steven obstáculo

    en25 de mayo 2014 a las 7:07 am  dijo:

    Me parece que la mitad superior del circuito sería redundante si operaba PWM del triac

    a> 480Hz, porque usted estaría promediando 8 o más muestras de la carga en la onda

    sinusoidal - el patrón de ritmo estaría por encima del nivel de discernimiento de la

    persistencia de la visión humana.

    Steven obstáculo

    en26 de mayo 2014 a las 2:32 am  dijo:

    Rasque eso. Me olvidé de que un triac se enciende hasta que la onda pasa por cero de

    nuevo, por lo que no puede cambiar de línea de CA más rápido que 120 Hz (100 en elReino Unido.)

    Daniel

    en22 de junio 2014 a las 4:39 am  dijo:

    Hola me gustaria sabre si Tienes el Programa en el Caso si coloco Potenciómetro un, párr 

    Realizar la Regulación de la ampolleta. Gracias

     Arduino

    en22 de junio 2014 a las 5:00 pm  dijo:

    / *

    Control de Luz AC

    Puesto al día por Robert Twomey

    Cambiado de detección de cruce por cero para buscar flancoascendente en lugarde caer. (En principio, sólo estaba cortando la mitad negativade la forma de onda de CA).

    También cambió la dim_check () para encender el Triac, dejándola ahasta de fuera de la zero_cross_detect () a su vez.

    http://stevenhurdle.ca/http://stevenhurdle.ca/

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    48/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 48

    Ryan McLaughlin

    El hardware consiste en un Triac para actuar como un interruptor deA / C yun opto-aislador para darnos una referencia de cruce por cero.El software utiliza dos interrupciones para controlar la atenuaciónde la luz.La primera es una alarma de proceso para detectar el cerotransversal dela onda sinusoidal de CA, la segunda está basada en software y

    siempre corriendoa 1/128 de la velocidad de la onda de corriente alterna. Después dedetectar el cruce por cerode la prueba de funcionamiento para asegurarse de que ha sido elnivel de regulación adecuadoalcanzado y la luz se enciende de onda media, sólo proporcionarcorriente parcial y atenuación nuestra carga de CA, por lo tanto.

    Gracias a http://www.andrewkilpatrick.org/blog/?page_id=445y http://www.hoelscher-hi.de/hendrik/english/dimmer.htm

    * /

    # Include / / Disponible desdehttp://www.arduino.cc/playground/Code/Timer1

    volatile int i = 0; / / Variable para utilizar como un contador dezero_cross booleano volátil = 0; / / Boolean para almacenar un"interruptor" que nos diga si hemos cruzado ceroint AC_pin = 11; / / Salida Opto Triacint POT_pin = A0; / / Pot para probar la atenuaciónLED int = 3; / / LED para la pruebaint dim = 0; / / Nivel de atenuación (0-128) 0 = en, 128 = 0ff

    int freqStep = 65; / / Este es el paso de retraso-por-el brillo enmicrosegundos.Se calcula / / basada en la frecuencia de la tensión de alimentación(50Hz o 60Hz)/ / y el número de pasos de brillo que desee./ // / El único complicado parte es que el circuito de chopper chuletasde la onda de CA dos veces por/ / ciclo, una vez en el medio positivo y una vez en el medionegativo. Este meeans/ / el picado sucede en 120 Hz para un suministro de 60 Hz o 100 Hzpara un suministro de 50Hz.

    / / Para calcular freqStep se divide la longitud de una onda mediolleno del poder/ / ciclo (en microsegundos) por el número de pasos de brillo./ // / (1,000,000 uS / 120 Hz) / 128 pasos de brillo = 65 uS / brillopaso/ // / 1000000 us / 120 Hz = 8333 uS, longitud de una onda media.

    void setup () {/ / Comienza configuraciónpinMode (AC_pin, OUTPUT); / / Establecer el pin como salida TriacpinMode (LED, OUTPUT); / / Establecer el pin LED como salidaattachInterrupt (0, zero_cross_detect, RISING); / / Conecte un

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    49/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 49

    Interupt al Pin 2 (interupt 0) para cruce por cero de detecciónTimer1.initialize (freqStep); Biblioteca / / Inicializar TimerOnepara la frecuencia que necesitamosTimer1.attachInterrupt (dim_check, freqStep);/ / Usar la Biblioteca TimerOne adjuntar una interrupción/ / a la función que utilizamos para comprobar para ver si es/ / el momento adecuado para disparar el triac. Esta función/ / Ahora se ejecute cada freqStep en microsegundos.}

    void zero_cross_detect () {zero_cross = true; / / Establecer el valor booleano true para contarnuestra función de regulación de que un cruce por cero se haproducidoi = 0;digitalWrite (AC_pin, LOW);}

    / / Activar el TRIAC en el momento oportunosin efecto dim_check () {if (zero_cross == true) {if (i> = dim) {digitalWrite (AC_pin, HIGH); / / Enciende la luz

    i = 0; / / Paso de tiempo de restauración del contadorzero_cross = false; / / Restablecer la detección de cruce por cero}else {i + +; / / Incrementa contador de paso de tiempo}}}

    void loop () {dim = analogRead (POT_pin) / 8; / / Leer el valor del dimmer desdepotenciómetroanalogWrite (LED, dim); / / Escribir el valor dimmer al LED, para ladepuración}

    Daniel

    en23 de junio 2014 en 12:57a.m. dijo:

    Muchas muchas gracias, me salvaste la vida

    Pratik. R. Bhagat

    en30 de junio 2014 a las 9:36 am  dijo:

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    50/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 50

    Mi circuito está trabajando muy bien.

    Estoy usando triac-BTA16 600b para la regulación bombilla 200watt. La tensión de

    alimentación es de 230 V CA 50Hz. La bombilla sólo toma 0.800ma de la corriente y

    sigue siendo mi triac se calientan después de 30 minutos. ¿Qué puede ser la causa?

    Estoy utilizando el mismo código que en este foro.

    resistencia de puerta = 330R.

    MOC3021 Conductor

    controlador ATtiny85cordiales.

    PRB

     Arduino

    en30 de junio 2014 a las 16:17 dijo:

    Pratik. Es difícil decir si es que hay algo mal. Pero déjame ver primero si entiendo

    correcto de u: se quedó realmente significa 0.800mA? O 0,800? A = 800 mA

    800 mA es todavía un anuncio actual de tamaño considerable, incluso si no sería

    decir 20 voltios sobre el triac que todavía es el equivalente de un soldador 

    pequeño. Así que tal vez todo está bien. Es difícil decir qué tan caliente "caliente"

    es. La temperatura también depende del nivel de atenuación de la lámpara. U

    puede querer intentar ver si hay una diferencia entre la máxima potencia y decir 

    3/4 de potencia

    Pratik

    en01 de julio 2014 a las 19:53 dijo:

    Hola amigo,

    Gracias por tu respuesta.

    Extremadamente siento su 0.800Amp es decir, 800 mA.

    Temperatura del triac cae entre 50-60 C On-FULL-POWER.

    Estoy usando ATTINY85 para controlar el triac que tiene comandos de maestro arduino

    usando el protocolo I2C. He preparado un pequeño circuito que consigue instalado en el

    interior de la placa del interruptor. Así que debido a que la temperatura aumenta, me temo

    que en el interior del tablero de interruptor de la temperatura aumentará más y que puede

    dañar el triac. Para evitar el daño que utilicé max triac amp BTA16-600b. Pensé que el

    actual 0.800A sería nada a este triac.

    Examiné que si yo uso MOC3041 zc-conductor del triac permanece warm45-50c. ¿Hay

    algún problema en el disparo de triac (en el código anterior)..

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    51/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 5

    ¿Qué pasa si he añadido carga inductiva como ventilador de techo i temo que mi triac

    conseguirá tostado Por cierto que he añadido varistor en paralelo con el triac. .

    ¿Su triac también calentando.

     Arduino

    en02 de julio 2014 a las 1:49 am  dijo:

    De hecho 800mA hay nada para este triac. Sin embargo, si u no enfrían lo que

    todavía puede llegar a ser muy caliente. No me atrevo a decir si es 50-60 grados

    es u usual. Que el 3041 mantiene el enfriador triac es de hecho sorprendente. Es

    que cuando ambos están en full.power? El tiempo puede ser un problema. ¿De

    qué tamaño son las resistencias u han utilizado para cortar la tensión hacia el

    4N25 therhe optocoplw?

    pratik Bhagat

    en02 de julio 2014 a las 15:09 dijo:

    Saludos,

    Estoy usando 1 watt resitor 120k 1206 SMD en paralelo. Eso hace 2

    vatios y 60k.

    Hoy me simultáneamente probado CKT triac MOC3041 y con triac con

    MOC3021. El triac MOC3041 era poco más fresco que 3021. Carga fue de

    2 ventiladores de mesa. Disparando momento de triac está haciendo más

    cálido. Pero aún así, funciona bien. He notado un comportamiento starnge

    en circ triac MOC3021 es que a valores de atenuación 115-117 bombilla sequeda en penumbra y de alta de forma continua como un latido del

    corazón. Mi ATtiny está funcionando con oscilador interno de 8 MHz y se

    calibra tinytuner.

    Yo no soy bueno en los temporizadores. ¿Podemos utilizar atattin85 8bit

    temporizador difícil para disparar con precisión el triac. ¿Se puede apoyar 

    con el código.

    También podemos detectar la detección zerocrossing sólo mediante el uso

    de un acoplador óptico como PC817 y un diodo.

    Saludos,

    Pratik bhagat

     Arduino

    en03 de julio 2014 a las 2:37 am  dijo:

    Me pregunto si el temporizador del ATtiny es quizás un poco apagado.

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    52/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 52

    Como estoy a punto de dormir contestaré más tarde

     Arduino

    en03 de julio 2014 a las 24:33 dijo:

    Pratik. Sólo para asegurarse de que están en la misma página: el 3041

    tiene una detección zerocross incorporado y el 3021 no lo ha hecho. Es

    por ello que en este circuito utilizo el 3021, ya que el usuario determina

    cuándo se cortará la fase. El 3041 se disparará siempre en el zerocross.

    Para propósitos de prueba por supuesto el 3041 cab usarse sino porque

    siempre se abrirá completamente el triac, no es de extrañar que un triac

    con un 3021 obtendrá un poco warnmer que con un 3041, ya que con la

    3021 espero que usted es, de hecho, la regulación del TRIAC, por lo que

    es en realidad 'trabajando duro', mientras que el 3041 el Triac será activado

    o desactivado.

    Cuando usted está detectando el zerocross ti mismo-como en este

    circuito, el problema es que se trata de no un detector ideal: en lugar de

    dar un impulso fuerte exactamente en el zerocrossing, será más como una

    pendiente que comienza a subir un poco antes del zerocross y va a la baja

    después de la zerocross. La calidad de este pico es en cierta medida

    definida por el valor de la resistencia en la línea de CA: si el valor es

    demasiado grande, se obtiene un pico ancho si es demasiado bajo, el

    optoacoplador morirá.

    Respecto al temporizador: Supongo que usted está utilizando el oscilador interno. Supongo que debe ser lo suficientemente precisa para los tiempos

    de la micro y la banda de milisegundo. Para utilizar el temporizador para el

    disparo, presumo que desea establecer un temporizador y luego usar la

    interrupción del temporizador para disparar el triac en lugar de dejar que el

     ATtiny esperar a través de un retraso. Eso es definitivamente posible

    comprobar aquí durante algún arduino basado es mi artículo sobre

    instructables).

    con respecto a s implemente usando un acoplador óptico y un diodo para

    la detección zerocross, pues sí y no. He visto a gente hacer esto, pero le

    falta un zerocross cada ciclo, es mejor que utilizar un optoacoplador AC

    como el LT814 o el IL251 o H11AA11, porque van a reaccionar ante la ola

    de pecado completo.

    Entonces, para resumir ... que su TRIAC se está caliente es difícil de

    evaluar para mí, ya que no es infrecuente. pero no podemos evaluar que es

    "demasiado caliente"

    En lo que respecta a su triac cada vez más caliente con un moc 3021 que

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    53/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 53

    con un moc 3041 que no está más allá de las expectativas.

    Con respecto a su parpadeo de la lámpara a un nivel de 115 a 117 (se

    comporta ? normal en 120) Me imagino que eso de hecho es un problema

    de tiempo y que a ese nivel que usted parece estar ya en el límite de su

    período de tiempo, en lugar de eso que sucede en 128 Si no me queda

    claro, voy a explicar.: en un seno 50Hz usted tiene 10 ms que hacer toda

    la regulación que desee. El software divide ese período en 128 pasos, pero

    por supuesto, si la detección de su zerocross es un poco fuera bien podríaser que el nuevo zerocrossing ya está allí, la conmutación del triac año,

    mientras que usted todavía tratar de tenerlo fuego. Preferiría esperar esto

    si la interrupción está configurado para detectar el flanco descendente en

    lugar de la salida (como yo lo puse en mi programa).

    Pero tengo los siguientes consejos para que usted acerca de lo que usted

    podría intentar:

    Trate dos cosas, escoger el que i seasiets para usted primero:

    - reducir el valor de su resistencia de 60 k, 40 k hacer y ver lo que hace a

    su situación

    - cambiar la detección de bordes de la interrupción de flanco descendente

    y quiero saber si el efecto que se ve en 115-117 ahora sucede más pronto

    (digamos a 110) o no

    buena suerte

    Greg

    en18 de julio 2014 a las 16:40 dijo:

    Hola a todos .. empecé aquí como estoy teniendo problemas con un proyecto de la

    estación de soldadura - Mega Arduino, con termopares sobre el MAX6675, un PID y

    PIDautotune bibliotecas y los TRIAC. Sé que debería soportar la totalidad del proyecto en

    alguna parte (Fritzing, Arduino, aquí -??? Me dicen).

    Es bastante ambicioso, con 128 × 64 GLCD, soldador y pistola de aire caliente. No hay

    control de temperatura independiente para las dos herramientas, así como el control de

    flujo de aire para la pistola de aire caliente.

    Todo es realmente notable buena, lo que permite una primera carrera y la integración de

    todos ^ esas cosas ... pero el fuego del TRIAC sólo en algunos ciclos de la red eléctrica .

    OC bipolar EL817 y el puente rectificado ac seconday transformador como interrupción

    para zerocrossing - esto comienza un contador (el período de las cuales es la del último

    http://www.eightyeight.co.uk/solderstation/solderstation_v209j_ino.html

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    54/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 54

    período, conocido, microsegundos contado () ...) y que el recuento se divide y éstos

    división se cuentan de nuevo para determinar cuando se dispara el respectivo triac. La

    pantalla LCD sólo se actualiza (no redibujado, sólo por escrito a) y los termopares de sólo

    lectura una vez cada 250 ms.

    Justo en la parte superior de este hilo se mencionó que el código en el ejemplo dado se

    necesitarían alrededor de 10000US ejecutar - que es la duración de un ciclo medio de la

    red a 50Hz. Creo que esa es la ruta de mi problema. ¿Cree usted?

    Mi código de Arduino es 27704bytes compilados ... ¿no sería eso significa que se

    necesita sobre ... algo nos bucle?, El reloj ATmega 16MHz. lo cierto es, es demasiado a

    muchos a seguir el ritmo de la toma de corriente? ¡! ¡! ¡! No me parece bien .. 16 MHz es

    mucha más rápida (un montón de ips) de 10 ms de la mitad del ciclo.

    Mi pensamiento es, si el bucle se 10mS a ... loop, entonces eso sería dictar cuando (y si)

    un TRIAC se dispara y no el "contador" necesaria para dictar el tiempo que el TRIAC es

    "on" para.

    el croquis está aquí:

    http://www.eightyeight.co.uk/solderstation/solderstation_v209j_ino.html y el esquema está

    aquí: http://www.eightyeight.co.uk/solderstation/Solder% 20Station% 20v208k_schem.pdf 

    pic del "alcance (? oscillogram!) que muestra el pulso de fuego TRIAC sobrepuesto en la

    forma de onda al otro lado del LED OC, cae bastante cerca el uno zerocrossing - todo

    esto es bueno. Llamada ISR en flanco de bajada, "disparador alcance está en la fuente:http://www.eightyeight.co.uk/solderstation/solderstation% 20fire% 20en% 2050pc.JPG allí

    al 50% de potencia, los picos están bien situadas a medio camino a lo largo del ciclo

    medio - pero no todos los medio ciclo tiene uno! Los pulsos de fuego son irregulares por lo

    que lo que yo puedo decir, no discernible que repite el modelo - ciertamente nunca dos

    veces las mismas formas de onda relativas en el 'ámbito de aplicación.

    Y aquí, el 80% de potencia, mismos, bien colocados "fuegos", pero faltan algunos:

    http://www.eightyeight.co.uk/solderstation/solderstation% 20fire% 20en% 2080pc.JPG

    La proximidad a zerocrossing de los pulsos zerocrossing (alarmas) no es lo que tengo

    que resolver todavía (en su caso) - tengo que encontrar las espigas faltantes

    el esquema no es ideal, ya que he sido torturado (sólo un poco litte, es bueno para ser 

    gratuito) por fritzing - por ejemplo. los puentes rectificadores BR1 y BR3 son sólo

    "conectores" en el esquema, pero el + se etiqueta (BR2 fue en una versión anterior de una

    bomba de aire del motor de corriente continua, ha ido). Y los números de pieza falta o

    está mal. por ejemplo MOC3023 y TRIAC BT137. Y R31, al otro lado del LED en los

    http://www.eightyeight.co.uk/solderstation/solderstation%20fire%20at%2080pc.JPGhttp://www.eightyeight.co.uk/solderstation/solderstation%20fire%20at%2050pc.JPGhttp://www.eightyeight.co.uk/solderstation/Solder%20Station%20v208k_schem.pdfhttp://www.eightyeight.co.uk/solderstation/solderstation_v209j_ino.html

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    55/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 55

    EL817is optoacoplador zerocrossing sin dispositivo - pero una gorra 1nF está montado

    como un solo LPF escenario (con el gotero R) para el seno 50Hz - había un 'joggle'

    perfecto en cada zerocrossing donde el sine haría azotar alrededor y causar dos disparos

    zerocross. - Así que R31 es un condensador de 1 nF - fritzing nuevo partes limitaciones.

    Que se ha añadido como un equipamiento adicional y no es la causa de los doodahs

    faltan.

    Después de todo este mensaje, mi pregunta es en realidad sólo - será la ausencia de(quizás el 50%) de los pulsos de fuego-drive TRIAC ser porque el ATmega ha estado

    haciendo otras cosas y los echaba de menos? O alguna otra idea?

    Si hay más interés que me hago con mucho gusto más a publicar esto como un proyecto

    ... http://www.eightyeight.co.uk/solderstation/solderstation.JPG

    Pero no sería de mucho tiempo que no trabaja!

    -Gran consejo para los usuarios GLCD: utilizar el disco duro IDE de un PC (RIP) cable

    plano IDC y el uso de los Mega Arduino pines digitales a lo largo del borde corto. Sólo

    requiere que el archivo de configuración de Arduino es modificado, el archivo de

    configuración de la biblioteca GLCD se comenta en el boceto, hay que nombrar a los

    pines DI / O (pines alternativas para que pueda obtener sólo una de las filas), pero todo es

    bueno desde allí .... Esto puede afectar a la velocidad del bucle, aunque también, como

    algunos de los pins estarán en diferentes puertos que significan las líneas adicionales

    compilados que conozco.

    Greg

     Arduino

    en22 de julio 2014 en 12:38a.m. dijo:

     Ambicioso proyecto Greg.

    Con respecto al circuito ... Encuentro Fritzing horrible para circuito. I ISE sPlan7

    Con respecto a su pregunta, difícil de decir. Es difícil obtener una comprensión

    completa de software de año, normalmente si se trata de una interrupción, un

    procesador ocupado debe ser interrumpido.

     Asimismo, no puedo imaginar lo que el procesador shld todavía estar ocupado con

    en un ciclo, pero no en el próximo ciclo.

    Si Miro las imágenes de alcance yr, que ha incluido las fotografías con principios

    y con fines phasecutting y el problema es similar lo que significa que no es un

    problema de tiempo. En lo que a unas cuantas formas de onda pueden mostrar un

    patrón, el perdedor de los picos de activación parece ser bastante aleatorio.

     Ahora que ha usado una rectificación fase sinle que puede causar problemas año

    y también su código no es realmente óptima para que su uP hecho podría seguir 

    siendo hacer las cosas, mientras que la siguiente interrupción ya está ahí.

    http://www.eightyeight.co.uk/solderstation/solderstation.JPG

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    56/57

    1/8/2014 Dimmer-Arduino | Arduino

    http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/ 56

    Yo diría que comienzan con el uso de un rectificador de doble fase y ver lo que

    hace y en la media hora intente optimizar código yr.

    Greg

    en24 de julio 2014 a las 9:23 am  dijo:

    muchas gracias por sus pensamientos, creo que me voy a tener quesacarlo de mi cabeza ronda la manipulación portuaria para conducir los

    pines de salida en sus bits de registro (es que bitbanging ellos - o no del

    todo).

    rectificador de doble fase? no estoy seguro exaclty qué quiere decir con

    eso. Tal vez mi puente rectificador (o su simbología) en Fritzing te ha

    engañado. El aire acondicionado es de onda completa (puente) rectificada,

    por lo que el detector zc pone medios ciclos positivos y negativos que van,

    que no se diferencian. Creo pulso perdidos son muy al azar (de larga base

    de tiempo en 'scope).

     Acabo de cortar hoy el boceto de vuelta a desnudar esencial probar sólo el

    zc y triac disparo del código y ejecutar eso - hizo exactamente lo mismo -

    pulsos perdidos. Pero, cuando yo borrado el digitalWrite (triac_pin, LOW)

    del loop () (donde siguieron el conjunto ALTA 3US antes en el caso de las

    pruebas ..) y que se mueve y escritura BAJA al zc ISR, cada pulso se

    dispara correctamente ... y es una muy buena onda cuadrada que termina

    siempre en la próxima zc y se inicia en la variable de acuerdo a la entrada

    analógica conjunto olla. Yo sólo lo he hecho en un pin de salida - no lostres a la vez. Yo podría hacer los tres. Además, me podría enviar micros ()

    al monitor de serie para ver cuántos somos nosotros que consiguen a

    través de - problemas con eso: la producción en serie es muy, muy lento

    (incluso a 115200 bps) en comparación por lo que influye en gran medida

    el tiempo de bucle.

    Yo sólo estoy usando interrupciones para marcar el inicio del ciclo medio

    y comenzar simultáneamente contando centésimas 's del ciclo medio. El

    disparo del triac no funciona por interrupciones-, porque hasta ahora no he

    codificado para los tres triacs que cada uno tiene diferentes requisitos de

    accionamiento (POWER), serían tres más interrupciones de

    desbordamiento del temporizador.

    voy a recodificar un montón, creo.

    y voy a tratar sPlan7, no conocí antes y lo necesito!

    Gracias de nuevo. Voy a publicar de nuevo aquí cuando hay más.

    http://www.eightyeight.co.uk/solderstation/solderstation_v209j_ino.html

  • 8/17/2019 235651744-Dimmer-Arduino-Arduino.pdf

    57/57

    1/8/2014 Dimmer-Arduino | Arduino

    Pensé que podría hacer un video de la pulsestart ola cuadrados en

    movimiento a lo largo del ciclo de media ac sincronizado perfectamente

    con twiddling la olla-i - pero Arduinos conducir los servos y leds y cortinas

    en youtube en respuesta a nunchucks Wii y .. bueno, cualquier cosa. . . el

    precio del pescado .. son todos mucho más impresionante. tehe hay un

    tío utiliza arduino para alimentar a su perro con un teléfono eh!!.