Go Down

Topic: using Arduino as 1 wire slave  (Read 575 times) previous topic - next topic


I have emulated the DS2423 , ds18b20, ds2450 using PIC12F1822 @30mhz clock, and these have worked
quite well, using LINKUSB [DS9097U]  interface, W10 runnibg IBview32, or OneWireViewer.

I decided to try to get the Arduino uno to emulate these devices ,

I started with the ds2450 but have ran into a roadblock,  IBview32 will display analog channels [wrong values and contaminates scratchpad date], Onewireviewer won't display analog channels, but will read
the scratch pad and I can write scratchpad most of the time [sometimes burp clobbers scratchpad]..

I decided to try DS18b20 Temperature sensor , simpler code , 8 bit crc
IBview32 appears to work properly, after adding 0x64 as a convert command , which IBview32 appears to be issuing instead of 0x44 .

OneWireViewer displays the address fine , but will not display temperature [sawtooth waveform updated every convert time]   

I have changed bit timing many flavors to no avail....
I have onewirehub.h - no success    onewireslave.h no success 
    [ I suspect that none of libs will work with IBview32 or OneWireViewer, but may be wrong ]

I have written a Liberty basic pgm to read temp , it appears to work ok.

The LINKUSB [ approx 35$ ] is feed serial ascii at 9600 baud [ supports upto 57600] and is working quite well with Logviewer and 7 sensors from 2 parrallel busses  Fed directly from LINKUSB.

bus1 16 feet to attic furnace [radial point] a>attic temperature b>supply temp c>return  temp
bus2  18 feet AC to wall [ radial point ] thru wall a>liquid b>suction c>air in d>exhaust
I have 5% error rate.

I like testing with IBview32 and OneWireViewer [supplied by Maxim] the seem to verify dallas/maxim devices work ....

Attached is my latest 18b20 code that works with IBview32   DQ is pin 7  on UNO


Go Up