I have been working on a project that requires sampling from multiple sensors on a single Arduino board. Specifically, the Arudino board I am using is the Arduino Ethernet from Adafruit. We have 3 sensors which all use I2C to communicate to the Arduino Ethernet. To hold these 3 sensors, I use 2 prototype boards, with one sensor on one prototype board (denote as Proto-A) and the remaining 2 sensors on the other prototype board (denote as Proto-B). When I connect Proto-A to the Arduino Ethernet without Proto-B, there is no problem at all and I can see the sensor readings from the serial monitor. Same good thing happens when connect Proto-B to the Arduino Ethernet without Proto-A. However, when I put Proto-B on top of Proto-A and plug Proto-A into the Arduino Ethernet, no outputs are shown in the serial monitor. Does anybody know why this happens and how could I solve this problem? Many thanks.
I am sure that all these 3 sensors have their unique I2C addresses. So no address conflicts for sure. I am not sure if my pull-up resistor is right. How to determine whether the value of pull-up resistor is correct? I use 10K ohm because it is what people normally use. Please guide me if I am wrong... Thanks.
"disable Arduino internal pullups"
Keeps the 2 lines from getting pulled up to 5V internally, only want 3.3v.
All the devices use open drain or open collector to pull the lines low, and pullup brings the line back high.
The more things connected the slower the lines go from low to high.
Need lower resistor value for snappier pull up to keep data rates high.