Hi, i’m using the OneWire library and i have been able to string numerous DS18B20’s together (like 15) and have had no problems getting readings from them when using the ‘normal’ 3 pin’s.
I adapted the official Onewire library and am using my own class as a thin wrapper.
However, i wish to use parasitic power to power the temperature sensors. So reading the datasheet, my noobie skills tell me that in order to wire this up, i should short the ground and Vdd wires together on the sensor; such that the diagram on the official electric imp onewire page would have the two outer legs both connect to ground, whilst leaving everything the same. i do not use the mosfet as recommended.
So i power up my imp with the temperature sensor in parasitic mode, and my discover() function appears to find the temperature sole sensor… yippee! i think… but then i notice that the temperature reading is always 85C. as soon as i recable the circuit to use the full three wires, the sensor reads the correct temperature.
so i add a function to get the “Read Power Supply” [B4h] of the sensor… but it always seems to return true. what am i doing wrong? have i wired the sensor incorrectly? do i simply need the mosfet? (any recommendations?)
i also know that i’m supposed to “keep a strong pullup on the 1-wire bus” during conversions… how do i do that?
i ended up putting a 1k3 resistor in and i can now get correct readings from a short piece of wire.
@Hugo: i wanted to avoid extra circuitry if possible in order to simplify the deployment (i will have 1000+ sensors in this environment). i do have a handful of the DS2482’s in case i can’t get the software only solution to work well.
Yeah, the more sensors i’m putting per wire, the lower the resistor value, e.g. i’m on 5 sensors at the moment on one uart line, and i’m using a 130ohm resistor. i’m hoping to get this to around 8 or 9 ds18b20’s per line; i suspect a ds2482 might be in order.
The maximum rated sink current for the imp IOs is 4ma, which means you should not use less than a 825Ω resistor at 3.3V if you want to stay in spec. The pins will sink more current than that but there may be impacts to the system and I wouldn’t recommend it.