Microcontrolador y Termómetro Digital DS18B20
La medición de la temperatura comienza con la expansión y contracción térmica del metal (sustancia). Los métodos de detección comúnmente utilizados incluyen el tipo de resistencia, el tipo de termopar, el tipo de unión PN, el tipo de radiación, el tipo de fibra óptica y el tipo de resonancia de cuarzo. Estos métodos de detección se basan en el principio de que los cambios de temperatura provocan cambios en los parámetros físicos (como el valor de resistencia, el potencial termoeléctrico, etc.). Con la mejora de la tecnología de circuitos integrados a gran escala, ha surgido una variedad de sensores de temperatura digitales integrados.
Aquí se propone un esquema de diseño para un pequeño sistema de medición de temperatura basado en el microcontrolador MSP430. El controlador principal utiliza el microcontrolador MSP430 y el sensor de temperatura digital DS18B20 está conectado al microcontrolador a través de un único bus (1 cable). El sistema tiene una estructura simple y una fuerte capacidad antiinterferente. Es adecuado para medir la temperatura in situ en entornos hostiles y se puede utilizar para medir la temperatura en almacenes, controlar el aire acondicionado de edificios y monitorear procesos de producción.
1. Diseño general del termómetro digital.
El sistema utiliza una microcomputadora de un solo chip como controlador principal del termómetro digital, un sensor de temperatura digital integrado como unidad de recopilación de información de temperatura y una pantalla LCD y sus componentes impulsores como unidad de visualización. El diagrama de bloques básico del sistema se muestra en la Figura 1.
Termómetro digital basado en microcontrolador y DS18B20
2. Composición del hardware
El controlador principal del sistema utiliza el microcontrolador MSP430F1121A de TI y el sensor de temperatura utiliza el sensor de temperatura digital integrado DS18B20 de DALLAS. Utilice 2 tubos digitales LED de cátodo común y 2 decodificadores CD4511 para realizar la visualización de la temperatura. El circuito de diseño general del sistema se muestra en la Figura 2.
Termómetro digital basado en microcontrolador y DS18B20
2.1 Controlador principal
MSP430F1121A tiene un diseño exclusivo de consumo ultrabajo con 5 modos de bajo consumo, lo que aporta una gran comodidad al diseño de instrumentos de bajo consumo. El microcontrolador MSP430F1121A es de tipo Flash, se puede programar repetidamente y tiene un convertidor A/D integrado. Especialmente diseñado para contadores inteligentes y dispositivos portátiles alimentados por batería. Las características del MSP430F1121A son las siguientes:
1) Núcleo RISC de 16 bits de alta eficiencia, estructura de instrucción optimizada de 16 bits, 27 instrucciones, tiempo de ciclo de instrucción de 125 ns, la mayoría de las instrucciones se pueden completar en 1 ciclo de reloj;
2) Fuente de alimentación de bajo voltaje de 1,8 ~ 3,6 V, con múltiples modos de ahorro de energía, consumo de energía extremadamente bajo y una batería que puede funcionar durante 10 años;
3) En comparación con otros microcontroladores, los microcontroladores con Flash pueden reducir el consumo de energía 5 veces, lo que no solo reduce el espacio de la placa de circuito sino que también reduce el costo del sistema;
4) El tiempo de inicio rápido de 6 μs puede extender el tiempo de espera y acelerar el inicio, reduciendo el consumo de energía de la batería;
5) Contiene ADC/ADC de pendiente rápido de 12 bits, que puede lograr una conversión A/D de pendiente de alta precisión con solo una resistencia externa y un condensador;
6) El chip es rico en recursos, incluidos ADC, PWM, varios TIME, puertos serie, guardianes, comparadores, señales analógicas y potentes funciones de interrupción;
7) Los productos de la serie SP430 pueden proporcionar una variedad de opciones de memoria, desde ADC de 14 bits hasta periféricos de señal mixta para circuitos de controlador LCD, simplificando el diseño de MSP430 en diversas aplicaciones;
8) Protección ESD, fuerte capacidad antiinterferente.
2.2 Controlador de decodificación y circuito de unidad de visualización
Para mostrar visualmente el estado operativo y los datos de funcionamiento del sistema digital, el módulo de visualización del sistema utiliza un tubo digital LED de cátodo común LG5011AH y un CD4511 como circuito de decodificación de pantalla. La señal binaria de entrada se traduce a números decimales mediante CD4511 y luego se muestra en el tubo digital, como se muestra en la Figura 3.
Termómetro digital basado en microcontrolador y DS18B20
D, C, B y A en la Figura 3 son terminales de entrada de código BCD, que están conectados respectivamente a los puertos de E/S correspondientes del controlador principal MSP430F1121A, un termómetro digital basado en el microcontrolador y DS18B20. BI es el terminal de función de supresión, LT es el terminal de prueba de lámpara y LE es el terminal de pestillo.
La computadora de un solo chip MSP430F1121A controla y procesa los datos medidos por DS18B20 y los transmite al CD4511 en forma de código 8421BCD. CD4511 convierte el código BCD en dígitos decimales y los envía al tubo digital para su visualización.
4. Componentes de hardware de detección de temperatura del sistema de alarma contra incendios.
El sistema de alarma contra incendios consta de AT89C51, circuito de reloj en tiempo real DS1302, circuito de teclado y pantalla, circuito de comunicación RS485, circuito de vigilancia compuesto por MAX813L, circuito de memoria serie E2PROM, etc. Usando múltiples sensores para medir la temperatura en diferentes habitaciones, puede establecer los límites superiores de alarma para diferentes habitaciones y realizar la visualización y alarma de las temperaturas correspondientes en varias habitaciones.
La composición del hardware del sistema de alarma contra incendios se muestra en la Figura 2.
Figura 2, Diagrama de composición del hardware del sistema de alarma contra incendios
5. Método de suministro de energía del sensor de temperatura digital con tecnología de bus de 1 cable
Hay dos tipos de fuentes de alimentación para DS18B20. Modo de fuente de alimentación externa y modo de fuente de alimentación parásita. El método de fuente de alimentación externa se muestra en la Figura 3. El pin VDD en la Figura 3 está conectado a la fuente de alimentación externa. El método de fuente de alimentación parásita no requiere una fuente de alimentación externa como se muestra en la Figura 4. Cuando se trabaja en modo de fuente de alimentación parásita, tanto VDD como GND están conectados a tierra. Muy útil cuando se requiere detección remota de temperatura y el espacio es limitado. En la Figura 3, cuando el bus 1-Wire está alto, DS18B20 "roba" energía del bus 1-Wire a través del pin DQ, y la carga robada suministra energía al bus. Cuando el bus está bajo, la carga almacenada en la capacitancia de suministro parásito alimenta el sensor. Cuando DS18B20 se utiliza en modo de fuente de alimentación parásita, VDD debe conectarse a tierra. Sin embargo, en el modo de fuente de alimentación parásita, cuando el DS18B20 realiza la conversión de temperatura y copia el contenido de la memoria del scratch pad a la EEPROM, la corriente de funcionamiento puede alcanzar 1,5 mA. Esta corriente puede hacer que el voltaje caiga significativamente e impedir que el sensor funcione correctamente. Para garantizar que el DS18B20 tenga suficiente corriente de suministro, se debe proporcionar un pull-up lo suficientemente fuerte en el bus al realizar la conversión de temperatura y copiar el contenido de la memoria del scratch pad a EEPROM. Se puede utilizar un tubo MOSFET para levantar el autobús, como se muestra en la Figura 4. Generalmente, cuando la temperatura detectada supera los 100°C, se recomienda no utilizar una fuente de alimentación parásita sino una fuente de alimentación externa. Porque a temperaturas tan altas, es imposible que el DS18B20 mantenga la comunicación de datos debido a la alta corriente de fuga. Por lo tanto, cuando las condiciones lo permitan, intente utilizar una fuente de alimentación externa.
Figura 3 Método de fuente de alimentación externa de DS18B20
Figura 4 Modo de fuente de alimentación parásita de DS18B20
6. Diagrama de flujo de procesamiento y recolección de temperatura.
El sistema de alarma contra incendios diseñado en base al microcontrolador AT89C51 utiliza un sensor de temperatura inteligente DS18B20. Después de leer correctamente el número de serie de 64 bits, se debe escribir un programa de lectura de temperatura de acuerdo con estrictos requisitos de tiempo. El microcontrolador debe seguir el flujo de comando de DS18B20 para controlar la conversión de temperatura de DS18B20. Primero, se ejecuta la secuencia de inicialización y luego el microcontrolador emite un comando de omisión de ROM (el código es CCH). Este comando está dirigido a todos los DS18B20 en línea. Luego, el microcontrolador emite un comando de inicio de conversión (código 44H) para iniciar DS18B20 y completar la conversión de temperatura. Para una resolución de 12 bits, se requiere un retraso de 750 ms. Luego se ejecuta la secuencia de inicialización y luego el microcontrolador emite un comando ROM de coincidencia (código 55H) y un número de serie de 64 bits en la línea de datos, y luego emite un comando de lectura de 9 bytes (código BEH). Puede leer la temperatura correcta correspondiente después de completar la conversión de temperatura del número de serie correspondiente del sensor de temperatura inteligente DS18B20. El diagrama de flujo de procesamiento y adquisición de temperatura basado en DS18B20 se muestra en la Figura 5.
Figura 5 Diagrama de flujo del programa de procesamiento y adquisición de temperatura DS18B20 basado en tecnología 1-Wire
7. Conclusión
El método tradicional de medición de temperatura es transmitir la señal analógica al circuito de muestreo para la conversión A/D. Para obtener una mayor precisión, es necesario resolver el problema de la conmutación de medición multipunto y la deriva del punto cero del circuito de amplificación. La aparición de sensores de temperatura digitales con tecnología de bus 1-Wire puede resolver mejor los problemas anteriores. La innovación del autor en este artículo es aplicar la tecnología de bus 1-Wire y diseñar un sistema de alarma contra incendios utilizando múltiples sensores de temperatura digitales. Se analizan el modo de suministro de energía del sensor y las características, y se explican los comandos ROM y los comandos de función del sensor de temperatura digital. Basado en AT89C51, se diseñan el circuito de visualización del reloj en tiempo real, el circuito de visualización del teclado, el circuito de memoria en serie, el circuito de comunicación RS485, el circuito de vigilancia, etc., y se explica el diagrama de composición del hardware del sistema de alarma contra incendios. Diseñé un diagrama de flujo para la adquisición de temperatura y escribí un programa para completar la visualización correcta de la temperatura. El sensor de temperatura DS18B20 con tecnología 1-Wire convierte la señal de temperatura directamente en una señal digital en serie para el procesamiento del microcontrolador. Se conectan varios sensores a una única interfaz de bus y la temperatura in situ se transmite directamente en un formato de bus digital para formar fácilmente un sistema distribuido de medición de temperatura multipunto. El uso de sensores de temperatura digitales con tecnología de bus 1-Wire reduce efectivamente los costos, haciendo que los sistemas de aplicación sean altamente confiables y con largas distancias de transmisión. Se ha utilizado ampliamente en sistemas de alarma contra incendios con medición distribuida de temperatura.
Aquí se propone un esquema de diseño para un pequeño sistema de medición de temperatura basado en el microcontrolador MSP430. El controlador principal utiliza el microcontrolador MSP430 y el sensor de temperatura digital DS18B20 está conectado al microcontrolador a través de un único bus (1 cable). El sistema tiene una estructura simple y una fuerte capacidad antiinterferente. Es adecuado para medir la temperatura in situ en entornos hostiles y se puede utilizar para medir la temperatura en almacenes, controlar el aire acondicionado de edificios y monitorear procesos de producción.
1. Diseño general del termómetro digital.
El sistema utiliza una microcomputadora de un solo chip como controlador principal del termómetro digital, un sensor de temperatura digital integrado como unidad de recopilación de información de temperatura y una pantalla LCD y sus componentes impulsores como unidad de visualización. El diagrama de bloques básico del sistema se muestra en la Figura 1.
Termómetro digital basado en microcontrolador y DS18B20
2. Composición del hardware
El controlador principal del sistema utiliza el microcontrolador MSP430F1121A de TI y el sensor de temperatura utiliza el sensor de temperatura digital integrado DS18B20 de DALLAS. Utilice 2 tubos digitales LED de cátodo común y 2 decodificadores CD4511 para realizar la visualización de la temperatura. El circuito de diseño general del sistema se muestra en la Figura 2.
Termómetro digital basado en microcontrolador y DS18B20
2.1 Controlador principal
MSP430F1121A tiene un diseño exclusivo de consumo ultrabajo con 5 modos de bajo consumo, lo que aporta una gran comodidad al diseño de instrumentos de bajo consumo. El microcontrolador MSP430F1121A es de tipo Flash, se puede programar repetidamente y tiene un convertidor A/D integrado. Especialmente diseñado para contadores inteligentes y dispositivos portátiles alimentados por batería. Las características del MSP430F1121A son las siguientes:
1) Núcleo RISC de 16 bits de alta eficiencia, estructura de instrucción optimizada de 16 bits, 27 instrucciones, tiempo de ciclo de instrucción de 125 ns, la mayoría de las instrucciones se pueden completar en 1 ciclo de reloj;
2) Fuente de alimentación de bajo voltaje de 1,8 ~ 3,6 V, con múltiples modos de ahorro de energía, consumo de energía extremadamente bajo y una batería que puede funcionar durante 10 años;
3) En comparación con otros microcontroladores, los microcontroladores con Flash pueden reducir el consumo de energía 5 veces, lo que no solo reduce el espacio de la placa de circuito sino que también reduce el costo del sistema;
4) El tiempo de inicio rápido de 6 μs puede extender el tiempo de espera y acelerar el inicio, reduciendo el consumo de energía de la batería;
5) Contiene ADC/ADC de pendiente rápido de 12 bits, que puede lograr una conversión A/D de pendiente de alta precisión con solo una resistencia externa y un condensador;
6) El chip es rico en recursos, incluidos ADC, PWM, varios TIME, puertos serie, guardianes, comparadores, señales analógicas y potentes funciones de interrupción;
7) Los productos de la serie SP430 pueden proporcionar una variedad de opciones de memoria, desde ADC de 14 bits hasta periféricos de señal mixta para circuitos de controlador LCD, simplificando el diseño de MSP430 en diversas aplicaciones;
8) Protección ESD, fuerte capacidad antiinterferente.
2.2 Controlador de decodificación y circuito de unidad de visualización
Para mostrar visualmente el estado operativo y los datos de funcionamiento del sistema digital, el módulo de visualización del sistema utiliza un tubo digital LED de cátodo común LG5011AH y un CD4511 como circuito de decodificación de pantalla. La señal binaria de entrada se traduce a números decimales mediante CD4511 y luego se muestra en el tubo digital, como se muestra en la Figura 3.
Módulo de detección de temperatura DS18B20 | Sensor de temperatura ds18b20 impulsado por esp32 |
Termómetro digital basado en microcontrolador y DS18B20
D, C, B y A en la Figura 3 son terminales de entrada de código BCD, que están conectados respectivamente a los puertos de E/S correspondientes del controlador principal MSP430F1121A, un termómetro digital basado en el microcontrolador y DS18B20. BI es el terminal de función de supresión, LT es el terminal de prueba de lámpara y LE es el terminal de pestillo.
La computadora de un solo chip MSP430F1121A controla y procesa los datos medidos por DS18B20 y los transmite al CD4511 en forma de código 8421BCD. CD4511 convierte el código BCD en dígitos decimales y los envía al tubo digital para su visualización.
4. Componentes de hardware de detección de temperatura del sistema de alarma contra incendios.
El sistema de alarma contra incendios consta de AT89C51, circuito de reloj en tiempo real DS1302, circuito de teclado y pantalla, circuito de comunicación RS485, circuito de vigilancia compuesto por MAX813L, circuito de memoria serie E2PROM, etc. Usando múltiples sensores para medir la temperatura en diferentes habitaciones, puede establecer los límites superiores de alarma para diferentes habitaciones y realizar la visualización y alarma de las temperaturas correspondientes en varias habitaciones.
La composición del hardware del sistema de alarma contra incendios se muestra en la Figura 2.
Figura 2, Diagrama de composición del hardware del sistema de alarma contra incendios
5. Método de suministro de energía del sensor de temperatura digital con tecnología de bus de 1 cable
Hay dos tipos de fuentes de alimentación para DS18B20. Modo de fuente de alimentación externa y modo de fuente de alimentación parásita. El método de fuente de alimentación externa se muestra en la Figura 3. El pin VDD en la Figura 3 está conectado a la fuente de alimentación externa. El método de fuente de alimentación parásita no requiere una fuente de alimentación externa como se muestra en la Figura 4. Cuando se trabaja en modo de fuente de alimentación parásita, tanto VDD como GND están conectados a tierra. Muy útil cuando se requiere detección remota de temperatura y el espacio es limitado. En la Figura 3, cuando el bus 1-Wire está alto, DS18B20 "roba" energía del bus 1-Wire a través del pin DQ, y la carga robada suministra energía al bus. Cuando el bus está bajo, la carga almacenada en la capacitancia de suministro parásito alimenta el sensor. Cuando DS18B20 se utiliza en modo de fuente de alimentación parásita, VDD debe conectarse a tierra. Sin embargo, en el modo de fuente de alimentación parásita, cuando el DS18B20 realiza la conversión de temperatura y copia el contenido de la memoria del scratch pad a la EEPROM, la corriente de funcionamiento puede alcanzar 1,5 mA. Esta corriente puede hacer que el voltaje caiga significativamente e impedir que el sensor funcione correctamente. Para garantizar que el DS18B20 tenga suficiente corriente de suministro, se debe proporcionar un pull-up lo suficientemente fuerte en el bus al realizar la conversión de temperatura y copiar el contenido de la memoria del scratch pad a EEPROM. Se puede utilizar un tubo MOSFET para levantar el autobús, como se muestra en la Figura 4. Generalmente, cuando la temperatura detectada supera los 100°C, se recomienda no utilizar una fuente de alimentación parásita sino una fuente de alimentación externa. Porque a temperaturas tan altas, es imposible que el DS18B20 mantenga la comunicación de datos debido a la alta corriente de fuga. Por lo tanto, cuando las condiciones lo permitan, intente utilizar una fuente de alimentación externa.
Figura 3 Método de fuente de alimentación externa de DS18B20
Figura 4 Modo de fuente de alimentación parásita de DS18B20
6. Diagrama de flujo de procesamiento y recolección de temperatura.
El sistema de alarma contra incendios diseñado en base al microcontrolador AT89C51 utiliza un sensor de temperatura inteligente DS18B20. Después de leer correctamente el número de serie de 64 bits, se debe escribir un programa de lectura de temperatura de acuerdo con estrictos requisitos de tiempo. El microcontrolador debe seguir el flujo de comando de DS18B20 para controlar la conversión de temperatura de DS18B20. Primero, se ejecuta la secuencia de inicialización y luego el microcontrolador emite un comando de omisión de ROM (el código es CCH). Este comando está dirigido a todos los DS18B20 en línea. Luego, el microcontrolador emite un comando de inicio de conversión (código 44H) para iniciar DS18B20 y completar la conversión de temperatura. Para una resolución de 12 bits, se requiere un retraso de 750 ms. Luego se ejecuta la secuencia de inicialización y luego el microcontrolador emite un comando ROM de coincidencia (código 55H) y un número de serie de 64 bits en la línea de datos, y luego emite un comando de lectura de 9 bytes (código BEH). Puede leer la temperatura correcta correspondiente después de completar la conversión de temperatura del número de serie correspondiente del sensor de temperatura inteligente DS18B20. El diagrama de flujo de procesamiento y adquisición de temperatura basado en DS18B20 se muestra en la Figura 5.
Figura 5 Diagrama de flujo del programa de procesamiento y adquisición de temperatura DS18B20 basado en tecnología 1-Wire
7. Conclusión
El método tradicional de medición de temperatura es transmitir la señal analógica al circuito de muestreo para la conversión A/D. Para obtener una mayor precisión, es necesario resolver el problema de la conmutación de medición multipunto y la deriva del punto cero del circuito de amplificación. La aparición de sensores de temperatura digitales con tecnología de bus 1-Wire puede resolver mejor los problemas anteriores. La innovación del autor en este artículo es aplicar la tecnología de bus 1-Wire y diseñar un sistema de alarma contra incendios utilizando múltiples sensores de temperatura digitales. Se analizan el modo de suministro de energía del sensor y las características, y se explican los comandos ROM y los comandos de función del sensor de temperatura digital. Basado en AT89C51, se diseñan el circuito de visualización del reloj en tiempo real, el circuito de visualización del teclado, el circuito de memoria en serie, el circuito de comunicación RS485, el circuito de vigilancia, etc., y se explica el diagrama de composición del hardware del sistema de alarma contra incendios. Diseñé un diagrama de flujo para la adquisición de temperatura y escribí un programa para completar la visualización correcta de la temperatura. El sensor de temperatura DS18B20 con tecnología 1-Wire convierte la señal de temperatura directamente en una señal digital en serie para el procesamiento del microcontrolador. Se conectan varios sensores a una única interfaz de bus y la temperatura in situ se transmite directamente en un formato de bus digital para formar fácilmente un sistema distribuido de medición de temperatura multipunto. El uso de sensores de temperatura digitales con tecnología de bus 1-Wire reduce efectivamente los costos, haciendo que los sistemas de aplicación sean altamente confiables y con largas distancias de transmisión. Se ha utilizado ampliamente en sistemas de alarma contra incendios con medición distribuida de temperatura.