I have several sensors (Grove multichannel gas sensor, Air Pressure Sensor MPX4115A, Temperature and Humidity Sensor DHT11) where most of them uses I2C communication. I wonder if it is possible to read all of them using the I2C communication on a single Arduino board?

2 Answers 2


It is possible to use multiple I²C devices, all is needed is for each one to have a different address and the ability to set up the wiring(the other answer points to wriring info).

Of the sensors you listed only one is an I2C device(Grove sensor).

The DHT11 uses a single digital wire to communicate and the air pressure sensor is an analog device. Although you do mention having several devices, the only thing you need to be sure of is if there are no address conflicts, i.e. there being two devices with the same address on the I²C bus.

If address conflicts are an issue most devices provide a way of changing that address, often there are solder jumpers on the board. This allows you to change a devices address to a unique one.


Should be easy enough. Do you already know how to connect and communicate with one I2C device? If so, connecting multiple should be simply a case of connecting them in parallel.

If you don't know how to communicate with a single I2C device, then...

For the Arduino software you can use Wire to talk to devices over I2C.

For the hardware, connect the I2C clock and data lines from the Arduino to the I2C devices. More on that here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.