Nota
¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete más en el mundo de 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 nuevos.
Promociones y Sorteos Festivos: Participa en sorteos y promociones de temporada.
👉 ¿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 una fotorresistencia puede detectar la luz, un termistor es un dispositivo electrónico sensible a la temperatura que puede usarse para funciones de control de temperatura, como hacer una alarma de calor.
Componentes Necesarios
En este proyecto, necesitamos los siguientes componentes.
Definitivamente es conveniente comprar un kit completo, aquí está el enlace:
Nombre |
COMPONENTES EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Raphael |
337 |
También puedes comprarlos por separado en los enlaces a continuación.
INTRODUCCIÓN DEL COMPONENTE |
ENLACE DE COMPRA |
|---|---|
- |
Diagrama Esquemático
Procedimientos Experimentales
Paso 1: Construir el circuito.
Paso 2: Ir a la carpeta del código.
cd ~/raphael-kit/python-pi5
Paso 3: Ejecutar el archivo ejecutable.
sudo python3 2.2.2_Thermistor_zero.py
Con el código en ejecución, el termistor detecta la temperatura ambiente, que se imprimirá en la pantalla una vez que finalice el cálculo del programa.
Advertencia
Si recibe el mensaje de error RuntimeError: Cannot determine SOC peripheral base address, consulte Si «gpiozero» no funciona.
Código
Nota
Puedes Modificar/Restablecer/Copiar/Ejecutar/Detener el código a continuación. Pero antes de eso, necesitas ir a la ruta del código fuente como raphael-kit/python-pi5. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import ADC0834
import time
import math
# Inicializar el módulo ADC0834
ADC0834.setup()
# Ejecutar el proceso en un bloque try-except
try:
while True:
# Leer el valor analógico del sensor
analogVal = ADC0834.getResult()
# Convertir el valor analógico a voltaje
Vr = 5 * float(analogVal) / 255
# Calcular la resistencia del termistor
Rt = 10000 * Vr / (5 - Vr)
# Calcular la temperatura en Kelvin
temp = 1 / (((math.log(Rt / 10000)) / 3950) + (1 / (273.15 + 25)))
# Convertir Kelvin a Celsius
Cel = temp - 273.15
# Convertir Celsius a Fahrenheit
Fah = Cel * 1.8 + 32
# Imprimir la temperatura en Celsius y Fahrenheit
print('Celsius: %.2f C Fahrenheit: %.2f F' % (Cel, Fah))
# Esperar 0.2 segundos antes de la siguiente lectura
time.sleep(0.2)
# Manejar KeyboardInterrupt para una terminación adecuada
except KeyboardInterrupt:
# Limpiar recursos de ADC0834
ADC0834.destroy()
Explicación del Código
Esta sección importa la biblioteca ADC0834 para la conversión de analógico a digital, la biblioteca time para implementar retardos y la biblioteca math para realizar operaciones matemáticas.
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import ADC0834 import time import math
Inicializa el módulo ADC0834 para habilitar la lectura de valores analógicos.
# Inicializar el módulo ADC0834 ADC0834.setup()
Implementa un bucle infinito para la lectura continua de datos. El bucle lee el valor analógico de un termistor, convierte este valor a voltaje, calcula la resistencia del termistor y luego traduce esta resistencia en mediciones de temperatura en Kelvin, Celsius y Fahrenheit. También muestra las lecturas de temperatura en Celsius y Fahrenheit, haciendo una pausa de 0.2 segundos entre cada lectura.
# Ejecutar el proceso en un bloque try-except try: while True: # Leer el valor analógico del sensor analogVal = ADC0834.getResult() # Convertir el valor analógico a voltaje Vr = 5 * float(analogVal) / 255 # Calcular la resistencia del termistor Rt = 10000 * Vr / (5 - Vr) # Calcular la temperatura en Kelvin temp = 1 / (((math.log(Rt / 10000)) / 3950) + (1 / (273.15 + 25))) # Convertir Kelvin a Celsius Cel = temp - 273.15 # Convertir Celsius a Fahrenheit Fah = Cel * 1.8 + 32 # Imprimir la temperatura en Celsius y Fahrenheit print('Celsius: %.2f C Fahrenheit: %.2f F' % (Cel, Fah)) # Esperar 0.2 segundos antes de la siguiente lectura time.sleep(0.2)
Captura una excepción KeyboardInterrupt para terminar el programa de manera adecuada e incluye instrucciones de limpieza para los recursos de ADC0834 al finalizar.
# Manejar KeyboardInterrupt para una terminación adecuada except KeyboardInterrupt: # Limpiar recursos de ADC0834 ADC0834.destroy()