Demystification of 1-Wire® commands |
![]() |
Written by Jurij Mikeln |
Let us briefly see how 1-Wire components perform. In Figure 1 you can see a typical connection of a 1-Wire component. Although 1-Wire elements can work normally with only 2 pins – one pin is connected to GND and the other communicates with microcontroller, I recommend using the 3-pin configuration as seen in Figure 1. The reason is that addressing a 1-Wire element using only one wire (besides ground) will take more of the processor’s time. In the case of long wires, I recommend schematic diagram shown in Figure 2, where you see the protection elements like capacitors and protective diodes. The most well-known and commonly used 1-Wire element is certainly the DS18S20 thermometer. It’s popular because one can connect it to a microcontroller easily, it’s reliable and cheap. In addition, the DS18S20 has a digital output and many sensors can be connected in parallel on same wire. Most of you already know the basic 1-Wire commands for reading temperature from one sensor: 1wreset
1wwrite &HCC ‘ignore ROM
1wwrite &H44 ‘convert temp.
Wait 1
1wreset ‘reset 1-Wire bus
1wwrite &HCC ‘ignore ROM
1wwrite &HBE ‘read Scratchpad
T = 1wread(2) ‘read 2 bytes
1wreset ‘reset 1-Wire bus
T = T / 2
Cls : Lcd “T = “ ; _
T ; “C ‘display on LCD
Part of this program will display the current temperature that was measured with the DS18S20. Temperature is stored in the variable T. The DS18S20 is being addressed with 1-Wire statements, which instruct the sensor what we want from it. I’ll assume that the comments are self explanatory. Only the Ignore ROM comment may need some explanation. The DS18S20 has a unique address (ID number) factory-programmed into it which is unique in the World – there are no two sensors with the same ID number! This address is stored within the sensor’s ROM. If we do not require this ID information, then we needn’t bother reading it, and that’s what Ignore ROM means. This example can be found in program 1Wire_1.bas. If, however, there are more 1-Wire sensors on the 1-Wire bus then we have to read the IDs of each sensor on the bus, which makes the program a bit longer, but still short enough to be understood. Demystification of 1-Wire® commands ![]() Shop area |
Last Updated on Wednesday, 01 August 2012 14:38 |