Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
21/02/2019
1
Tiristores:
Un tiristor es un componente electrónico que conduce la
corriente electrica en un solo sentido (como un diodo) y que
además para que conduzca en ese sentido tiene que ser
Figura 1. Control de fase Directo.
activado con una pequeña corriente eléctrica (como un
transistor). Podemos decir que es un interruptor que se activa
En la figura n°1, los voltajes en los terminales del SCR o
(abre o cierra) eléctricamente, pero a diferencia del transistor,
TRIAC, que son los complementarios a los que hay en la
que hace lo mismo, se puede utilizar con grandes corrientes
carga que son las ondas de abajo. Como se puede apreciar, al
(grandes potencias). Las corrientes que controlan son de 100A
disparar con un ángulo de 30° la señal que se aplica a la carga
(amperios) o más.[2]
es casi la total de la senoidal completa, y al disparar a los 120°
la señal aplicada a la carga es casi nula. Mediante esta
1
Proyecto Final: Control de temperatura mediante control de fase.
21/02/2019
modificación en la onda variamos la potencia aplicada al Para lograr aumentar o disminuir el voltaje suministrado al
circuito o carga.[4] bombillo es necesario variar el tiempo de disparo del triac. Por
eso se realizó un algoritmo basado en interrupciones, de tal
forma que por una salida de Arduino se generen los mismos
pulsos obtenidos por el cruce por cero, pero estos tendrán
III. PROCEDIMIENTO menor ancho de estado en alto y además se generará un
desfase para disparar el triac cierto tiempo después del pulso
que entrega el cruce por cero. Dichos pulsos de disparo son
Cruce por cero. enviados a la compuerta del BT136, pero entre ellos se incluyó
un optoacoplador con el fín de separar y proteger la parte
Debido a que la frecuencia de la red es de 60 Hz, es decir digital de la parte de alto voltaje.
16.666 ms, dicho valor tiempo al no ser valor entero
ocasionaría problemas de sincronización con el triac y el
control no se realizaría de forma óptima. Para solucionar esto, Código 1. Control pulsos de disparo del triac.
se implementó un circuito de cruce por cero para sincronizar
la señal de la red con el control de disparo del triac. Dicho Int AC_VALUE;
cruce por cero entrega pulsos cada vez que la señal de la red double fase;
pasa por un valor de cero voltios, es decir, el momento en que float delayTime;
su semiciclo pasa de positivo a negativo y viceversa. Los int sensorValue = 0;
pulsos obtenidos son enviados a una placa Arduino para int value = 0;
realizar desplazamiento en fase. int analogPin = 0;
int i=0;
float val;
int temp;
void setup()
{
Serial.begin(9600);
pinMode(AC_OUT1, OUTPUT);
attachInterrupt(0, setAC, RISING); //Interrupcion en el pin 2
}
void setAC()
{
temp=60; //temperatura deseada
fase=0.5963*pow(temp,2)-80.264*temp+2687.7; //ecuacion
temperatura Vs desfase
Serial.print(fase);
Figura 2. Circuito cruce por cero.
Serial.print("\n");
//delay(fase); //desfase de los pulsos
delay(500);
//delayMicroseconds(790);//un delay de 1300mseg es 360°
digitalWrite(AC_OUT1, HIGH);
delayMicroseconds(200); //86
digitalWrite(AC_OUT1, LOW);
}
void loop()
{
}
21/02/2019
Temperatura Ángulo
Figura 4. Pulso cruce por cero y pulsos desplazados. (°C)
44 300
47 250
Figura 5. Pulsos de disparo y
salida controlada.
Medición de temperatura.
Figura 6. Lectura de
temperatura. Figura 7. Temperatura Vs
ángulo.
Para lograr obtener un valor de
temperatura deseada fue
necesario realizar mediciones con
diferentes ángulos de disparo, con IV. ANÁLISIS DE
el objetivo de trazar una gráfica y RESULTADOS
hallar una ecuación característica.
Dicha ecuación se ingresa en el código 1 para agregar el En primer lugar, se observó el comportamiento del circuito de
retardo que se proporciona el control del triac y el control de cruce por cero que si correspondía al esperado (Figura 3).
temperatura deseada.
Para la comprobación del control de fase, realizó por medio
Tabla 1. Temperatura y ángulo de disparo. del monitor serial del arduino en el cual se observaba la
Proyecto Final: Control de temperatura mediante control de fase.
21/02/2019
temperatura actual y como empezaba a aumentar o disminuir a int num = bufferString.toInt();//Se transforma el buffer a un
la temperatura deseada (Figura 6). número entero
Serial.println(num);
Aunque se realizaron varios montajes para el control de fase if ((num<100)&&(num>0)){
de la planta, el que funcionó finalmente fue el control por bit=1;
medio de un TRIAC que permitía controlar la fase para variar }
la corriente que finalmente recibiría el bombillo (Anexos). else {
Serial.print("Ingrese temperatura mayor a 0 y menor a 100
grados C \n");//Se imprime el número que se recibe
Se realizó un código que permitiera solicitar por teclado la bit=0;
temperatura deseada. Esto se logró realizar en el código donde }
se medía la temperatura del lm35 y la idea era enviar dicho
valor mediante comunicación serial a la placa Arduino que while (bit==1){
contenía el control pulsos de disparo del triac. Sin embargo, int input = analogRead(LM35_PIN); // Obtengo el valor
no fue posible realizar la comunicación serial entre las dos sensado por el LM35
placas y se optó por ingresar la temperatura deseada float mv = (1100 / 1024.0) * input; // Convierto el valor
manualmente en el código. leido a mV (ahora el "tope" es de 1100mV)
cel = mv / 10; // Convierto los mV leidos a
Código 3. Ingreso de temperatura por teclado y medición de grados celsius
temperatura. Serial.print("Temperatura actual (C): ");// escribe en
pantalla
int LM35_PIN = 2; Serial.println(cel);
int bit; delay(100);
char salir;
unsigned long tiempo; if((millis()-tiempo)>500){
float cel; Serial.println(cel);
#include <Wire.h> tiempo=millis();
void setup() { }
Wire.begin(1);
salir = Serial.read(); //almacena la lectura del puerto serial
Serial.begin(9600); //Se inicializa puerto serie en la variable "leer" que es de tipo caracter
tiempo=millis(); if (salir == 'a'){
//Iniciamos comunicación con el puerto serie bit=0;
analogReference(INTERNAL); }
bit=0; }
Serial.print(".......................CONTROL DE Serial.print("Ingrese temperatura deseada: \n");
TEMPERATURA...................... \n"); }
Serial.print("Presione 's' para reiniciar \n"); }
Serial.print("Ingrese temperatura deseada: \n");
21/02/2019
Serial.begin(9600);
tiempo=millis(); VI. REFERENCIAS
pinMode(AC_OUT1, OUTPUT); Asi se deben realizar las referencias si son libros o artículos
attachInterrupt(0, setAC, RISING); //Interrupcion en el pin 2
} [1] Tomado de la red 22/02/2019:
void setAC() https://sites.google.com/site/electronicaanalogicaadancin/2-3-1-detect
{ ores-de-cruce-por-cero
Wire.requestFrom(1,19); [2] Tomada de la red 22/02/2019
while(Wire.available()){ https://www.areatecnologia.com/electronica/tiristor.html
char temperatura=Wire.read(); //temperatura deseada
recibida [3] Tomado de la red:22/02/2019
temp=temperatura.toInt() https://www.areatecnologia.com/electronica/triac.html
}
[4]Tomada de la red:22/02/2019
http://axdesarrollos.blogspot.com/2013/09/explicacion-control-de-fas
fase=0.5963*pow(temp,2)-80.264*temp+2687.7; //ecuacion e-directo.html
temperatura Vs desfase
fase=0;
delayTime=1000*0.00833*fase/360; VII. ANEXOS
//Serial.print(temperatura);
//Serial.print("\n"); Figura n°9 Planta mas controlador
de fase
delay(delayTime*150);
//delayMicroseconds(790);//un delay de 1300mseg es 360°
digitalWrite(AC_OUT1, HIGH);
delayMicroseconds(90); //86
digitalWrite(AC_OUT1, LOW);
}
void loop()
{
}
V. CONCLUSIONES