Lendo temperaturas cun sensor LM35
Como non me fixei ben e para o curso do CFR encarguei 10 sensores LM35 en vez de LM335, que era o que quería, fago este outro titorial:
Preparación e conexión:
Precisas o seguinte material:
Un LM35 ou LM35DZ.
Cables.
O Arduino.
Breadboard
O LM35 ten tres patillas, Vin se conecta aos 5V do Arduino, Vout é na que faremos a lectura e GND conéctase ao GND do Arduino.
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 entradaLM35= 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 lectura= analogRead(entradaLM35); //creamos unha variable con decimais (float) onde imos calcular os graos celsius //sabemos a formula polos datos do fabricante float milivoltios= (lectura/1024.0) * 5000; //calculamos o valor KCelsius e o almacenamos na variable celsius
//cada 10 milivoltios que nos da o sensor son un grao float celsius= (milivoltios/10); //imprimimos o valor da variable celsius Serial.print(celsius); Serial.println(" graos Celsius"); //Pega aquí o calculo para o valor en graos kelvin //o tempo que quero que pase entre unha e outra lectura delay(3000); }
Como ves no código, o LM35 é 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 Celsius 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 Kelvin:
Agora vas tentar ti escreber un pouco de código, en concreto o cálculo dos graos Kelvin. Supoño que lembras como se pasaba de Kelvin a Celsius, se non, refresca a memoria.
Para este cálculo terás que:
Crear unha variable onde almacenar o valor en graos Kelvin.
Modificar esa variable en función do valor de Celsius.
Imprimir esa variable no monitor serie.
Solución (selecciona o texto do recadro):
//creo a variable kelvin, que se iguala ao valor de celsius máis 273.15
float kelvin= celsius + 273.15; //imprimo o valor de kelvin e logo o texto "graos Kelvin"
Serial.print(kelvin); Serial.println(" graos Kelvin");
Retos:
Serías capaz de facer ti o código para que expresara tamén a temperatura en graos Fahrenheit?
Serías capaz de facer que, cando a temperatura suba de 20º Celsius imprima no monitor "Que calor vai!"
Serías capaz de engadirlle ao reto anterior que tamén se encendera un Led ao subir a temperatura de 20º?