En línea

Tenemos 27 invitados conectado

Redes Sociales

feedfacebookyoutube

picasa

You are here: Home Tutoriales Arduino Arduino avanzado T01AA - Termómetro Visual
Arduino avanzado T01AA - Termómetro Visual PDF Imprimir E-mail
Martes, 20 de Diciembre de 2011 15:07
Termometro_Visual_bb

Este tutorial tiene la finalidad de visualizar la señal de un sensor de temperatura y visualizarla por medio de un LED,Específicamente utilizamos un LM35 para medir la temperatura yun LED RGB para visualizarla señal, el efecto visual que tenemos en el LED son tonos rojos si hay calor y tonosazules si hace frío!!!.

El LED RGB esta compuesto por tres colores primarios y con la mezcla de dichos colores logramos sacar los demás este es un modelo de color basado en la análisis aditivo, con el que es posible representar un color mediante la mezcla por adición de tres colores primarios RGB (Red, Green, Blue).

 

 

 


Adquiere los componentes para este proyecto en:


Tabla_Termometro_LED_RGB

 

 

rgb-color-wheel-lg

rgb-color-wheel-lg

La tabla RGB contiene valores de 0 a 255 por cada tono (Rojo, Verde, Azul).


Table_RGB

 

Esta tabla tiene valores muy convenientes, recordemos que el valor máximo de PWM es de 255 igual que el tono máximo del color, esta compatibilidad se da ya que los dos datos tiene una resolución de 8 bits.

 

Sensor LM35 (Sensor de temperatura)

El sensor LM35 es un sensor análogo de temperatura, esta calibrado por defecto en grados centígrados con un rango de -55 Cº a 150 Cº sin embargo dependiendo de la conexión los valores pueden variar incluso podemos cambiar la escala y medir grados Kelvin, El lm35 tiene una variación en la salida de 10mV por grado centígrado; La configuración que tenemos nos da toda la escala de -55ºC a 150ºC.

Las señales análogas del arduino es representan en números enteros de 10 bits por lo tanto se representa en valores desde 0 a 1023, es decir que cuando el valor está en 5v la señal análoga esta en 1023; para poder convertir esa señal nuevamente en Voltios (recordemos que lo necesitamos para la fórmula del lm35) debemos multiplicarla por 5 y dividirla en 1024  lo que quiere decir es que debemos relacionarla con 5v como valor máximo de la entrada y dividirla en 1024 que es el entero mas grande en un rango de 10 bits, de esta forma nuevamente tenemos los Voltios que entran al Arduino del LM35.

 

Conversión de Voltaje a Centigrados

La formula del LM35 para centígrados es que por cada 10mV la señal varia en 1 grado centígrado seria lo mismo decir que cuando hay 15ºC la salida del LM35 seria de 150mV  ahora debemos amplificar la señal para convertir los Voltios en grados Centígrados nos quedaría así mV*100=ºC en nuestro ejemplo los 150mV se convertirían en 15ºC.

Para asignar el rango de la temperatura ambiente debemos escalar de 10 ºC a 40ºC

por de esta razón escalamos el valor mínimo a 10ºC y al Máximo a 40ºC estos valores los podemos cambiar dependiendo de la temperatura que queramos visualizar

 

Termometro Visual
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 /*
 -------------------------------------- 
  Termometro Visual
 --------------------------------------
 
  Este tutorial consiste en visualizar la temperatura ambiente 
  con un LED Multicolor. especificamente vamos leer la temperatura 
  ambiente conul LM35 y la vamos a visualizarla con un LED RGB.
 
 Cosas de Mecatrónica y Tienda de Robótica
 
*/
 
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
//--------------------------------------------------
 
int colorAzul;            // Variables de manipulacion
int colorRojo;            // Variables de manipulacion
int colorVerde;           // Variables de manipulacion
int Verde = 9;            // Asigno el pin al tono verde 
int Azul = 10;            // Asigno el pin al tono Azul
int Rojo = 11;            // Asigno el pin al tono Rojo
int termometro;           // Variable sensor de temperaura
 
//------------------------------------
//Funcion principal
//------------------------------------
 
void setup() {
  Serial.begin(9600);
  pinMode(Verde, OUTPUT);     
  pinMode(Azul, OUTPUT);
  pinMode(Rojo, OUTPUT);
}
 
//------------------------------------
//Funcion ciclicla
//------------------------------------
 
void loop() {                                  //Esta funcion se mantiene
                                               //ejecutando infinitamente 
  termometro = analogRead (0);                 //Leemos el valor del LM35
  termometro = (5.0 * termometro * 100)/1023.0;//convertimos el valor
                                               //analogo a centigrados
  Serial.print (termometro);                   //Visualizamos el valor 
  Serial.println ("-C");                       //de la temperatura
  termometro = map (termometro, 10,40, 0, 255);//Escalamos la temperatura
  colorVerde = termometro *-1 + 255;           //Invertimos el valor temp
  colorAzul = termometro * -1 + 255;           //Invertimos el valor temp
  colorRojo = termometro;                      //Igualamos la salida temp
 
  analogWrite(Verde,  colorVerde);             //Visualizamos el tono verde
  analogWrite(Azul,   colorAzul);              //Visualizamos el tono Azul
  analogWrite(Rojo,   colorRojo);              //Visualizamos el tono Rojo
 
  Serial.print ("G-->");  
  Serial.println (colorVerde);                 //Valor de tono Verde
  Serial.print ("B-->");
  Serial.println (colorAzul);                  //Valor de tono Azul
  Serial.print ("R-->");
  Serial.println (colorRojo);                  //Valor de tono Rojo
  Serial.println ("///////");
  delay(500);                                  //Retardo entre lecturas¡
}
 
//Fin programa

 

Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!

!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved."

Última actualización el Miércoles, 28 de Diciembre de 2011 18:23
 
Joomla! Template by Red Evolution - Joomla Web Design