Arduino – Altes temperatures

RECORDA

Els interruptors i els pulsadores són digitals, perquè només poden estar encesos o apagats.
Els sensors de temperatura o de lz són analògics i recullen valors entre el 0 i el 1023, que corresponen a un rang entre 0 i 5V.

ACTIVITAT

Llegeix la sortida d’un sensor de temperatura i encén o apaga LEDs en funció de la temperatura que detecti.
Mostra pel monitor seriï les dades del sensor analògics, la seva conversió a volts i a graus centígrads.

COM FUNCIONA UN SENSOR DE TEMPERATURA?

Té 3 clavilles: GND, alimentació i pin.
El sensor TMP36 emet un voltatge directament proporcional en graus centígrads a la temperatura que detecta.

ESQUEMA*

*Poseu-li 3 leds.

  1. Connecta el càtode (peu curt) de cada LED a la resistència de 220 i l’ànode al pin.
  2. Aneu amb compte amb les potetes del TMP36, l’ordre de les clavilles és important.

PROGRAMACIÓ

  • Crearem constants per emmagatzemar els valors que no van a canviar, com els pins i la temperatura que fixarem com a base per a l’experiment. Escriurem int pels nombres sencers i float pels decimals.

const int sensor = A0;
const float temperatura = 20.0;

  • Inicialitzem el port serial a una velocitat de comunicació de 9600 bits/segon.

void setup() {
Serial.begin(9600); //inicia el port serial

  • Indica que els LEDs son outputs i apaga’ls.

pinMode(4,OUTPUT);
digitalWrite (4,LOW);

  • Llegirem el valor del sensor en bucle. Per fer-ho, haurem de guardar les dades en una variable local. Recordeu indicar entre parèntesis el pin del sensor.

void loop() {
int lectura = analogRead(sensor);
}

  • Mostrem les dades del sensor per la pantalla. Ho farem escribint un text + el valor per sí.

Serial.print (“Valor del sensor: “);
Serial.print (lectura);

  • No t’oblidis de posar un petit delay al final!

PROBA QUE FUNCIONI ABANS DE CONTINUAR—

  • Fem una petita equació per transformar la lectura del sensor a voltatge. Aquesta dada s’haurà de guardar en una variable decimal. Mostra aquesta

void loop() {
   int lectura = analogRead(sensor);
   Serial.print (“Valor del sensor: “);
   Serial.print (lectura);
 float voltage = (lectura/1024.0)*5.0;
Serial.print (“Volts: “);
Serial.print (voltage);
}

  • Converteix el voltatge en temperatura i envia el valor a l’ordinador. Aquest cop farem servir el Serial,println per a que canvii de línia després de dir-nos la temperatura en graus.

float graus = (voltage -0.5)*100;
Serial.print (” Graus: “);
Serial.println (graus);

PROBA QUE FUNCIONI ABANS DE CONTINUAR—

  • Ara només falta encendre els LEDs. Farem que s’apaguin si els graus SÓN inferiors a la temperatura base que em dit al principi (20.0) i que s’encengui 1 LED per cada 2 graus per sobre d’aquesta temperatura base.

if (graus<=temperatura){
digitalWrite(2,LOW);
digitalWrite(4,LOW);
digitalWrite(6,LOW);
}

  • Per la resta, farem servir else if. Mira aquest exemple i fes els 2 que et faltaran:

else if(graus>=temperatura &&graus<temperatura+2){
digitalWrite(2,HIGH);
digitalWrite(4,LOW);
digitalWrite(6,LOW);
}

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.