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
uno-18b20-7.zip (5.87 KB)