Hay muy lindos experimentos que serán motivo de otra entrada en mi blog con calor y es necesario contar con varios termómetros que lean en forma simultanea, este es el tema que hoy abordaremos.
Materiales
5 diodos 1N4148 (valen menos de 1$ o podemos sacarlos de alguna plaqueta)
5 resistencias de ¼ W de 2K2 ohms (tres bandas rojas en el código de colores)
Cable de mouse
Spaguetti termocontraible
La placa arduino.
Circuito eléctrico
Esta imagen muestra como ejemplo la conexión de dos de ellas
Construcción de las sondas
Es conveniente usar para todas la misma longitud de cable, unos 50 cm esta bastante bien, podemos usar el cable de los Mouse que son muy flexibles, tienen varios cables dentro pero solo usaremos dos de ellos. En uno de los extremos soldamos el diodo cuidando siempre usar los mismos colores para ánodo y cátodo, para luego no confundirnos en la conexión. Una vez soldado le pondremos un trozo de termocontraible para dejarlo prolijo y resguardar las soldaduras.
Las cinco sondas
En la imagen se ve el protoboard con las cinco sondas y ya conectadas a la placa Arduino
Calibrado
Para calibrar es sumamente sencillo, una vez armado el dispositivo como se ve en la imagen anterior cargamos el siguiente código a Arduino
//Código para calibrar las sondas del termómetro
void setup() {
Serial.begin(9600);
analogReference(INTERNAL);// pone como referencia iterna 1.1V
}
void loop() {
Serial.print (" Term 1= ");
Serial.print (analogRead(0));
Serial.print (" Term 2= ");
Serial.print (analogRead(1));
Serial.print (" Term 3= ");
Serial.print (analogRead(2));
Serial.print (" Term 4= ");
Serial.print (analogRead(3));
Serial.print (" Term 5= ");
Serial.println (analogRead(4));
delay(1000);
}
Una vez hecho esto activamos el monitor, nos encontraremos con cinco columnas como estas:
Atamos las 5 sondas con una banda elástica y las colocamos en una copa con hielo y un poco de agua dejando unos minutos para que se estabilicen las lecturas.
Tomamos nota de las lecturas
Por ejemplo en mi caso fueron:
Numero de sonda | Lectura a 0° |
1 | 632 |
2 | 630 |
3 | 629 |
4 | 628 |
5 | 641 |
Ahora hacemos lo mismo pero colocando las sondas en agua hirviendo
Igual que antes tomamos nota, como ejemplo doy los valores míos pero cada uno deberá hacer sus medidas para que los termómetros marquen bien.
Número de sonda | Lectura a 100° |
1 | 452 |
2 | 459 |
3 | 450 |
4 | 449 |
5 | 473 |
Ahora vamos a cargar el código que dará las lecturas de los termómetros que es este:
// termometro múltiple fácil de calibrar
float termometro1= 0;// entrada A0
float termometro2= 0;// entrada A1
float termometro3= 0;// entrada A2
float termometro4= 0;// entrada A3, se pueden poner mas sondas en A4 y 5
float termometro5= 0;
int tiempo=0;
int cnt=0;
float t1=0;
float t2=0;
float t3=0;
float t4=0;
float t5=0;
void setup() {
Serial.begin(9600);
analogReference(INTERNAL);// pone como referencia iterna 1.1V
}
void loop() {
t1 = map(analogRead(0),452,632,1000,0); // a 0°C la lectrura de analgRead es 140 y a 100°C es 99
t2 = map(analogRead(1),459,630,1000,0);// calibrar cada sonda por separado y poner los valores correspondientes en map
t3 = map(analogRead(2),450,629,1000,0);
t4 = map(analogRead(3),449,628,1000,0);
t5 = map(analogRead(4),473,641,1000,0);
termometro1= t1/10;
termometro2= t2/10;
termometro3= t3/10;
termometro4= t4/10;
termometro5= t5/10;
tiempo =millis()/1000;
// para ver en el monitor
Serial.print (tiempo);
Serial.print (" Term 1= ");
Serial.print (termometro1,1);
Serial.print (" Term 2= ");
Serial.print (termometro2,1);
Serial.print (" Term 3= ");
Serial.print (termometro3,1);
Serial.print (" Term 4= ");
Serial.print (termometro4,1);
Serial.print (" Term 5= ");
Serial.println (termometro5,1);
delay(1000);
}
Antes de proceder a cargarlo vamos a colocar los datos de referencia
Donde dice:
t1 = map(analogRead(0),450,631,1000,0);
debemos reemplazar los valores en rojo por las lecturas que tomamos a 0° y a 100° para la sonda 1, asi:
t1 = map(analogRead(0),452,632,1000,0);
Luego igual con la sonda2, 3, 4 y 5
En mi caso quedaría asi:
t1 = map(analogRead(0),452,632,1000,0); // a 0°C la lectrura de analgRead es 140 y a 100°C es 99
t2 = map(analogRead(1),459,630,1000,0);// calibrar cada sonda por separado y poner los valores correspondientes en map
t3 = map(analogRead(2),450,629,1000,0);
t4 = map(analogRead(3),449,628,1000,0);
t5 = map(analogRead(4),473,641,1000,0);
Hecho esto grabamos y levantamos el código a arduino, activamos el monitor y tenemos que tener lectura igual +/- 1° en todas las sondas marcando temperatura ambiente
Así:
Listo, ahora podemos usar nuestras sonda por separado, probamos si da el cero con agua con hielo, o la temperatura corporal etc.
Este dispositivo voy a usarlo en unas pruebas interesantes de calor y tempertura en una próxima entrada.