I have a DS1307 clock set up simple-as-can-be, works fine with my Duemilanove but doesn't update/tick on my Mega. No changes in wiring, which I got here:
From the schematic it looks like the internal pullups are required for I2C
communication. Are you enabling the pullups on the Mega?
(* jcl *)
The mega uses different pins to handle the I2C, have you changed the wiring to account for that? They are pins 20 and 21.
Hey, you all rock!
I just moved the wires from A4 & A5, to SDA20 and SCL21. Poof, it works!
However, that's basically complete luck: I don't even know what I2C is.
OK, I just looked it up. The project I have been preparing to do was a data-logging web-serving one-wire system. I wonder if either 1) I should consider a I2C approach instead of one-wire, or 2) if I should consider something like the DS2482 I2C one-wire master to lighten the load on the arduino?
I realize this is unrelated: I'll post a new thread if it makes sense, after some more research. Just wondering about initial thoughts. In any case, thanks again! This is really fun stuff.
With I2C you have a much wider range of chips to choose from and communication is faster than a 1 Wire bus. Due to the built in hardware the load on an arduino is lighter with the I2C than the 1 wire.
Advantages for the 1 wire,
a) Devices can be parasitically powered from the bus.
b) Each individual device has it's own unique address (can be a disadvantage as well)
c) Limited number of devices use this system.
In my preliminary research, it seems like I2C would be good for local communication, but couldn’t really go far, no? It seems limited to a few meters (or at least I got that impression). The 1-wire can be pretty long.
The 1-wire can be pretty long.
Yes it can, you pay for that in speed of data transfer is it quite slow (in electronic terms).
Fortunately, for residential HVAC/Comfort monitoring and control, response times of minutes are still generally acceptable, which is glacial in electronic terms...