Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos » Arduino y Raspberry Pi
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

28/04/2013 #1

Avatar de anajesusa

Termómetro múltiple de 5 sondas con Arduino
Esta tarde terminé este sencillo instrumento que usaré con fines didácticos y creo merece la pena colgar porque puede usarse para muchos aplicaciones prácticas, si alguien tiene que tomarse la temperatura bucal y rectal es bueno tener dos termómetros

Se usan como sondas los conocidos (de pié todos, si no Fogonazo se cabrea) diodos 1N4148 que son muy económicos y muy nobles, (nada de pedorros diodos).
Circuito eléctrico
Esta imagen muestra como ejemplo la conexión de dos sondas


Con este código se hace la calibración
Código:
//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); 
}

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.
Y tomamos nota de las lecturas de cada sonda a 0°
Igual hacemos a 100°
Luego volcamos esos datos en el codigo de uso que es este
Código:
// termometro múltiple fácil de calibrar
int termometro1= 0;// entrada A0
int termometro2= 0;// entrada A1
int termometro3= 0;// entrada A2
int termometro4= 0;// entrada A3, se pueden poner mas sondas en A4 y 5
int termometro5= 0;
void setup() {
Serial.begin(9600); 
analogReference(INTERNAL);// pone como referencia iterna 1.1V
}
void loop() {
termometro1 = map(analogRead(0),450,631,100,0); // a 0°C la lectrura de analgRead es 140 y a 100°C es 99
termometro2 = map(analogRead(1),460,630,100,0);// calibrar cada sonda por separado y poner los valores correspondientes en map
termometro3 = map(analogRead(2),450,630,100,0);
termometro4 = map(analogRead(3),449,630,100,0);
termometro5 = map(analogRead(4),449,630,100,0);
// para ver en el monitor
Serial.print (" Term 1= ");
Serial.print (termometro1);
Serial.print (" Term 2= ");
Serial.print (termometro2);
Serial.print (" Term 3= ");
Serial.print (termometro3);
Serial.print (" Term 4= ");
Serial.print (termometro4);
Serial.print (" Term 5= ");
Serial.println (termometro5);
delay(1000); 
}
Donde dice:

termometro1 = map(analogRead(0),450,631,100,0);

debemos reemplazar los valores en rojo por las lecturas que tomamos a 0° y a 100° para la sonda 1,
Luego igual con la sonda2, 3, 4 y 5
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í:

Eso ya podemos usar una sonda para la boca y otra para las partes mas íntimas je.
Como siempre en mi blog esta todo mas detallado
http://anajesusa.wordpress.com/2013/...z-con-arduino/
01/05/2013 #2

Avatar de anajesusa

Con las indicaciones de un amigo y un pequeño truco ya tenemos las temperaturas con un dígito decimal
Dejo el código
Código:
// 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); 
}
Como se ve en el monitor:

Saludos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Arduino y Raspberry Pi

Cerrar
Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos » Arduino y Raspberry Pi

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.