

As the clock line changes from low to high (known as the rising edge of the clock pulse), a single bit of information - that will form in sequence the address of a specific device and a a command or data - is transferred from the board to the I2C device over the SDA line. The I2C protocol involves using two lines to send and receive data: a serial clock pin (SCL) that the Arduino Master board pulses at a regular interval, and a serial data pin (SDA) over which data is sent between the two devices. Using Arduino's I2C Wire Library, the digital pot will step through 64 levels of resistance, fading an LED. Code samples in the reference are released into the public domain.This example shows how to control a Analog Devices AD5171 Digital Potentiometer which communicates via the I2C synchronous serial protocol. The text of the Arduino reference is licensed under aĬreative Commons Attribution-ShareAlike 3.0 License. shift the value one bit to the right), yielding an address between 0 and 127.Ĭorrections, suggestions, and new documentation should be posted to the Forum.

If you have a datasheet or sample code that uses 8 bit address, you'll want to drop the low bit (i.e. The Wire library uses 7 bit addresses throughout. 7 bits identify the device, and the eighth bit determines if it's being written to or read from. There are both 7- and 8-bit versions of I2C addresses. Because of this, send() and receive() have been replaced with read() and write(). On the Arduino Mega, SDA is digital pin 20 and SCL is 21.Īs of Arduino 1.0, the library inherits from the Stream functions, making it consistent with other read/write libraries. On most Arduino boards, SDA (data line) is on analog input pin 4, and SCL (clock line) is on analog input pin 5. This library allows you to communicate with I2C / TWI devices.

Reference Language | Libraries | Comparison | Changes
