DS18X20 One-Wire Digital Temperature Sensor
DS1820 series is series of digital temperature sensor developed by Maxim Integrated. It uses one wire protocol. The master MCU accesses only one digital pin working in both direction. The slave ds18b20 has only three pins, two pins are supply voltage and one other is the data pin.Two ds18b20 package I possess. |
DS18B20 TO-92 package. VDD and GND are supply voltage. DQ is digital data pin. |
The DS18B20 is one of its family. It could sample the temperature data between -55 to +125 degree Celsius.
The physical packages are available in TO-92, SMD and a probe-type.
The temperature data is made of two 8-bit wide register giving a 16-bit temperature data. But it contain five signed bits. Temperature data has a 7-bit decimal and 4-bit fraction numbers.
S is signed indication |
For full technical specification I can not show the full detail here. We can see the full specification from the datasheet. For programming example, we can get it from the application note done by the manufacturer.
We can use multiple one wire devices on a single pin. Each device is identified by its 64-bit ROM ID.
Typically we need a pull-up resistor with a resistance between 4.7 k to 10 k Ohm depend on the data rate.
Programming in MikroC
MikroC is also available for 8051 devices family. It contains an extensive software and hardware libraries.
One wire library supports both ds18b20 and ds18s20. In MikroC it's called oneWire library. It contains some functions:
- Ow_Reset
- Ow_Read
- Ow_Write
We need these three functions to access to the one wire devices.
In this example, I use AT89C52 to read the temperature data from a ds18b20 and display it to the multiplexed SSD.
AT89C52 CPU clocks at 24 MHz. Display is connected to P2 and P3. A single ds18b20 is connected to P1.2. |
MikroC source code:
A negative temperature reading of -12.8 degree Celsius. |
Click here to download this example.
No comments:
Post a Comment