This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Arduino I2C Interface

I2C, or Inter-Integrated Circuit, is a chip-to-chip protocol for communicating with low-speed peripherals. MATLAB® Support Package for Arduino® Hardware includes the I2C library, which creates an interface to communicate with I2C devices. Each Arduino board has specific pins for the I2C interface. Refer to your hardware specifications to locate the correct pins.

You can use I2C devices in many applications, including:

  • Real-time clocks

  • Digital potentiometers

  • Temperature sensors

  • Digital compasses

  • Memory chips

  • FM radio circuits

  • Input/output expanders

  • LCD controllers

  • Amplifiers


To create a custom I2C code, see Create Custom Arduino Add-On Device, Library, or Code

Arduino devices have one or two I2C buses. Each bus has an I2C Master connected to two bidirectional lines, serial data line (SDA) and serial clock (SCL). These two lines are connected to a pair of pins on the hardware. You can connect multiple I2C devices, such as ADCs, LCDs, and sensors, to the I2C pins on the Arduino hardware. Each I2C device on an I2C bus must have a unique address. Most devices have a default address assigned by the manufacturer. If the address is not unique, refer to the device data sheet and reconfigure the address. Often, you can reconfigure the address using a pair of jumpers on the device. MATLAB Support Package for Arduino Hardware supports only 7-bit addressing.

For more information on Arduino I2C devices see