235651744-Dimmer-Arduino-Arduino.pdf
-
Upload
lenin-medina -
Category
Documents
-
view
218 -
download
0
Transcript of 235651744-Dimmer-Arduino-Arduino.pdf
-
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!!.