.. note:: ¡Hola, bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook! Profundiza en Raspberry Pi, Arduino y ESP32 con otros entusiastas. **¿Por qué unirse?** - **Soporte Experto**: Resuelve problemas post-venta y desafíos técnicos con la ayuda de nuestra comunidad y equipo. - **Aprender y Compartir**: Intercambia consejos y tutoriales para mejorar tus habilidades. - **Previsualizaciones Exclusivas**: Obtén acceso anticipado a nuevos anuncios de productos y adelantos. - **Descuentos Especiales**: Disfruta de descuentos exclusivos en nuestros productos más recientes. - **Promociones y Sorteos Festivos**: Participa en sorteos y promociones navideñas. 👉 ¿Listo para explorar y crear con nosotros? ¡Haz clic en [|link_sf_facebook|] y únete hoy! .. _2.2.2_py: 2.2.2 Termistor ================ .. note:: .. image:: ../img/mcp3008_and_adc0834.jpg :width: 25% :align: left 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 la fotorresistencia 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 hacer una alarma de calor. Componentes Necesarios ------------------------------ En este proyecto, necesitamos los siguientes componentes. .. image:: ../img/list_2.2.2_thermistor.png Es definitivamente conveniente comprar un kit completo, aquí está el enlace: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nombre - ARTÍCULOS EN ESTE KIT - ENLACE * - Kit Raphael - 337 - |link_Raphael_kit| También puedes comprarlos por separado desde los enlaces a continuación. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUCCIÓN DE COMPONENTES - ENLACE DE COMPRA * - :ref:`cpn_gpio_board` - |link_gpio_board_buy| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_resistor` - |link_resistor_buy| * - :ref:`cpn_thermistor` - |link_thermistor_buy| * - :ref:`cpn_adc0834` - \- Diagrama Esquemático ------------------------- .. image:: ../img/image323.png .. image:: ../img/image324.png Procedimientos Experimentales ----------------------------------- **Paso 1:** Construye el circuito. .. image:: ../img/image202.png **Paso 2:** Ve a la carpeta del código. .. raw:: html .. code-block:: cd ~/raphael-kit/python/ **Paso 3:** Ejecuta el archivo ejecutable. .. raw:: html .. code-block:: sudo python3 2.2.2_Thermistor.py Cuando el código se ejecuta, el termistor detecta la temperatura ambiente, que se imprimirá en la pantalla una vez que termine el cálculo del programa. **Código** .. note:: 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``. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto. .. raw:: html .. code-block:: python #!/usr/bin/env python3 # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import ADC0834 import time import math def init(): ADC0834.setup() def loop(): while True: analogVal = ADC0834.getResult() Vr = 5 * float(analogVal) / 255 Rt = 10000 * Vr / (5 - Vr) temp = 1/(((math.log(Rt / 10000)) / 3950) + (1 / (273.15+25))) Cel = temp - 273.15 Fah = Cel * 1.8 + 32 print ('Celsius: %.2f °C Fahrenheit: %.2f ℉' % (Cel, Fah)) time.sleep(0.2) if __name__ == '__main__': init() try: loop() except KeyboardInterrupt: ADC0834.destroy() **Explicación del Código** .. code-block:: python import math Esta es una biblioteca numérica que declara un conjunto de funciones para calcular operaciones matemáticas comunes y transformaciones. .. code-block:: python analogVal = ADC0834.getResult() Esta función se usa para leer el valor del termistor. .. code-block:: python Vr = 5 * float(analogVal) / 255 Rt = 10000 * Vr / (5 - Vr) temp = 1/(((math.log(Rt / 10000)) / 3950) + (1 / (273.15+25))) Cel = temp - 273.15 Fah = Cel * 1.8 + 32 print ('Celsius: %.2f °C Fahrenheit: %.2f ℉' % (Cel, Fah)) Estos cálculos convierten los valores del termistor en grados centígrados y grados Fahrenheit. .. code-block:: python Vr = 5 * float(analogVal) / 255 Rt = 10000 * Vr / (5 - Vr) Estas dos líneas de código calculan la distribución de voltaje con el valor leído analógico para obtener Rt (resistencia del termistor). .. code-block:: python temp = 1/(((math.log(Rt / 10000)) / 3950) + (1 / (273.15+25))) Este código se refiere a enchufar Rt en la fórmula **T\ K\ =1/(ln(R\ T/R\ N)/B+1/T\ N)** para obtener la temperatura en Kelvin. .. code-block:: python temp = temp - 273.15 Convierte la temperatura en Kelvin a grados centígrados. .. code-block:: python Fah = Cel * 1.8 + 32 Convierte los grados centígrados a grados Fahrenheit. .. code-block:: python print ('Celsius: %.2f °C Fahrenheit: %.2f ℉' % (Cel, Fah)) Imprime los grados centígrados, los grados Fahrenheit y sus unidades en la pantalla. Foto del Fenómeno ---------------------- .. image:: ../img/image203.jpeg