Sentindo o exterior: Temperaturas

Importante: Este titorial é para o sensor LM335, se tes o LM35 tes que mirar este outro.

Neste titorial imos ver un xeito de ler temperaturas en Arduino. Para iso imos empregar simplemente un sensor de temperatura moi barato e moi común, o LM335. Nós comprámolo en Tayda, unha tenda moi barata que está en Thailandia. Este titorial está basado neste outro.

Preparación e conexión:

Precisas o seguinte material:

  • Un LM335.

  • Unha resistencia de 2,2K (vermello|vermello|vermello).

  • Cables.

  • O Arduino.

  • Breadboard

O LM335 ten tres patillas, nós imos empregar só dúas a do medio é a alimentación positiva e saída analóxica (V+/Vout) e a da dereita é a terra (GND). Convenimos mirar o compoñente pola cara plana:

O esquema de conexión sería este (clica para ampliar):

O programa de lectura de temperaturas:

Copia e carga este código nun arquivo de Arduino:

//Definimos o pin onde lemos o valor do sensor

int entradaLM335= 0; //Abrimos a comunicación co monitor serie void setup() { Serial.begin(9600); } void loop() { //creamos unha variable lectura para coller o valor do sensor //int por ser un numero enteiro int voltaxe= analogRead(entradaLM335); //creamos unha variable con decimais (float) onde imos calcular os milivoltios //aos que equivale esa lectura do sensor, que xa sabes que vai entre 0 e 1024 //multiplicamos por 5000 porque estamos a traballar cos 5V do Arduino float milivoltios= (voltaxe/1024.0) * 5000; //calculamos o valor Kelvin e o almacenamos na variable kelvin

//cada 10 milivoltios que nos da o sensor son un grao float kelvin= (milivoltios/10); //imprimimos o valor da variable kelvin Serial.print(kelvin); Serial.println(" degrees Kelvin"); //Pega aquí o calculo para o valor en graos celsius //o tempo que quero que pase entre unha e outra lectura delay(3000); }

Como ves no código, o LM335 é un sensor nos dá unha voltaxe que depende da temperatura ambiente. O que facemos no programa é ler esa voltaxe, calcular o seu valor en milivoltios, e logo calcular os graos Kelvin aos que estamos, que se obteñen dividindo a voltaxe por 10 (isto é un dato do compoñente).

O Monitor Serie:

Cando temos o Arduino conectado ao ordenador, podemos ler datos que nos envíe desde unha fiestra no noso escritorio. Para iso temos que darlle á lupiña do "monitor serie", arriba á dereita no Arduino IDE. Isto é moi útil para poder ler datos, depurar programas, envíar instruccións ao arduino...

Calcular os graos Celsius:

Agora vas tentar ti escreber un pouco de código, en concreto o cálculo dos graos Celsius. Supoño que lembras como se pasaba de Kelvin a Celsius, se non, refresca a memoria.

Para este cálculo terás que:

  1. Crear unha variable onde almacenar o valor en graos Celsius.

  2. Modificar esa variable en función do valor de Kelvin.

  3. Imprimir esa variable no monitor serie.

Solución (selecciona o texto do recadro):

//creo a variable celsius, que se iguala ao valor de kelvin menos 273.15

float celsius= kelvin - 273.15; //imprimo o valor de celsius e logo o texto "graos Celsius"

Serial.print(celsius); Serial.println(" graos Celsius");

Retos:

  1. Serías capaz de facer ti o código para que expresara tamén a temperatura en graos Fahrenheit?

  2. Serías capaz de facer que, cando a temperatura suba de 20º Celsius imprima no monitor "Que calor vai!"

  3. Serías capaz de engadirlle ao reto anterior que tamén se encendera un Led ao subir a temperatura de 20º?