EFA:Protocols:I2C

The I2C communication protocol is very common in modern sensors and other parts. Whenever you see pins labeled as SDA and SCL, it means that you are dealing with a part that requires the use of the I2C protocol.

Matti’s Note:  I2C is supposed to be pronounced i-squared-c. Some people get really upset if you say i-two-c. So naturally, I normally say i-two-c and also usually write it as I2C.

Advantages of I2C:

  • You can send and receive lots of data with only two wires
  • You can connect multiple devices to the same I2C bus
  • Wiring the parts together is easy (usually, just 4 wires needed: power, ground, SDA SCL)

Disadvantages of I2C:

  • Can seem very complicated and overwhelming for beginners (but luckily you will usually find an Arduino library for all the parts that you are using)
  • It does not work over long distances (but there are ways to get around this using various extenders). In normal use, you should keep your wire lengths as short as possible (under 50 cm).

I2C + Arduino

Pretty much all Arduino compatible boards have the possibility to use the I2C bus. On the Arduino Uno the pins are:

  • A4 for SDA
  • A5 for SCL

The pins are also broken out on the digital pins row next to the AREF pin.

Qwiic Connectors and Parts

You have in your kit a Qwiic shield. It is a shield for the Arduino that has 4 Qwiic connectors that allow you to easily use I2C enabled sensors and other parts. It works the best when using sensors and other breakout boards that have the same connector, but you can also use any other I2C enabled sensors.

What is in the Kit?

MSA301 Triple Axis Accelerometer

See the Adafruit tutorial

TLV493D Triple-Axis Magnetometer

See the Adafruit tutorial

More Information