I2C Selection questions

Hey folks!

I've only been tinkering and learning about arduino and programming for the past month, so forgive my relative in-experience with this question.

My question surrounds I2C addresses. Let's say I had my Controller, and multiple ports in which different I2C devices could be connected, (Temp sensors, tVoc sensors, etc.) Now, for instance, 2 or more of the same module are connected to the controller, both containing the same I2C address. Assume the module is a male connector, and the path to the board contains a female connector, and would just "slot in". Is there a way to either change the i2c address on the female side, either through hardware or software so that each female port was configured to a seperate I2c address, so multiple of the same module could be connected without conflict?

My assumption would be that there would need to be an intermediary step, something designed in each port to take the incoming I2c and output as a different address, prior to reaching the main controller. However, I am so green in this field that I may be WAYYYYY off base, or potentially overlooking a software solution?

Any help would be greatly appreciated. Resources, guides, training, even more so appreciated!

Hello

Welcome to the world's best Arduino forum ever.

Take a view here to gain the knowledge:

Have a nice day and enjoy coding in C++.


Welcome! Your assumptions are right on, when there is only one address for a device and several are needed there is the TCA9548 I2C Expansion Board offered by several vendors. You need a bit of caution as you already know the I2C buss needs pull up resistors. In that same line so do each of the added I2C busses; you may have to add pull up resistors for each of the added busses when using the TCA9548 I2C Expansion Board. I have seen some with the Pull up resistors but also some without.

Can you provide an example of two I2C Sensors/Devices that have same Slave Address (aka Device Address)? You are also requested to attach the data sheets to allow me to expain to you if their addresses are changeable.

The Controller does not have an address. If you have a Controller with two I2C ports, then you can indeed connect two modules with the same address, each on a separate port without an address conflict.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.