Leer la temperatura con un Arduino es una función extremadamente útil. Es el tipo de función que es esencial en muchos proyectos que van desde la construcción de su propio termostato hasta la creación de una estación meteorológica. Además, es lo suficientemente simple como para implementarlo en pocos minutos con cualquier Arduino y solo dos componentes simples.
En este tutorial, te mostraré cómo usar un Arduino para leer la temperatura de un termistor e imprimirlo en el puerto serie. Un termistor es un componente electrónico simple que cambia la resistencia según la temperatura. Este tutorial se centra en los medios más simples y menos costosos para leer la temperatura. A lo largo del camino, aprenderá un componente básico y sencillo de la electrónica que le permitirá explorar todo un mundo de sensores con su Arduino..
Hay varias maneras de leer la temperatura con un Arduino. Algunos de estos incluyen:
Este tutorial se enfoca en usar el método del termistor por varias razones. Primero, responde rápidamente a los cambios de temperatura, segundo, es barato y, finalmente, es fácil de usar.
También hay dos conceptos muy importantes que aprender de este tutorial:
Los sensores de resistencia variable se fabrican para medir todo tipo de cosas, en el mundo físico, y la capacidad de leer estos sensores con su Arduino será una excelente habilidad básica para dominar. La rotación, la presión, la tensión, la flexión, la luz y el calor son ejemplos de cosas que puede medir utilizando un pin analógico y un circuito divisor de voltaje.
Para este proyecto necesitarás
Los pines analógicos de Arduino leen un voltaje que se espera que oscile entre 0V y 5V. Una forma estándar de convertir un cambio de resistencia en un termistor en un cambio de voltaje que el pin analógico Arduino puede leer es crear un circuito divisor de voltaje. El circuito utiliza dos resistencias en un circuito de un voltaje conocido para crear un valor de voltaje matemáticamente predecible: Vout.
Es un circuito muy simple como se muestra abajo. A medida que cambia el valor de R1 (resistencia 1), cambia Vout. En nuestro tutorial, R1 será el termistor y su valor cambiará en relación con la temperatura. Vout está conectado a nuestro puerto analógico en el Arduino para que podamos monitorearlo.
Esquema del circuito divisor de voltajeBasta de teoría, sigamos con la construcción de la placa de pruebas y Arduino.
Configura tu tablero y el tablero Arduino como se muestra en el siguiente diagrama. El diagrama se hizo con Fritzing, una gran herramienta para cablear proyectos de manera lógica antes de agarrar cables y componentes. La parte superior, componente gris es el termistor, o R1, en el diagrama de arriba. Esta es una de las muchas formas de cablear el circuito, lo elegí porque cumple con algunas prácticas buenas y básicas de transporte.
Diseño de placa de prueba con termistor y circuito divisor de tensión.Leer el pin analógico en un Arduino es bastante simple. Los pines etiquetados A0 - A5 en el Arduino son pines especiales que cuando se leen con el analógicaLeer ()
La función devolverá el valor de 0 a 1023 donde el voltaje de entrada es de 0V a 5V. A medida que el valor de R1, el termistor, cambia en función de la temperatura, la tensión en el pin A0 cambiará de manera predecible entre 0 V y 5 V.
Vamos a escribir un código y pasarlo al Arduino..
void setup () // Esta función se llama cuando Arduino inicia Serial.begin (115200); // Este código configura el puerto serie a una velocidad de baudios de 115200 void loop () // Esta función realiza un bucle mientras el arduino se alimenta int val; // Crear una variable entera val = analogRead (0); // Lea el puerto analógico 0 y almacene el valor en val Serial.println (val); // Imprimir el valor en el retardo del puerto serie (1000); // Espera un segundo antes de que lo hagamos de nuevo
Propina: Asegúrese de que la velocidad en baudios del monitor en serie coincida con lo establecido en el preparar()
función. En este ejemplo: 115200.
La salida debe verse algo como esto:
463
463
463
463
463
463
A menos que su tablero esté en un horno muy caliente, estos valores no tienen sentido. Esto se debe a que son simplemente muestras de voltaje traducidas a una escala de 0 a 1023. A continuación, debemos convertirlas en un valor de temperatura utilizable.
Anteriormente mencioné que usar el termistor sería simple, y eso es porque podemos pararnos sobre los hombros de gigantes. Hay una ecuación para hacer la traducción del valor muestreado a la temperatura llamada ecuación de Steinhart-Hart. (http://en.wikipedia.org/wiki/Thermistor) La ecuación de Steinhart-Hart ya se ha traducido para el Arduino. Un ejemplo de esto se puede encontrar en playground.arduino.cc en un artículo de Milan Malesevic y Zoran Stupic. He ilustrado su función Termistor ()
A continuación y agregamos comentarios sobre cómo usarlo..
#incluir// carga las funciones matemáticas más avanzadas void setup () // Esta función se llama cuando Arduino inicia Serial.begin (115200); // Este código configura el puerto serie a una velocidad de baudios de 115200 doble Thermister (int RawADC) // Función para realizar las matemáticas de fantasía de la ecuación de Steinhart-Hart doble Temp; Temp = log ((((10240000 / RawADC) - 10000)); Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp)) * Temp); Temp = Temp - 273.15; // Convertir Kelvin a Celsius Temp = (Temp * 9.0) / 5.0 + 32.0; // Celsius a Fahrenheit - comente esta línea si necesita Celsius return Temp; void loop () // Esta función realiza un bucle mientras el arduino está encendido int val; // Crear una variable entera de doble temp; // Variable para mantener un valor de temperatura val = analogRead (0); // Lea el puerto analógico 0 y almacene el valor en val temp = Thermister (val); // Ejecuta la matemática de fantasía en el valor analógico sin procesar Serial.println (temp); // Imprimir el valor en el retardo del puerto serie (1000); // Espera un segundo antes de que lo hagamos de nuevo
Ahora la salida debería verse mucho más como esto:
69.22
69.07
69.22
69.22
70.33
72.07
72.86
73.34
74.13
Ahora esto tiene sentido. Mi taller es de hecho 69 grados Fahrenheit. Durante este ejemplo, toqué la parte superior del termistor con mi dedo y noté el aumento de temperatura como puedes ver.
Intenta experimentar con tu configuración para sentirte más cómodo con estas nuevas habilidades. Aquí hay algunas sugerencias.
analógicaLeer ()
valores basados en cambios de iluminación (sugerencia: use el primer segmento de código)Eso es todo al respecto. Ahora puede ir y crear cualquier forma de invención utilizando un termistor muy económico..
Además de este tutorial has aprendido cómo:
analógicaLeer ()
analógicaLeer ()
funciónAunque al principio, su Arduino para que lea y comprenda el mundo que lo rodea puede parecer complicado, en realidad, hay toda una gama de sensores simples y económicos disponibles que le permitirán interactuar con el mundo real de manera rápida y sencilla. El circuito divisor de voltaje y algunos códigos simples pueden darle a su próxima creación nuevos y poderosos sentidos..