La Red de Conocimientos Pedagógicos - Currículum vitae - ¿Cómo funciona ds18b20?

¿Cómo funciona ds18b20?

DS18B20 es un sensor de temperatura digital que utiliza el protocolo de comunicación 1-Wire y puede transmitir datos a través de un único bus.

El DS18B20 utiliza un termistor para medir la temperatura. El termistor es un tipo especial de resistencia cuya resistencia cambia con la temperatura. También hay un sensor de temperatura dentro del DS18B20, que puede medir la temperatura interna y convertirla en una señal digital.

Cuando el DS18B20 está conectado a la alimentación, automáticamente toma medidas de temperatura y almacena los resultados en su memoria interna. Luego, los resultados se transmiten a un microcontrolador u otro sistema a través del protocolo 1-Wire.

DS18B20 admite múltiples sensores trabajando en una línea, distinguidos por un código de identificación único de 64 bits.

Características adicionales:

Rango de temperatura de funcionamiento: -55~ +125 grados Celsius

Alta precisión: ±0,5 grados Celsius

Admite múltiples rangos de temperatura (9-12 bits)

Bajo consumo de energía, la corriente de espera es aproximadamente 1uA

La velocidad de transferencia de datos es de hasta 1 Mbps

DS18B20 se comunica con el microcontrolador a través del protocolo 1-Wire. El protocolo 1-Wire es un protocolo de comunicación de un solo cable simple y de bajo costo que permite la transferencia de datos entre microcontroladores y sensores.

Proceso de comunicación:

El microcontrolador envía un comando de conversión de temperatura en el bus y solicita al DS18B20 que realice la medición de temperatura.

Tras recibir el comando, el DS18B20 realiza una medición de temperatura y almacena los resultados en su memoria interna.

El microcontrolador envía un comando de lectura de datos para solicitar al DS18B20 que envíe los datos de temperatura almacenados al microcontrolador.

Después de recibir el comando, DS18B20 envía los datos de temperatura almacenados al microcontrolador a través del bus.

Después de que el microcontrolador recibe los datos de temperatura, los convierte en un valor de temperatura en unidades físicas mediante conversión de software.

DS18B20 también tiene las características de alta precisión y alta sensibilidad, y se puede utilizar en varios escenarios de control y monitoreo de temperatura.

DS18B20 puede funcionar de dos maneras: modo de sondeo y modo de interrupción. .

Modo de sondeo: El microcontrolador consulta periódicamente al sensor el valor de temperatura actual. Este método es simple y fácil de usar, pero consume más recursos de CPU.

Modo de interrupción: El microcontrolador espera la señal de interrupción del DS18B20. Cuando el DS18B20 completa la medición de temperatura y almacena los resultados, envía una señal de interrupción para notificar al microcontrolador. Este método puede reducir el consumo de recursos de la CPU.

DS18B20 también admite múltiples sensores trabajando en el mismo bus y puede usar operaciones ROM para identificar y seleccionar diferentes sensores.

DS18B20 es un sensor de temperatura muy popular. Es simple y fácil de usar, tiene bajo consumo de energía, alta precisión, multifunción y tiene muchas bibliotecas listas para usar.

DS18B20 se puede utilizar a través de varios microcontroladores y microcontroladores, como Arduino, Raspberrypi, STM32, PIC, etc.

Antes de utilizar DS18B20, es necesario configurar la interfaz de comunicación 1-Wire en el microcontrolador o microcontrolador. La interfaz 1-Wire se puede implementar de forma serie o paralela.

Por lo general, se requieren bibliotecas específicas para acceder al DS18B20. Estas bibliotecas pueden proporcionar interfaces simples y fáciles de usar para leer valores de temperatura. La biblioteca proporciona muchas funciones para leer valores de temperatura, configurar, operar sensores, etc.

Por ejemplo, para usar Arduino para leer el valor de temperatura de DS18B20, primero debe conectar DS18B20 a la placa Arduino y luego use la biblioteca OneWire y la biblioteca DallasTemperature para implementar la comunicación y la operación.

El código es aproximadamente el siguiente

`C++

#include

#include

//Datawireisconnectedtopin2ontheArduino

#defineONE_WIRE_BUS2

//Configura una instancia de OneWire para comunicarse con cualquier dispositivo OneWire (no solo los IC de temperatura de Maxim/Dallas)

OneWireoneWire(ONE_WIRE_BUS);

//Pasa nuestra referencia de OneWire a la temperatura de Dallas.

Sensores de temperatura de Dallas (oneWire) );

voidsetup()

{

Serial.begin(9600);

//Startupthelibrary

sensors. begin();

}

voidloop()

{

//callsensors.requestTemperatures()paraemitirunatemperaturaglobal

//solicitaratodoslosdispositivosenelbus

sensors.requestTemperatures();

//Enviarcomandoparaobtenertemperaturas

floattempC=sensors.getTempCByIndex(0);

//imprime la temperatura en el monitor serie

Serial.print(Temperatureis:);

Serial.print(tempC);

Serial.println(Celsius);

delay(1000);

}

`

Cabe señalar que las conexiones de pines del DS18B20 pueden diferir de un proveedor a otro. Proveedor generalmente es necesario consultar la hoja de datos para comprender el método de conexión.