Dimmer Arduino Arduino PDF
Dimmer Arduino Arduino PDF
Dimmer-Arduino | Arduino
Arduino
Arduino y cosas relacionadas
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
mecnico o un rel de estado slido con un triac pticamente aislado.
Se convierte en un poco ms complejo si se quiere regular una lmpara de CA de la red con un
arduino: simplemente limitando la corriente a travs un triac no es realmente posible debido a la
gran potencia del triac entonces tendr que disipar, resultando en mucho calor y tambin no es
eficiente desde el punto de vista de uso de la energa.
La forma correcta de hacerlo es a travs de control de fase:. El Triac entonces est
completamente abierto, pero slo durante una parte de la onda AC sinoid
Uno podra un Arduino dejar abierta la Triac para un nmero de microsegundos, pero que tiene el
problema de que es impredecible durante qu parte del sinuswave el triac se abre y por lo tanto el
nivel de regulacin 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 travs de cero y por lo tanto da un punto
definido en el que la onda de seno.
Apertura de la Triac para un nmero de microsegundos despus de por lo tanto, el cruce por cero
da un nivel predecible de atenuacin .
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
1/57
1/8/2014
Dimmer-Arduino | Arduino
Dicho circuito es fcil de construir: El paso por cero se deriva directamente de la red de corriente
alterna rectificada lneas - a travs de un acoplador ptico, por supuesto-y le da una seal cada
vez que la onda pasa por cero. Debido a que la onda senoidal pasa primero por la rectificacin
doble por etapas (vase la figura a continuacin), la seal de cruce por cero se da sin tener en
cuenta si la onda de seno sube por cero o hacia abajo por cero. Esta seal se puede utilizar para
dirigir una interrupcin en el Arduino.
Seguir
Siga "Arduino"
Obtenga cada nuevo post
entregado a su bandeja de
entrada.
nete a otros 42 seguidores
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
2/57
1/8/2014
Dimmer-Arduino | Arduino
Apertura de
la triac se realiza a travs de un circuito de triac opto acoplada probado y comprobado. Para el
Triac un TIC206 se puede utilizar, pero un BT136 (un poco ms barato) probablemente funcionara
tambin. Con respecto a la MOC3021: que tiene una tensin directa de aproximadamente 1.2 a
1.4 voltios y una corriente de disparo de 8-15 mA. Un LED tiene una tensin directa de unos
2Volts. Suponiendo una seal de direccin digital de 5 V que da un valor de resistencia entre (53.2) / 0.015 = 120 Ohm y (5-3.2) / 0.008 = 225 Ohm, por lo que 220
una opcin decente. En
realidad, un LED puede tener una tensin directa ligeramente inferior y una resistencia de 330
Ohm fue encontrado para trabajar tambin. 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 utilizable
en este circuito. El MOC 3021 es. NOTA: algunas personas han experimentado el parpadeo como
consecuencia de una seal de entrada dbil. Como la cada de tensin sobre un LED puede variar
dependiendo del color. que es ms 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
fcilmente plenamente en la saturacin.
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
3/57
1/8/2014
Dimmer-Arduino | Arduino
Todos los que uno necesita entonces es el software. Afortunadamente alguien ya ha hecho el
trabajo bsico. Simplemente adapt el cdigo ligeramente:
/*
AC Voltaje dimmer con Zero deteccin cruzada
Autor: Charith Fernanado http://www.inmojo.com
Licencia: Creative Commons Attribution Share-Alike 3.0 License.
Coloque el pasador transversal cero del mdulo de Arduino pin de interrupcin exter
Seleccione la correcta Interrupcin # de la siguiente tabla:
(Los nmeros de pin son los pines digitales, NO pins fsicas:
pin digital 2 [INT0] = pin fsico 4
y pin digital 3 [INT1] = pin fsica 5)
Pin | de interrupcin de # | Plataforma Arduino
--------------------------------------2 | 0 | Todo
3 | 1 | Todos
18 | 5 | Arduino Mega Slo
19 | 4 | Arduino Mega Slo
20 | 3 | Arduino Mega Slo
21 | 2 | Arduino Mega Slo
En el pin programa se elige 2
*/
4/57
1/8/2014
Dimmer-Arduino | Arduino
*/
void setup ()
{
pinMode (AC_LOAD, OUTPUT) ;/ / pin de carga Set AC como salida
attachInterrupt (0, zero_crosss_int, RISING);
/ / Escoge '0 'como interrupcin para el cruce por cero
}
/ / La funcin de interrupcin debe tener parmetros y devolver nada
void zero_crosss_int ()
/ / Funcin para ser disparado en el cruce por cero para atenuar la luz
{
Clculo del ngulo / / coccin: 1 onda 50Hz completo = 1/50 = 20 ms
/ / Cada zerocrossing as: (50 Hz) -> 10 ms (1/2 Ciclo) Para 60Hz => 8,33 ms
/ / 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 propagacin
/ / (Para uso 60Hz 8,33)
digitalWrite (AC_LOAD, LOW); / / Triac Off
}
void loop () {
for (int i = 5; i <= 128; i + +)
{
atenuacin = i;
de retardo (10);
}
}
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
5/57
1/8/2014
Dimmer-Arduino | Arduino
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
6/57
1/8/2014
Dimmer-Arduino | Arduino
E. diez Wink el
Gorjeo
11
Like
One blogger likes this.
CONEXO
Conmutacin de baja
tensin de CA con un
microcontrolador
Interruptor de un solo
canal Triac AC
Esta entrada fue publicada en dimmer por Arduino . Guarda el enlace permanente
[http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/] .
101 PENSAMIENTOS EN " DIMMER-ARDUINO "
C
en15 de diciembre 2012 a las 17:03 dijo:
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
7/57
1/8/2014
Dimmer-Arduino | Arduino
Arduino
en16 de diciembre 2012 a las 10:50 am dijo:
Jos
en22 de diciembre 2012 a las 11:57 am dijo:
Saludos, tengo un par de preguntas tontas (?); Soy un tipo de matemticas 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 cmo funciona un triac ...
A partir del cdigo Puedo ver que la mitad de un ciclo de toma 10000US y el pin
AC_LOAD se establece en alto para 10us en algn momento durante ese ciclo. Mi
calculadora muestra que (10000US-10us) / 128 == 78.046875us as no 78us ser una
mejor aproximacin en lugar de 75us? Por qu se divide el (medio) ciclo en 128 partes?
Sera ms 'natural' no 256 partes?
Mi otra pregunta trata sobre el propio procesador: durante ese retraso puede el procesador
an se interrumpa o se trata efectivamente muerto durante ese perodo 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 contestacin. 78 nosotros puede de hecho ser una
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
8/57
1/8/2014
Dimmer-Arduino | Arduino
Jos
en28 de febrero 2013 a las 9:58 am dijo:
No hay problema; en la media hora que tom un enfoque diferent: su solucin hace que la
espera hasta que el procesador tiene que enviar un pulso a la triac; en mi solicitud de que
es una prdida 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
segn el tipo de triac).
Arduino
en20 de marzo 2014 a las 12:55 pm dijo:
Esa es, de hecho, una buena solucin Josh. El ejemplo que di era slo eso, un
ejemplo. He dado una solucin con una interrupcin del temporizador, as
Nativepr
en03 de marzo 2013 a las 2:54 am dijo:
9/57
1/8/2014
Dimmer-Arduino | Arduino
Arduino
en07 de abril 2013 a las 22:31 dijo:
nativerpr
en28 de abril 2013 a las 2:02 am dijo:
Arduino
en20 de junio 2013 a las 20:41 dijo:
Andy
en21 de marzo 2013 a las 16:40 dijo:
Andy
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
10/57
1/8/2014
Dimmer-Arduino | Arduino
Arduino
en07 de abril 2013 a las 22:32 dijo:
Arduinodiy
en28 de marzo 2013 a las 22:08 dijo:
Ese es un enfoque interesante. Mi programa era slo una manera rpida de mostrar el
funcionamiento pero si yoy establece una interrupcin de temporizador que sera ms
eficiente.
Le importara compartir su cdigo?
Jeff
en30 de abril 2013 a las 1:51 am dijo:
11/57
1/8/2014
Dimmer-Arduino | Arduino
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 cdigo, cambie:
attachInterrupt (0, zero_crosss_int, RISING);
a:
attachInterrupt (0, zero_crosss_int, CHANGE);
Ahora "vaco 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 ms bajo que 150K si
est utilizando un 4N25. Tambin 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 cadas. Tener buenos fuertes subidas y cadas en los cruces por cero es clave
para evitar "parpadeo" o miss-disparo.
He adaptado el cdigo se ejecute en interrupcin utilizando el temporizador 1, en lugar de
poner en un retraso en el cdigo de servicio zero_crosss_int. Aqu est mi cdigo de
prueba arduino leonado:
Char inByte ;/ / personaje de recepcin serie
int voltiles 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 atenuacin = 10; / / Nivel de atenuacin (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 funcin de interrupcin debe tener parmetros y devolver nada
vaco zero_crosss_int ()
/ / Funcin 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 = varan;
/ / activar el modo de CTC:
TCCR1B | = (1 << WGM12);
/ / bit Set CS11 para 8 prescaler:
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
12/57
1/8/2014
Dimmer-Arduino | Arduino
Arduino
en20 de junio 2013 a las 20:33 dijo:
Gracias por la sugerencia ao. No he tenido el problema que usted describe, sin
embargo, voy a tenerlo en cuenta y tal vez voy a ser de utilidad en el futuro. Si
usted no utiliza un puente, obviamente, la frecuencia de la seal se reduce a la
mitad
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
13/57
1/8/2014
Dimmer-Arduino | Arduino
Jeff
en30 de abril 2013 a las 2:01 am dijo:
una parte del cdigo no fue fijado derecha. un trozo faltaba en el medio. Aqu est el
cdigo de nuevo:
Char inByte ;/ / personaje de recepcin serie
int voltiles variar = 19980; / / 200 = 100 nosotros con una preescala 8, 100 * 200 = 10 ms
de interrupcin = off ... pero int respuesta = 10us as 19980
int AC_LOAD = 3; / / Salida Opto Triac pin
int atenuacin = 10; / / Nivel de atenuacin (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 interrupcin para el cruce por cero
Serial.begin (115.200);
}
/ / la funcin de interrupcin debe tener parmetros y devolver nada
vaco zero_crosss_int ()
para ser disparado en el cruce por cero para atenuar la luz / / Funcin
{
/ / 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 = varan;
/ / activar el modo de CTC:
TCCR1B | = (1 << WGM12);
/ / bit Set CS11 para 8 prescaler:
TCCR1B | = ( ; 1 << CS11)
: / / temporizador comparar habilitacin de interrupcin
| = (1 <0) {TIMSK1
: / / obtener byte entrante
; inByte = Serial.read ()
interruptor (inByte) {
case 'h':
atenuacin = oscurecimiento + 5;
if (atenuacin> 95) {
desvaneciendo = 95;
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
14/57
1/8/2014
Dimmer-Arduino | Arduino
}
Serial.print ("nivel es");
Serial.println (oscurecimiento);
break;
case 'l':
atenuacin = atenuacin-5;
if (oscurecimiento <10) {
atenuacin = 10;
}
Serial.print ("nivel es");
Serial.println (oscurecimiento);
romper;
caso 'p':
Serial.print ("Vary es");
Serial.println (vara);
romper;
caso '3 ':
regulacin = 30;
romper;
caso '6 ':
regulacin de luz = 60;
}
}
variar = 200 * (100-oscurecimiento) -20;
}
Jeff
en30 de abril 2013 a las 2:11 am dijo:
segundo intento de pegar cdigo tambin parece haber fracasado. este bit no est
presente:
"
}
ISR (TIMER1_COMPA_vect)
{
digitalWrite (AC_LOAD, HIGH); De disparo / / triac
delayMicroseconds (10); / / Triac El retardo de propagacin
digitalWrite (AC_LOAD, LOW); / / Triac Off
TCCR1A = 0; / / Establecer toda registro TCCR1A a 0
TCCR1B = 0; / / Igual para TCCR1B
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
15/57
1/8/2014
Dimmer-Arduino | Arduino
}
void loop () {
if (Serial.available ()> 0)
"
insertar arriba exacto despus TIMSK1 texto | = (1 <0)
Jeff
en30 de abril 2013 a las 2:37 am dijo:
Arduino
en20 de junio 2013 a las 8:30 pm dijo:
Arduino
en20 de junio 2013 a las 20:37 dijo:
Estoy en el mvil ahora lo que no puede ponerse en contacto con u por correo
electrnico, pero seguramente lo har
Arduino
en20 de junio 2013 a las 22:36 dijo:
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
16/57
1/8/2014
Dimmer-Arduino | Arduino
Nikoas
en06 de mayo 2013 a las 22:29 dijo:
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
17/57
1/8/2014
Dimmer-Arduino | Arduino
Arduino
en20 de junio 2013 a las 20:28 dijo:
No puedo ver de inmediato un problema con el cdigo. Tal vez alguien ms lo har
Arduino
en07 de septiembre 2013 a las 22:38 dijo:
Chethan
en19 de julio 2013 a las 9:25 am dijo:
Arduino
en19 de julio 2013 a las 10:07 am dijo:
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
18/57
1/8/2014
Dimmer-Arduino | Arduino
Chethan
en19 de julio 2013 a las 19:44 dijo:
Arduino
en19 de julio 2013 a las 23:13 dijo:
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:
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
19/57
1/8/2014
Dimmer-Arduino | Arduino
Hola, he construido este circuite mi cuenta, y ahora quiero programar mi controlador atmel
8051 para recibir la seal de accionamiento paso a cero, la seal de atenuacin en.
Lo que entend desde el programa anterior es, Conecte estos puntos a los pines de
microcontrolador, y utilizar el programa anterior. Zero Crossing seal o / p trabajo como de
interrupcin en el controlador y en base a esto se acciona la seal del atenuador hacia
fuera puesto ..
Puedo utilizar encima programa directamente con slo 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
interrupcin del microcontrolador annd continuacin 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 ao 8051 un uso dyou este programa, obtendr bastante lejos, mediante la
adaptacin de los pasadores y haciendo que la lengua un poco ms pura C.
Si consigues que funcione, yo estara muy interesado para que usted pueda
compartirlo
Gracias por yr comentario
Arduino
en29 de septiembre 2013 a las 22:18 dijo:
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
20/57
1/8/2014
Dimmer-Arduino | Arduino
indra
en30 de septiembre 2013 a las 6:18 am dijo:
21/57
1/8/2014
Dimmer-Arduino | Arduino
Arduino
en30 de septiembre 2013 a las 6:19 am dijo:
Thanx
Indra
en08 de octubre 2013 a las 7:10 pm dijo:
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
22/57
1/8/2014
Dimmer-Arduino | Arduino
Arduino
en08 de octubre 2013 a las 22:17 dijo:
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
23/57
1/8/2014
Dimmer-Arduino | Arduino
indra
en09 de octubre 2013 a las 5:51 am dijo:
Hola, Ya que yo no he puesto ningn pie ic,, voy a tratar de reemplazar el IC y comprobar
...
Tengo una pequea pregunta:
Tengo que apoyar a cuatro niveles de regulacin para mi carga (bombilla).
se cambia el retardo entre ON y OFF triac funciona bien?
Al igual que a continuacin.
/ / Nivel: 0
P0 = 0 01; De disparo / / triac
delayMicroseconds (8); / / Triac El retardo de propagacin de Nivel: 0
P0 = 0X00 ;/ / triac Off
/ / Nivel: 1
P0 = 0 01; De disparo / / triac
delayMicroseconds (10); / / Triac El retardo de propagacin de Nivel: 1
P0 = 0X00 ;/ / triac Off
/ / Nivel: 3
P0 = 0 01; De disparo / / triac
delayMicroseconds (12); / / Triac El retardo de propagacin de Nivel: 2
P0 = 0X00 ;/ / triac Off
Arduino
en10 de octubre 2013 a las 1:42 am dijo:
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
24/57
1/8/2014
Dimmer-Arduino | Arduino
indra
en10 de octubre 2013 a las 11:23 am dijo:
Arduino
en11 de octubre 2013 a las 9:24 am dijo:
Hola Indra, bueno que identificaron el problema. Sin embargo, asegrese de que no
interrumpa cualquier cortocircuito accidental entre las pistas de la optoaislador.
Con el retardo de la zeorcrossing quiero decir que el lightlevel de la lmpara 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 lmpara de yr a media potencia, es necesario encender el
TRIAC mitad de ese ciclo, que es de 5 ms despus de la zerocrossing.
Si quieres lmpara ao en el 25% hay que esperar para 7,5 ms despus de la
zerocrossing antes de que se activa el TRIAC y si quieres lmpara ao a la fuerza el 75%
que necesita para activar el TRIAC despus de 2,5 ms.
(tcnicamente para el 25% y el 75% se trata de una aproximacin como el rea bajo la
curva no es liniair, pero est lo suficientemente cerca para la ilustracin de los proces).
Hay que aadir que la demora en su programa antes de disparar el TRIAC. Dnde est
exactamente depende de ti, pero lo que he hecho en mi cdigo de Arduino es que en mi
rutina de interrupcin, multiplico un stepvariable con un steptime. Posteriormente me puse
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
25/57
1/8/2014
Dimmer-Arduino | Arduino
Indra
en12 de octubre 2013 a las 10:14 am dijo:
Hola,
Gracias por la informacin detallada. Trat como usted ha dicho anteriormente.
en lugar de la regulacin a nivel constante .. Mi carga (bombilla) parpadea al ritmo que he
aadido como DimTime ...
este es mi cdigo de demora.
delayMicroseconds void (unsigned int i)
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
26/57
1/8/2014
Dimmer-Arduino | Arduino
{
for (j = 0; j <= i; j + +)
{
for (k = 0; k <256; k + +);
}
}
Isr () {
delayMicroseconds (2000);
P0 = 0 01;
delayMicroseconds (10); / / Propogationdelay
P0 = 0 00;
}
Por favor ayuda si he cometido algn error en el retardo adecuado establecer ..
Arduino
en12 de octubre 2013 a las 11:58 am dijo:
Arduino
en12 de octubre 2013 a las 19:09 dijo:
Como estoy en el mvil slo puedo dar una respuesta corta pero, francamente, no
entiendo su cdigo. Si 'i' es tenue yr tiempo, entonces cul es la funcin de la de
2000, y cul es la funcin de la 'k'?
Yo no estoy seguro de cmo retraso ao es llamado por lo que la funcin de ao
parece hacer es simplemente repita el retraso 2000microsecond un nmero de
veces. Si se trata del paso por cero que llama a esto, entonces tal vez la primera
vez que nosotros bien, pero despus de eso no hay una relacin adecuada con el
cruce por cero ms y usted incluso pasar a la siguiente fase del ciclo. A m me
parece que J y K no tienen ninguna funcin en absoluto, sino que es necesario por
ejemplo, i * 2000 en el que i es entre 0 y 4.
Basta con mirar el ejemplo que di en mi respuesta de 11 de octubre 2013 @
09:24:11 Eso muestra la estructura que tiene que seguir. Su cdigo-lamento
decirlo-es completamente errneo, har TRIAC ao se descomponga
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
27/57
1/8/2014
Dimmer-Arduino | Arduino
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 haba sugerido reemplac con 220ohm
440ohm y 1kohm, pero an as me sale el parpadeo durante el funcionamiento normal ..
pls sugieren cmo 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 continuacin es mi cdigo completo
/ * Dimmer.C - Keil Evaluation Board MCBx51 con 80C51 dispositivo * /
# Include
# include
int regulacin = 0;
unsigned int j, k;
anular delayMicro (unsigned int nosotros)
{
for (; nosotros> 0; nosotros-)
{
_nop_ (); / / Si el cristal es cristal de 11 MHz a continuacin retraso es de ~ 1
microsegundo
}
}
void delay (unsigned int i)
{
for (j = 0; j <= i; j + +)
{
for (j = 0; j <= 256; j + +)
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
28/57
1/8/2014
Dimmer-Arduino | Arduino
{
for (j = 0; j <= 256; j + +)
{
}
}
}
}
void Drive_Trac (void )
{
delayMicro (oscurecimiento);
/ / delayMicro (550);
P0 = 0xFF; / / Triac disparar
delayMicro (10);
/ / (para uso 60Hz 8.33)
P0 = 0x00 ;/ / triac Off
}
void ex0_isr (void) interrumpa 0
{
/ / P1 = ~ P1;
Drive_Trac (); / / Incrementa el conteo
}
/ ******************************************* ****************?
void main (void)
{
/ / P1 = 0x00; Coccin / / triac
P0 = 0x00;
/ * ---------------Zero Crossing interrupcin
---------------- * /
IT0 = 1; / / Configurar Zero Configurar interrumpa 0 para el borde que cae sobre / INT0
(P3.2)
EX0 = 1; / / Habilitar la interrupcin EX0
EA = 1; / / Habilitar Global Interrupt Flag
/ * ---------------para Triac unidad P1.0
---------------- * /
/ * ---------------Esperar
siempre. ---------------- * /
while (1)
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
29/57
1/8/2014
Dimmer-Arduino | Arduino
{
atenuacin = 380; / / Nivel 1
delay (9999);
atenuacin = 450; / / Nivel 2
delay (9999);
atenuacin = 500; / / Nivel 3
delay (9999);
atenuacin = 550; / / Nivel 4
delay (9999);
}
}
Arduino
en14 de octubre 2013 a las 23:24 dijo:
Hola Indra, gracias por su cdigo. Pero para ser sincero, es difcil de decir. Sigo dando un
ejemplo de que en la medida de lo que puedo ver es slo simple y debera trabajar
su Drive_Trac rutina parece totalmente innecesario, ya que se puede establecer que en su
routne interrupcin. Ahora slo tienes aos de interrupcin llamada de rutina otra rutina.
Su funcin 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 pin
ao est, lo dej como tal, pero creo que podra 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 <valor, x + +)
para (y = 0; y <1,275; y + +);
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
30/57
1/8/2014
Dimmer-Arduino | Arduino
}
/ * ================================================ === * /
void main (void)
{
/ * ---------------Configurar INT0 (interrupcin externa 0) para generar
una interrupcin en el flanco de bajada de / INT0 (P3.2).
Habilitar la interrupcin EX0 y luego habilitar el
indicador de interrupcin
mundial. ---------------- * /
IT0 = 1; / / Configurar interrumpa 0 para el borde que cae sobre / INT0 (P3.2)
EX0 = 1; / / Habilitar la interrupcin 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 <128; i + +) {
atenuacin = i;
msdelay (10);
}
}
/ * ================================================ === * /
En los programas en C que usted no puede estar seguro de retraso, porque depende de
compilador cmo optimizar los bucles, tan pronto como se realizan cambios en las
opciones de los cambios de retardo.
usted tendr que utilizar temporizadores para hacer retrasos exactas ..... que no temas si
necesidad de u retrasos de ms, nosotros o incluso segundos ...
a continuacin es una funcin de 1 segundo utilizando temporizadores .....
/ / La idea es hacer un retardo de 50 ms y ejecutarlo 20 veces ms 20x50ms = 1000 ms =
1 seg
delay_1s () / / temporizador de 1 seg
{
int d;
for (d = 0, d <= 20, d + +)
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
31/57
1/8/2014
Dimmer-Arduino | Arduino
{
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 tambin.
Pero todava 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 algn 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 algn problema en mi circuito? Trat
de cambiar todos los valores de la resistencia, pero todava 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 ao, podra ser picos en PSU
ao. Si comparte cdigo yr conmigo voy a comprobar.
Trate de ejecutar el cdigo que te di y ver cmo se comporta
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
32/57
1/8/2014
Dimmer-Arduino | Arduino
Maha
en08 de noviembre 2013 a las 20:18 dijo:
hola,
He conectado el circuito de dimmer, pero yo sola MOC3020. lo hace adecuado o tengo
que usar 3021?
Arduino
en14 de noviembre 2013 a las 7:14 am dijo:
Mal
en22 de noviembre 2013 a las 20:32 dijo:
Saludos y gracias por compartir. No me queda claro cmo se limita la corriente que va
hacia la puerta del Triac. Es una resistencia de 1K (CA a que MOC3021), lo que permitira
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 ms 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 ms altos de la resistencia, y creo que
tambin 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 clculo ao 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 nmeros son diferentes.
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
33/57
1/8/2014
Dimmer-Arduino | Arduino
Ms que para iniciar el clculo de que he elegido un diseo existente que conozco
funcion bien. Estoy seguro de que a pesar de una mayor resistencia tambin funcionara.
Puedo intentar una vez lo que podra ser la resistencia mx. Si usted descubre que wld
encantara or.
De Tony
en25 de noviembre 2013 a las 22:44 dijo:
Arduino
en26 de noviembre 2013 a las 7:35 am dijo:
Mal
en25 de noviembre 2013 a las 23:18 dijo:
Gracias por su respuesta. Despus 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
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
34/57
1/8/2014
Dimmer-Arduino | Arduino
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 ledo los mismos artculos en que hice y que me
hizo decidirme a usar slo un tratado y repos en el diseo
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
35/57
1/8/2014
Dimmer-Arduino | Arduino
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 cdigo de seguridad.
Ahora que he estado intentando algunas cosas a m mismo en el cdigo, pero me siguen
dando la "bsqueda de nombre de '" mensaje de error cuando i verifico ella.
Yo slo ajust el bucle del cdigo original de este modo:
void loop () {
int x = 1;
for (int i = 5; i> -1, i = i + x) {
if (i == 128) x = -1;
}
{
atenuacin = i; / / Lnea de mensaje de error de
delay (10);
}
}
Mir el cdigo 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 regulacin 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 mltiples declaraciones de i. Donde u hacer esto
no es inmediatamente claro para m, pero su cdigo es un poco extrao. . Dado
que no es inmediatamente claro para m lo que est tratando de achive es difcil
decir lo que hay que cambiar
El problema sin embargo es en el ';' despus de que su 'x = -1' en su sentencia if
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
36/57
1/8/2014
Dimmer-Arduino | Arduino
No debe haber un punto y coma despus de una sentencia if. Debe haber un
punto y coma despus de la accin que se define por corchetes alrededor
Si x = -1 es la accin tras su condicin, 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 consideracin.
No estoy seguro de lo que est tratando de lograr, pero eliminando el punto y
coma hace ao error desaparece, pero luego por supuesto pide un punto y coma.
retirar 'x = -1;' en total hace que el error de cdigo de funcionamiento libre.
As, ergo usted ha estructurado su caso, condicin equivocada. Un caso de
condiciones debera tener este aspecto:
Si (condicin) {action;}
Mientras que usted tiene:
Si algo (condicin);
accin 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 ti por compartir. Esta fue mi primera vez la publicacin y era
muy servicial. Diseos felices.
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
37/57
1/8/2014
Dimmer-Arduino | Arduino
bigWcharly
en04 de diciembre 2013 a las 9:33 am dijo:
Muchas gracias por compartir esto! Tambin los comentarios y el apoyo que dan son
realmente tiles!
@ Mali, tambin gracias a usted por su detallada explicacin sobre el valor de la
resistencia entre el moc y triac
ya que entonces el voltaje al otro lado del triac es menor y menos energa se disipa?
Existe la posibilidad de que las corrientes transitorias se romper la R de menor valor?
He visto circuitos similares donde tambin aaden una resistencia entre la puerta y la T1
del triac. Le suena familiar a cualquiera? Por qu esto se necesitara? He estado
rompiendo la cabeza de l, pero la nica razn que se me ocurre es que slo es
necesario si la corriente de puerta max es menor que la corriente del terminal mx del
moc? As que por lo general no necesita entonces ... Alguien puede confirmar?
Ahora, que he construido el circuito con R 330 y tambin una resistencia similar entre G y
T1. He notado que cuando conecto el circuito a la red elctrica, la lmpara parpadea y
hasta mi arduino recoge falsas alarmas (yo uso una interrupcin adicional para controlar la
luz con un interruptor). Alguien se dio cuenta de esto tambin? Cmo 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, bsicamente, eleg un valor que es
seguro para el MOC y la puerta.
Conozco el circuito te refieres, yo siempre supuse que era conseguir una
definicin ms estricta de la tensin en la puerta coz que tiene un divisor de
tensin, pero no estoy seguro . Youe explicacin podra ser verdad, as
lo que se refiere a la oscilacin, esto slo sucede cuando se agrega que la
resistencia extra?
El parpadeo de la lmpara puede ser causado por el arduino recogiendo falsas
alarmas, pero por qu se recoge stos (es decir, cul es la razn) que no s.
Tal vez alguien ms kmnows
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
38/57
1/8/2014
Dimmer-Arduino | Arduino
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 atenuacin = 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 propagacin / / (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 (atenuacin> 120) oscurecimiento;
if (oscurecimiento <5) oscurecimiento + +;
}
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
39/57
1/8/2014
Dimmer-Arduino | Arduino
Arduino
en07 de enero 2014 a las 5:07 am dijo:
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 pareca evidente desde el circuito, pero
tal vez yo no estaba claro:
10k resistor, 1 k, 220R, 30k, 30k
4N25
MOC3021
Puente rectificador
TRIAC como TIC206
LED rojo
Usted podra saltar el LED y hacer la resistencia de 220R una 470 R
Tom
en20 de marzo 2014 a las 1:28 am dijo:
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
40/57
1/8/2014
Dimmer-Arduino | Arduino
Hola,
Gran mensaje. No puedo hacer que funcione, aunque. Creo que mi problema es con la
deteccin 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 ms arriba, me supuesto utilizo 4N25 junto con dos resistencias de 30k
(230V 60 Hz).
Trat de controlar el puerto serie (debe mostrar '1 'cada interrupcin), y me dieron
resultado slo al enchufar el cable de 230 V y desenchufarlo.
Lo siento por mi pregunta de novato, pero estoy realmente nuevo a la electrnica.
Gracias de antemano por su respuesta,
Tom
Arduino
en20 de marzo 2014 a las 4:22 am dijo:
El dfo8 debera estar bien, pero slo le dou comprobar la disposicin de pines para
ver si es compatible. U puede medir cualquier salida en el pin crissing cero?
Tom
en20 de marzo 2014 a las 4:29 am dijo:
Arduino
en20 de marzo 2014 a las 4:46 am dijo:
41/57
1/8/2014
Dimmer-Arduino | Arduino
Tom
en20 de marzo 2014 a las 5:00 am dijo:
Arduino
en20 de marzo 2014 a las 5:02 am dijo:
Voy a tener que comprobar. Enviar u email cuando estoy detrs de mi escritorio
Tom
en20 de marzo 2014 a las 24:18 dijo:
Arduino
en20 de marzo 2014 a las 24:38 dijo:
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
42/57
1/8/2014
Dimmer-Arduino | Arduino
Tom
en20 de marzo 2014 a las 24:58 dijo:
DF02 es tambin nica por etapas que he podido ver en la ficha tcnica. Yo acabo de
enviar un correo electrnico
Arduino
en20 de marzo 2014 a las 13:03 dijo:
Tom
en20 de marzo 2014 a las 13:08 dijo:
S, esto es 100% 4N25. Tiene LTV 4N25 escrito en l, que creo que es
LTV cdigo de productor (Lite-On)
Arduino
en20 de marzo 2014 a las 13:12 dijo:
Tom
en20 de marzo 2014 a las 13:29 dijo:
43/57
1/8/2014
Dimmer-Arduino | Arduino
Arduino
en20 de marzo 2014 a las 13:31 dijo:
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
cdigo. Estoy tratando de valores diferentes para la regulacin:
Cuando me puse int atenuacin de 25 que parece tener la potencia
mxima, cuando me puse a 23 empieza a parpadear mal. Cuando me
puse de atenuacin a 128 que tiene aproximadamente 1/2 de potencia,
149 es el valor que se ilumina slo un poco.
Parece que los valores propios son entre 25 y 149. Por qu?
Arduino
en20 de marzo 2014 a las 16:41 dijo:
44/57
1/8/2014
Dimmer-Arduino | Arduino
Assaf Laufer
en09 de abril 2014 a las 14:09 dijo:
Arduino
en10 de abril 2014 a las 9:06 am dijo:
45/57
1/8/2014
Dimmer-Arduino | Arduino
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 Ncleo. Mi
pregunta no es sobre eso, aunque (an no). Ms 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). Cmo voy a ser capaz de hacer este proyecto (que parece que necesita dos
cables de la red elctrica y dos fuera)?
Arduino
en30 de mayo 2014 a las 7:12 am dijo:
Christoph no estoy del todo seguro de lo que u estn pidiendo, pero voy a tratar de
responder. No estoy seguro de si te estn diciendo yr dimmer actual tiene dos
cables + 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 slo dos cables son lo suficientemente: uno procedente de la
red elctrica y uno que va a la carga. La carga, por supuesto, tiene otro cable que
va de nuevo a la red elctrica.
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 elctrica.
La carga como u puede ver tiene un cable que va directamente a la red, pero
simplemente se conecta a travs de la Junta de Coordinacin de este circuito.
Eso aclarar o hace necesidad de u un poco ms de explicacin. No dude en
preguntar
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
46/57
1/8/2014
Dimmer-Arduino | Arduino
Steven obstculo
en25 de mayo 2014 a las 7:07 am dijo:
Me parece que la mitad superior del circuito sera redundante si operaba PWM del triac
a> 480Hz, porque usted estara promediando 8 o ms muestras de la carga en la onda
sinusoidal - el patrn de ritmo estara por encima del nivel de discernimiento de la
persistencia de la visin humana.
Steven obstculo
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 lnea de CA ms rpido que 120 Hz (100 en el
Reino 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 Potencimetro un, prr
Realizar la Regulacin de la ampolleta. Gracias
Arduino
en22 de junio 2014 a las 5:00 pm dijo:
/*
Control de Luz AC
Puesto al da por Robert Twomey
Cambiado de deteccin de cruce por cero para buscar flanco
ascendente en lugar
de caer. (En principio, slo estaba cortando la mitad negativa
de la forma de onda de CA).
Tambin cambi la dim_check () para encender el Triac, dejndola a
hasta de fuera de la zero_cross_detect () a su vez.
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
47/57
1/8/2014
Dimmer-Arduino | Arduino
Ryan McLaughlin
El hardware consiste en un Triac para actuar como un interruptor de
A/Cy
un opto-aislador para darnos una referencia de cruce por cero.
El software utiliza dos interrupciones para controlar la atenuacin
de la luz.
La primera es una alarma de proceso para detectar el cero
transversal de
la onda sinusoidal de CA, la segunda est basada en software y
siempre corriendo
a 1/128 de la velocidad de la onda de corriente alterna. Despus de
detectar el cruce por cero
de la prueba de funcionamiento para asegurarse de que ha sido el
nivel de regulacin adecuado
alcanzado y la luz se enciende de onda media, slo proporcionar
corriente parcial y atenuacin nuestra carga de CA, por lo tanto.
Gracias a http://www.andrewkilpatrick.org/blog/?page_id=445
y http://www.hoelscher-hi.de/hendrik/english/dimmer.htm
*/
# Include / / Disponible desde
http://www.arduino.cc/playground/Code/Timer1
volatile int i = 0; / / Variable para utilizar como un contador de
zero_cross booleano voltil = 0; / / Boolean para almacenar un
"interruptor" que nos diga si hemos cruzado cero
int AC_pin = 11; / / Salida Opto Triac
int POT_pin = A0; / / Pot para probar la atenuacin
LED int = 3; / / LED para la prueba
int dim = 0; / / Nivel de atenuacin (0-128) 0 = en, 128 = 0ff
int freqStep = 65; / / Este es el paso de retraso-por-el brillo en
microsegundos.
Se calcula / / basada en la frecuencia de la tensin de alimentacin
(50Hz o 60Hz)
/ / y el nmero de pasos de brillo que desee.
//
/ / El nico complicado parte es que el circuito de chopper chuletas
de la onda de CA dos veces por
/ / ciclo, una vez en el medio positivo y una vez en el medio
negativo. Este meeans
/ / el picado sucede en 120 Hz para un suministro de 60 Hz o 100 Hz
para un suministro de 50Hz.
/ / Para calcular freqStep se divide la longitud de una onda medio
lleno del poder
/ / ciclo (en microsegundos) por el nmero de pasos de brillo.
//
/ / (1,000,000 uS / 120 Hz) / 128 pasos de brillo = 65 uS / brillo
paso
//
/ / 1000000 us / 120 Hz = 8333 uS, longitud de una onda media.
void setup () {/ / Comienza configuracin
pinMode (AC_pin, OUTPUT); / / Establecer el pin como salida Triac
pinMode (LED, OUTPUT); / / Establecer el pin LED como salida
attachInterrupt (0, zero_cross_detect, RISING); / / Conecte un
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
48/57
1/8/2014
Dimmer-Arduino | Arduino
Daniel
en23 de junio 2014 en 12:57a.m. dijo:
Pratik. R. Bhagat
en30 de junio 2014 a las 9:36 am dijo:
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
49/57
1/8/2014
Dimmer-Arduino | Arduino
Arduino
en30 de junio 2014 a las 16:17 dijo:
Pratik. Es difcil decir si es que hay algo mal. Pero djame ver primero si entiendo
correcto de u: se qued realmente significa 0.800mA? O 0,800? A = 800 mA
800 mA es todava un anuncio actual de tamao considerable, incluso si no sera
decir 20 voltios sobre el triac que todava es el equivalente de un soldador
pequeo. As que tal vez todo est bien. Es difcil decir qu tan caliente "caliente"
es. La temperatura tambin depende del nivel de atenuacin de la lmpara. U
puede querer intentar ver si hay una diferencia entre la mxima 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 pequeo 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 ms y que puede
daar el triac. Para evitar el dao que utilic max triac amp BTA16-600b. Pens que el
actual 0.800A sera nada a este triac.
Examin que si yo uso MOC3041 zc-conductor del triac permanece warm45-50c. Hay
algn problema en el disparo de triac (en el cdigo anterior)..
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
50/57
1/8/2014
Dimmer-Arduino | Arduino
Qu pasa si he aadido carga inductiva como ventilador de techo i temo que mi triac
conseguir tostado
Arduino
en02 de julio 2014 a las 1:49 am dijo:
De hecho 800mA hay nada para este triac. Sin embargo, si u no enfran lo que
todava 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 estn en full.power? El tiempo puede ser un problema. De
qu tamao son las resistencias u han utilizado para cortar la tensin 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 simultneamente probado CKT triac MOC3041 y con triac con
MOC3021. El triac MOC3041 era poco ms fresco que 3021. Carga fue de
2 ventiladores de mesa. Disparando momento de triac est haciendo ms
clido. Pero an as, funciona bien. He notado un comportamiento starnge
en circ triac MOC3021 es que a valores de atenuacin 115-117 bombilla se
queda en penumbra y de alta de forma continua como un latido del
corazn. 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 difcil para disparar con precisin el triac. Se puede apoyar
con el cdigo.
Tambin podemos detectar la deteccin zerocrossing slo 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:
51/57
1/8/2014
Dimmer-Arduino | Arduino
Arduino
en03 de julio 2014 a las 24:33 dijo:
52/57
1/8/2014
Dimmer-Arduino | Arduino
Greg
en18 de julio 2014 a las 16:40 dijo:
Hola a todos .. empec aqu como estoy teniendo problemas con un proyecto de la
estacin de soldadura - Mega Arduino, con termopares sobre el MAX6675, un PID y
PIDautotune bibliotecas y los TRIAC. S que debera 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 integracin de
todos ^ esas cosas ... pero el fuego del TRIAC slo en algunos ciclos de la red elctrica .
OC bipolar EL817 y el puente rectificado ac seconday transformador como interrupcin
para zerocrossing - esto comienza un contador (el perodo de las cuales es la del ltimo
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
53/57
1/8/2014
Dimmer-Arduino | Arduino
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 estn 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 aplicacin.
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 todava (en su caso) - tengo que encontrar las espigas faltantes
el esquema no es ideal, ya que he sido torturado (slo un poco litte, es bueno para ser
gratuito) por fritzing - por ejemplo. los puentes rectificadores BR1 y BR3 son slo
"conectores" en el esquema, pero el + se etiqueta (BR2 fue en una versin anterior de una
bomba de aire del motor de corriente continua, ha ido). Y los nmeros de pieza falta o
est mal. por ejemplo MOC3023 y TRIAC BT137. Y R31, al otro lado del LED en los
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
54/57
1/8/2014
Dimmer-Arduino | Arduino
EL817is optoacoplador zerocrossing sin dispositivo - pero una gorra 1nF est montado
como un solo LPF escenario (con el gotero R) para el seno 50Hz - haba un 'joggle'
perfecto en cada zerocrossing donde el sine hara azotar alrededor y causar dos disparos
zerocross. - As que R31 es un condensador de 1 nF - fritzing nuevo partes limitaciones.
Que se ha aadido como un equipamiento adicional y no es la causa de los doodahs
faltan.
Despus de todo este mensaje, mi pregunta es en realidad slo - ser la ausencia de
(quizs 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 ms inters que me hago con mucho gusto ms a publicar esto como un proyecto
... http://www.eightyeight.co.uk/solderstation/solderstation.JPG
Pero no sera 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. Slo
requiere que el archivo de configuracin de Arduino es modificado, el archivo de
configuracin de la biblioteca GLCD se comenta en el boceto, hay que nombrar a los
pines DI / O (pines alternativas para que pueda obtener slo una de las filas), pero todo es
bueno desde all .... Esto puede afectar a la velocidad del bucle, aunque tambin, como
algunos de los pins estarn en diferentes puertos que significan las lneas adicionales
compilados que conozco.
Greg
Arduino
en22 de julio 2014 en 12:38a.m. dijo:
55/57
1/8/2014
Dimmer-Arduino | Arduino
Yo dira que comienzan con el uso de un rectificador de doble fase y ver lo que
hace y en la media hora intente optimizar cdigo yr.
Greg
en24 de julio 2014 a las 9:23 am dijo:
muchas gracias por sus pensamientos, creo que me voy a tener que
sacarlo de mi cabeza ronda la manipulacin 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 simbologa) en Fritzing te ha
engaado. 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 slo el
zc y triac disparo del cdigo 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 prxima zc y se inicia en la variable de acuerdo a la entrada
analgica conjunto olla. Yo slo lo he hecho en un pin de salida - no los
tres a la vez. Yo podra hacer los tres. Adems, me podra enviar micros ()
al monitor de serie para ver cuntos somos nosotros que consiguen a
travs de - problemas con eso: la produccin en serie es muy, muy lento
(incluso a 115200 bps) en comparacin por lo que influye en gran medida
el tiempo de bucle.
Yo slo estoy usando interrupciones para marcar el inicio del ciclo medio
y comenzar simultneamente contando centsimas '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), seran tres ms interrupciones de
desbordamiento del temporizador.
voy a recodificar un montn, creo.
y voy a tratar sPlan7, no conoc antes y lo necesito!
Gracias de nuevo. Voy a publicar de nuevo aqu cuando hay ms.
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
56/57
1/8/2014
Dimmer-Arduino | Arduino
http://arduinodiy.wordpress.com/2012/10/19/dimmer-arduino/
57/57