Práctica 4. Lectura de señal analógicas, medición de temperatura TMP36 o LM35

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPin on PinterestPrint this page

4.1  Objetivo General:

Leer señales analógicas mediante la medición de temperatura a través de un transistor TMP36


 4.2  Materiales y Métodos:

  1. Una tarjeta Arduino Uno-R3 o Arduino Mega 2560.
  2. Un cable USB impresora.
  3. Un computador.
  4. Cables para el montaje del circuito.
  5. Tarjeta Protoboard.
  6. Sensor de temperatura TMP36.

Los sensores de temperatura son pequeños dispositivos capaces de medir la temperatura del entorno. Entre los más populares y fáciles de usar se encuentran el ML35 y el sensor TMP36. El TMP36 es un circuito integrado que actúa como un sensor de temperatura calibrado directamente en grados Celsius, que se alimenta entre 2.7V y 5.5V y que por lo tanto es ideal para usarlo con nuestra placa Arduino.

Proporciona una salida de voltaje directamente proporcional a la temperatura en grados Celsius y es muy parecido al clásico LM335A. Algunas características son:

  • Rango de temperatura: -40°C to 150°C / -40°F to 302°F
  • Factor de escala 10 mV/°C
  • Precisión de ±2°C
  • Linealidad de ±0.5°
  • Alimentación: Entre 2.7 y 5.5V.

4.3  Montaje de la práctica:

Con el fin de comprender de una manera más fácil el funcionamiento del circuito, así como verificar todas las conexiones existentes, se realiza en primer lugar el montaje del circuito mediante el uso del programa Fritzing.

El sensor de temperatura TMP36 se debe colocar correctamente para su adecuado funcionamiento, teniendo en cuenta como diferenciar las partes que lo componen. El ánodo se conecta al pin de 5V de la tarjeta Arduino, el cátodo va conectado al pin GND y el cable que envía la señal desde el sensor hasta la tarjeta se coloca en el pin A0. El objetivo de la práctica es medir la temperatura del ambiente. El sensor medirá una señal relacionada con la temperatura, y mediante su mecanismo interno generara una señal análoga que será enviada al pin A0 de la tarjeta, para su posterior manipulación. 

Figura 1. Montaje del circuito en el programa Fritzing.

 

Para identificar el pin que va a 5V se coloca el transistor con la cara plana de frente, el primer pin de izquierda a derecha es el que va a los 5V.

Luego que tengamos armado el circuito en el programa Fritzing, podemos empezar con el desarrollo del programa en el IDE de Arduino.

4.4  Código en el IDE de Arduino:

– Se debe seleccionar en la IDE de Arduino el tipo de tarjeta con el que vamos a trabajar siendo Arduino Uno-R3 o Arduino Mega 2560.

– Se selecciona el Puerto Serial, es decir el puerto USB se va a conectar la tarjeta Arduino con el computador.

– Se realiza el código:

  • Inicialmente debemos identificar el programa que estamos desarrollando, por tanto se asigna un nombre al programa, esto se hace empleando el símbolo //, que permite colocar comentarios a lo largo del código para poder facilitar la comprensión de la instrucción que realiza cada línea, podemos colocar el título de la práctica o del programa en sí.
  • Se deben declarar las variables globales que serán utilizadas en el programa. En primer lugar se declara una constante de tipo entero llamada sensorPin y se le asigna el pin A0.  Es importante acotar que una variable de tipo float es una variable que puede almacenar un valor real con 8 dígitos en la parte decimal. Quedando la declaración de las variables de la siguiente manera: const int sensorPin=A0.
  • Seguidamente se realiza la declaración de las configuraciones de las variables o la inicialización de la comunicación serie dentro de los corchetes que delimitan el bloque de programa void setup (). Para la realización de esta práctica se trabajará con la comunicación serie, es decir la comunicación de datos con el computador. Para abrir el puerto serie se utiliza el comando Begin(9600); indicando dentro de los paréntesis la velocidad de comunicación con el computador, esta generalmente es 9600 bits por segundo, aunque otras velocidades pueden ser soportadas.
  • Luego de iniciada la comunicación serie, se procede con el bloque de programación que se encuentra ubicado en el interior de los corchetes del comando void loop() el cual se ejecuta continuamente leyendo las entradas y generando las salidas. En las primeras instrucciones del bloque de programa se quiere leer la señal enviada por el sensor de temperatura al pin A0 y mostrar a través del monitor la señal captada. Para realizar estas acciones primero se necesita declarar una variable local de tipo entero, esta será llamada sensorVal. Para ejecutar la lectura de la señal se realiza mediante el comando analogRead(sensorpin); se indica además el pin en el que debe leer la entrada, la cual se almacena en la variable sensorVal. Posteriormente se empleara la función Serial.print (); para mostrar en pantalla el valor medido , en el interior de los paréntesis se debe colocar el valor, si se quieren escribir palabras o frases estas deben ir delimitadas mediante los comillas, ejemplo Serial.print( “Valor del sensor ”).
  • Luego se quiere mostrar en el monitor el valor del voltaje medido por el sensor, este valor será almacenado en la variable local llamada voltaje de tipo float y que ha sido declarada previamente. Se utiliza el valor guardado en la variable sensorVal y se realiza la transformación a voltios dividiendo esta variable por la resolución (para esta tarjeta Arduino es 1024) y multiplicándola por el valor máximo del voltaje que es 5V. Realizada la conversión se utiliza nuevamente el comando  Serial.print(); para permitir la visualización de los datos.
  • La parte final del bloque contiene la conversión a valores de temperatura del valor del voltaje almacenado en la variable voltaje.  Se debe declarar previamente una variable local donde se guardará el valor obtenido en la conversión a temperatura, esta será denominada temperatura y será de tipo float y también se presenta en pantalla utilizando nuevamente el comando Serial.print();.
  • Finalmente, se debe verificar que al final de cada instrucción se haya colocado el respectivo punto y coma, de lo contrario habrán errores a la hora de compilar.
  • Una vez compilado el programa se ejecuta el mismo. Si las conexiones se hicieron de manera correcta el sensor capta y envía las señal a la tarjeta y esta posteriormente al monitor.
  • Para activar el monitor serial se hace click izquierdo en la barra de herramientas del IDE de Arduino que señaliza el monitor serial en la parte superior derecha, ver Figura 2.

Figura 2. Botón para activar el Monitor Serial.

Como parte de la práctica para observar los cambios de temperatura registrados por el sensor, y tener una idea de si estaba funcionando de manera correcta, primero se mide la temperatura que media en el ambiente. Luego se procede a tratar de hacer aumentar esta temperatura (frotando las manos y acercándolas al sensor) y se verifica si ocurre algún cambio en los datos medidos, constatando que el circuito funcionaba correctamente.

A continuación el código completo requerido para la realización de esta práctica:

//Práctica encender y apagar un LED a través de botón pulsador
const int sensorPin=A0;
void setup(){
Serial.begin(9600);
}
void loop(){
int sensorVal=analogRead(sensorPin);
Serial.print ("Valor del Sensor= ");
Serial.print (sensorVal);
float voltaje = (sensorVal/1024.0)*5*100;
Serial.print ("Valor de la Temperatura= ");
Serial.println (voltaje);
delay(1000);
}

Algoritmo  1. Lectura de señal analógicas, medición de temperatura mediante sensor de temperatura..  

Implementación del algoritmo 1 en el simulador https//123d.circuits.io:

https://123d.circuits.io/circuits/2195169-the-unnamed-circuit/edit#breadboard

4.5  Conclusiones:

Los sensores de temperatura constituyen un elemento muy importante a la hora de realizar algún monitoreo o supervisión de algún tipo de proceso en el que mantener rangos de temperatura signifique una acción esencial a tomar en cuenta. Con la realización de esta práctica se conocieron nuevos comandos que permiten trabajar con señales analógicas,  señales que son captadas del exterior, como el caso de la temperatura obtenida mediante los sensores de esta propiedad. Además, se aprendió  la manera de como transmitir a un usuario los datos captados por un sensor. Todos estos elementos de manipulación de estímulos exteriores nos permiten observar el funcionamiento de algún proceso y en base a los datos obtenidos establecer posteriormente mediante programación y otros elementos, acciones de control de dicha tareas o la ejecución de trabajos paralelos para optimizar los resultados finales.

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPin on PinterestPrint this page