Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ing. Eléctrica
Materia:
Instrumentación
Trabajo:
Maestro:
Alumnos:
Fecha de entrega:
11/12/2019
Introducción.
En esta práctica realizaremos control de termopar sin enconder rotativo por medio del
programa arduino uno, Para conectar el encoder a Arduino, necesitamos tres entradas
digitales, dos para la detección del encoder y una adicional si queremos registrar la
pulsación de la palanca.Idealmente, deberíamos emplear interrupciones para registrar el
movimiento del encoder. Lamentablemente, la mayoría de placas de Arduino sólo
tienen dos pines asociados a interrupciones. En el caso de querer precisión cuádruple
esto supone emplear los dos pines con interrupciones
Marco Teórico.
Módulo Max6675 con termopar: El MAX6675 es un convertidor Analógico a digital
especializado para termopares tipo K. Con este módulo es posible conectar fácilmente
un termopar a cualquier micro controlador a través de una interfaz SPI unidireccional.
Dentro de este pequeño circuito se encuentra la electrónica necesaria para amplificar,
compensar y convertir a digital el voltaje generado por el termopar, lo que hace muy
sencilla la tarea de conectar un termopar a un micro controlador.
-Arduino UNO
-Mosfet irfz44n
-Transistor s8050
-Cartucho calentador
-Bloque de aluminio
Desarrollo:
En esta práctica se controlara por medio de un PID, la temperatura predefinida por un “setpoint”
declarado de antemano por un usuario en los parámetros característicos de un programa que
permitirá dicho control. Se presenta a continuación el diagrama de conexiones respectivo y el
código.
Codigo Respectivo:
#include <Wire.h>
#include <max6675.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
#include <SPI.h>
#define MAX6675_CS 10
#define MAX6675_SO 12
#define MAX6675_SCK 13
int PWM_pin=3;
float t_read=0.0;
float set_t=42;
float pid_error=0;
float prev_error=0;
float elapsedTime,Time,timePrev;
float pid_value=0;
float kp=865.25;
float ki=56.0;
float kd=20;
float pid_p=0;
float pid_i=0;
float pid_d=0;
void setup() {
Serial.begin(9600);
pinMode (PWM_pin,OUTPUT);
Time=millis();
lcd.init();
lcd.backlight();
void loop() {
t_read=readThermocouple();
pid_p= kp*pid_error;
timePrev= Time;
Time=millis();
elapsedTime=(Time- timePrev)/1000;
if(pid_value<0)
pid_value=0;
if(pid_value>255)
pid_value=255;
analogWrite(PWM_pin,255-pid_value);
prev_error=pid_error;
delay(300);
Serial.print(set_t);
Serial.print(" ");
Serial.print(t_read);
Serial.println();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("PID T. Control");
lcd.setCursor(0,1);
lcd.print("S:");
lcd.setCursor(2,1);
lcd.print(set_t,1);
lcd.setCursor(8,1);
lcd.print("R:");
lcd.setCursor(11,1);
lcd.print(t_read,1);
double readThermocouple(){
uint16_t v;
pinMode(MAX6675_CS,OUTPUT);
pinMode(MAX6675_SO,INPUT);
pinMode(MAX6675_SCK,OUTPUT);
digitalWrite(MAX6675_CS,LOW);
delay(1);
v=shiftIn(MAX6675_SO,MAX6675_SCK,MSBFIRST);
v<<=8;
v |= shiftIn(MAX6675_SO,MAX6675_SCK,MSBFIRST);
digitalWrite(MAX6675_CS,HIGH);
if (v & 0x4)
return NAN;
v >>= 3;
return v*0.25;
}
Como se puede apreciar en el código, se presentan las constantes kp,ki y kd. Las cuales son
modificadas paulatinamente para obtener una respuesta del sistema de carácter deseable, más
que nada, una estabilidad con márgenes de histéresis muy bajos, siendo las mediciones
otorgadas lo mas exactas posibles.
Estas herramientas, encontradas en línea, se trata de simuladores que puede en base al método
descrito anteriormente, generar una respuesta similar a la deseada en base a unos criterios que la
herramienta solicita de antemano para poder dar una respuesta efectiva.
Figura 2: Herramienta usada para la determinación de las 3 constantes (se anexa junto con la
practica en formato xls)
La herramienta, si de antemano uno conoce los parámetros de la ganancia neta (K), la constante
de tiempo (T), y el tiempo de retraso, puede simular una respuesta con un comportamiento muy
exacto dando resultados prácticos similares, dichos parámetros se pueden calcular.
K=(dX/T2)/(dY/T1)
Donde:
En base a lo descrito anteriormente, el simulador podrá otorgar resultados tales que puedan
tener semejanza con una respuesta deseada.
Posterior a la conexión del arduino y la programación del mismo se otorgan los siguientes
resultados.
Conclusiones:
Esta práctica fue una de las más complicadas de las hechas en clase, tenía que dar la gráfica
exacta al conectar el circuito al programa arduino uno, en varios casos se pasaba la gráfica del
punto medio, pero después de varios intentos se pudo dar con éxito que la gráfica diera en el
punto indicado, ya que intentamos con una temperatura al comienzo que no nos daba y después
citamos al profesor para que nos diera una nueva temperatura para que nos diera el trabajo.
El controlador pid es una herramienta que promete si se sabe manejar, resultados con exactitud
muy alta respecto a la proporción de resultados en cuestiones de estabilidad, no obstante, al no
conocer un modelo matematico que describa de forma analítica el comportamiento exacto del
sistema, se torna en un proceso tedioso encontrar las constantes aun con las herramientas
presentadas en este documento. Aun asi, los resultados que se obtienen son dignos de considerar
para un análisis extensivo para determinarse como efectivos en cuestiones de su labor
respectiva.