Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Temperatura Con Arduino

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 20

Acondicionamiento de sensores de Temperatura

ARDUINO

A) Instalación del Software de Arduino

1.- Descargar Java última edición e instalarlo

2.- En Google, entrar a la pagina web de Arduino y la opción Download


3.- Elegir Windows Installer y descargar el software

4.- Elegir “Just Download”


5.- Se instala el software descargado

arduino-1.6.8-windows.exe

B) Configuración del Software

1.- Se conecta el Arduino al PC por el puerto USB

2.- Se corre el Software de Arduino


3.- Ir a Herramientas y comprobar el reconocimiento de la placa Arduino Uno

4.- En Herramientas también seleccionar el puerto USB por el que está conectado Arduino

5.- Dejar el Software activo con la pantalla tal como se muestra:


Se puede realizar el primer programa en Arduino
void setup()
{
pinMode(13, OUTPUT);
}
void loop()
{
digitalWrite(13, HIGH); // LED on
delay(1000); // espera 1 segundo
digitalWrite(13, LOW); // LED off
delay(1000); // espera 1 segundo
}

Este programa realiza el parpadeo de un LED incorporado en el Arduino a través del Pin digital 13

C) Lectura a traves del puerto de un divisor de tensión

1.- Armado del circuito


2.- Programa de Control
void setup()
{
Serial.begin(9600); // Lenguaje WIRING
}
void loop()
{
Serial.print("puerto A0 = ");
Serial.print(analogRead(0));
Serial.println();
delay(100);
}

3.- Monitoreo

4.- Se interpreta que el Arduino lee el puerto a través de su ADC de 10 bits


Para calcular la tensión Vo que se aplica por el puerto, la ecuación sería:

5.- Programa para hallar el voltaje aplicado utilizando la ecuación anterior:


void setup()
{
Serial.begin(9600); // WIRING
}
void loop()
{
int Vleido = analogRead(0);
int Vin = 5*Vleido/1023;
Serial.print("puerto A0 = ");
Serial.print(Vleido);
Serial.print(" Voltaje in = ");
Serial.print(Vin);
Serial.println();
delay(100);
}

6.- Monitoreamos el puerto


7.- Mejora del programa con valores decimales
float Vleido,Vin;
void setup()
{
Serial.begin(9600); // WIRING
}
void loop()
{
Vleido = analogRead(0);
Vin = 5*Vleido/1023;
Serial.print("puerto A0 = ");
Serial.print(Vleido);
Serial.print(" Voltaje in = ");
Serial.print(Vin);
Serial.println();
delay(1000);
}

8.- Monitoreando el programa:

D) Determinación del valor Rx de un resistor del divisor de tensión a través del valor leído
1.- Se determina la relación entre Rx y el Valor leido
2.- Se programa

float Vleido,Rx;
void setup()
{
Serial.begin(9600); // WIRING
}
void loop()
{
Vleido = analogRead(0);
Rx= (Vleido*1000)/(1023-Vleido);
Serial.print("puerto A0 = ");
Serial.print(Vleido);
Serial.print(" Resistencia Rx = ");
Serial.print(Rx);
Serial.println();
delay(1000);
}

3.- Se monitorea

E) Acondicionamiento de una RTD

1.- Se determina la relación entre la temperatura y el Valor leido, para esto recordamos que

el sensor RTD está normalizado de acuerdo a la tabla siguiente:


Para hallar la relación de la Resistencia con la temperatura utilizamos la ecuación básica del RTD

Ahora podemos deducir Vo

…Y cuanto vale alfa?

Son 15 valores de varios estándar y diversas procedencias…


Utilizaremos: alfa = 0,00385 de la norma DIN-43760 y IEC-751

Reemplazamos esto en la ecuación de Vo del Arduino:


2.- Se programa

float Vleido,Rx,T;
void setup()
{
Serial.begin(9600); // WIRING
}
void loop()
{
Vleido = analogRead(0);
Rx= (Vleido*1000)/(1023-Vleido);
T=((Vleido*1100)-102300)/(393.855-0.385*Vleido);
Serial.print("puerto A0 = ");
Serial.print(Vleido);
Serial.print(" Resistencia Rx = ");
Serial.print(Rx);
Serial.print(" Temperatura T = ");
Serial.print(T);
Serial.println();
delay(1000);
}
3.- Se monitorea:
Tarea: Programar el Arduino para realizar una lectura con RTD Pt100 de acuerdo a:

Trabajamos con esta fórmula:

Nota1: Rt viene a ser el valor de la resistencia obtenido de la lectura (Rx)

Nota2: El otro valor de T se descarta pues queda fuera de rango


El programa queda asi:

float Vleido,Rx,T,T2,r,m,d,f,a,b,c;
void setup()
{
Serial.begin(9600); // WIRING
}
void loop()
{
Vleido = analogRead(0);
Rx= (Vleido*1000)/(1023-Vleido);
T=((Vleido*1100)-102300)/(393.855-0.385*Vleido); // T de acuerdo a la formula clasica
a = 0.00005775;
b = -0.398;
c= Rx-100;
f = b*b-4*a*c;
r=sqrt(f);
m= -b-r;
T2=m/(2*a);
Serial.print("puerto A0 = ");
Serial.print(Vleido);
Serial.print(" Resistencia Rx = ");
Serial.print(Rx);
Serial.print(" Temperatura T = ");
Serial.print(T);
Serial.print(" Temperatura T2 = ");
Serial.print(T2);
Serial.println();
delay(1000);
}

Nota: El programa se puede optimizar utilizando librería matemática

La ejecución resulta asi:


Sensor de CI LM35

Se conecta el sensor al Arduino al puerto análogo 0 (a0)

El sensor leerá un valor análogo entre 0 y 1023 para una entrada correspondiente entre 0 a 5 V,
por otro lado el sensor proporciona en Vout un valor de 10mV/ºC juntando estas 2 relaciones
tenemos que el valor de la temperatura en grados Celsius será:

Vo=5xVleido/1023

T=Vs/10mV

Vs = T.10mV

Vo=5xVleido/1023= Vs = T.10mV cuando el sensor se conecta a la entrada analoga

5xVleido/1023= T.10mV

10mVT=5xVleido/1023

Temp= (Valor_Leido x 5 x 100 ) / 1023


En wiring al pasarlo al Arduino IDE queda así:

Para visualizar resultados activar monitor serial en Herramientas


Conexión de un display LCD (1602g) al Arduino 1

 VSS que es el pin de negativo o masa o 0 volts o GND.


 VDD es la alimentación principal de la pantalla y el chip, lleva 5 voltios
(recomendable ponerle en serie una resistencia para evitar daños, con una de 220
ohmnios es suficiente).
 VO es el contraste de la pantalla, debe conectarse con un potenciometro de unos
10k ohms o una resistencia fija una vez que encontremos el valor deseado de contraste.
Tengan en cuenta que si no conectan esto, no verán nada.
 RS es el selector de registro (el microcontrolador le comunica a la LCD si quiere
mostrar caracteres o si lo que quiere es enviar comandos de control, como cambiar
posición del cursor o borrar la pantalla, por ejemplo).
 RW es el pin que comanda la lectura/escritura. En nuestro caso siempre estará en
0 (conectado a GND) para que escriba en todo momento.
 E es enable, habilita la pantalla para recibir información.
 D0~D3 no los vamos a utilizar. Como pueden ver la pantalla tiene un bus de datos
de 8 bits, de D0 a D7. Nosotros solamente utilizaremos 4 bits, de D4 a D7, que nos
servirán para establecer las líneas de comunicación por donde se transfieren los datos.
 A y K son los pines del led de la luz de fondo de la pantalla. A se conectará a 4 o 5
volts y K a gnd.
La comunicación entre Arduino y LCD requerirá de 6 lineas de datos discretos. Estas 6 lineas
pueden ser cualquiera de los puertos digitales del Arduino, a continuación armaremos un circuito
donde utilizamos los puertos del Arduino 5, 4, 3, 2 para los terminales de datos del LCD d4-d5-d6-
d7 respectivamente y los puertos del Arduino 12 y 11 para los bits de control del LCD RS y EN.

Palabra de control:

LiquidCrystal lcd(RS, EN, d4, d5, d6, d7);

De acuerdo a lo proyectado sería:

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Comandos utilizados para displayar información con el LCD

Al Inicio del programa:

 Comando de llamada de librería: #include <LiquidCrystal.h>


 Palabra de control: LiquidCrystal lcd(RS, EN, d4, d5, d6, d7);

En void setup()

 Comando de operación del LCD:


lcd.begin(columnas, filas); lcd.begin(16, 2);
 Comando de ubicación del cursor del LCD:
lcd.setCursor(columna, fila); lcd.setCursor(0,1);

En void loop()

 lcd.setCursor(0, 1);
 lcd.print(" ");
 lcd.clear();

 lcd.setCursor(0, 0); // esquina superior izquierda


 lcd.setCursor(15, 0); // esquina superior derecha
 lcd.setCursor(0, 1); // esquina inferior izquierda
 lcd.setCursor(15, 1); // esquina inferior derecha

También podría gustarte