Nota
¡Hola! Bienvenidos a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook. Sumérgete más en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirse?
Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances exclusivos: Obtén acceso anticipado a nuevos anuncios de productos y adelantos.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones festivas y sorteos: Participa en sorteos y promociones festivas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.
2.2.2 Termistor
Nota
Dependiendo de la versión de su kit, identifique si tiene ADC0834 o MCP3008 y continúe con la sección correspondiente.
Introducción
Al igual que el fotorresistor puede detectar la luz, el termistor es un dispositivo electrónico sensible a la temperatura que se puede utilizar para realizar funciones de control de temperatura, como la creación de una alarma de calor.
Componentes Requeridos
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ARTÍCULOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Raphael |
337 |
También puedes comprarlos por separado en los siguientes enlaces.
INTRODUCCIÓN AL COMPONENTE |
ENLACE DE COMPRA |
|---|---|
- |
Diagrama Esquemático
Procedimientos Experimentales
Paso 1: Montar el circuito.
Paso 2: Ir a la carpeta del código.
cd ~/raphael-kit/nodejs/
Paso 3: Ejecutar el código.
sudo node thermistor.js
Con el código ejecutándose, el termistor detecta la temperatura ambiental que se imprimirá en la pantalla una vez que el programa termine el cálculo.
Código
const Gpio = require('pigpio').Gpio;
const ADC0834 = require('./adc0834.js').ADC0834;
exports.ADC0834 = ADC0834;
const adc = new ADC0834(17, 18, 27);
setInterval(() => {
adc.read(0).then((value) => {
var Vr = 5 * value / 255;
var Rt = 10000 * Vr / (5 - Vr);
var temp = 1 / ((Math.log(Rt/10000) / 3950)+(1 / (273.15 + 25)));
var cel = (temp - 273.15).toFixed(2);
var Fah = (cel * 1.8 + 32).toFixed(2);
console.log(`Celsius: ${cel} C Fahrenheit: ${Fah} F\n`);
}, (error)=>{
console.log("Error: " + error);
});
}, 1000);
Explicación del Código
setInterval(() => {
adc.read(0).then((value) => {
var Vr = 5 * value / 255;
var Rt = 10000 * Vr / (5 - Vr);
var temp = 1 / ((Math.log(Rt/10000) / 3950)+(1 / (273.15 + 25)));
var cel = (temp - 273.15).toFixed(2);
var Fah = (cel * 1.8 + 32).toFixed(2);
console.log(`Celsius: ${cel} C Fahrenheit: ${Fah} F\n`);
}, (error)=>{
console.log("Error: " + error);
});
}, 1000);
Podemos leer el value del termistor a través de la declaración adc.read(0).then((value) => {...})
var Vr = 5 * value / 255;
var Rt = 10000 * Vr / (5 - Vr);
var temp = 1 / ((Math.log(Rt/10000) / 3950)+(1 / (273.15 + 25)));
var cel = (temp - 273.15).toFixed(2);
var Fah = (cel * 1.8 + 32).toFixed(2);
console.log(`Celsius: ${cel} C Fahrenheit: ${Fah} F\n`);
Estas operaciones convierten el valor del termistor a un valor de temperatura en Celsius.
var Vr = 5 * value / 255;
var Rt = 10000 * Vr / (5 - Vr);
Estas dos líneas de código se utilizan para calcular la distribución de voltaje a partir de los valores leídos, resultando en Rt (resistencia del termistor).
var temp = 1 / ((Math.log(Rt/10000) / 3950)+(1 / (273.15 + 25)));
Este código se refiere a sustituir Rt en la fórmula TK=1/(ln(RT/RN)/B+1/TN) para obtener la temperatura en Kelvin.
var cel = (temp - 273.15).toFixed(2);
Este párrafo es para convertir la temperatura de Kelvin a Celsius con dos decimales.
var Fah = (cel * 1.8 + 32).toFixed(2);
Este párrafo convierte Celsius a Fahrenheit con dos decimales.
console.log(`Celsius: ${cel} C Fahrenheit: ${Fah} F\n`);
Imprime Celsius, Fahrenheit y sus unidades en la terminal.
Foto del Fenómeno