Arduino: Termómetro "analógico"
Quería probar a usar un sensor de temperatura, pero ver simplemente la temperatura en pantalla me pareció algo aburrido, así que decidí colocar un servo para mover una aguja y así me marcara la temperatura de forma "analógica".
Esta es una pequeña foto de como me ha quedado:
Esta es una pequeña foto de como me ha quedado:
Las piezas de LEGO fueron para sujetar el servo que he utilizado y el papel con las medidas.
Así es como he conectado todo:
Imagen creada en Fritzzing |
Y aquí tenéis las imágenes de dial y de la aguja:
Podría hacer más amplio el rango de temperaturas, pero de -10º a 40º me ha servido perfectamente para probar.
He aquí el código:
/* * Sensor temperatura * */ #include <Servo.h> int tempPin = A0; // conectamos el pin de datos del sensor de temperatura
//en la entrada analógica 0 Servo miservo; // crea un objeto Servo para controlar un servo int pos = 0; // variable para guardar la posición del servo void setup() { miservo.attach(12); // conecta el servo en el pin 12 del objeto servo Serial.begin(9600); // inicializamos el puerto serie para poder ver en
//el PC la variación } void loop() { // obtenemos temperatura float temperatura = obtenVoltaje(tempPin); // obtenemos el voltaje del sensor temperatura = (temperatura - .5) * 100; // pasamos de 10mv a grados // giramos servo a la posicion adecuada.
// valoramos grados de -10 a 40 frente a 0 a 180 grados de giro pos = map(temperatura, -10, 40, 0, 180); miservo.write(pos); // movemos el servo a la posición deseada // mostramos la temperatura por puerto serie: Serial.print(temperatura); Serial.println(" grados"); delay(500); // pausa } // Devuelve el voltaje en un pin analógico dado float obtenVoltaje(int pin) {
// pasamos a un formato digital entre 0 y 1024 desde 0 a 5 voltios
return(analogRead(pin) * .004882814); }
Para ver la temperatura directamente en nuestro ordenador, pulsaremos en el botón Monitor Serial del IDE de Arduino:
Espero que os haya sido de ayuda. Un saludo.
Comentarios
Publicar un comentario
En entradas antiguas, los comentarios quedarán pendientes de moderación. Si tu comentario tarda en aparecer, ten paciencia ;D