This example is for Wiring version 1.0 build 0100+. If you have a previous version, use the examples included with your software. If you see any errors or have comments, please let us know.

I2C Digital Potentiometer by Nicholas Zambetti and Shawn Bonkowski

Demonstrates use of the Wire library Controls AD5171 digital potentiometer via I2C/TWI On Wiring v1 boards the SCL and SDA pins are: 0 and 1 On Wiring S board the SCL and SDA pins are: 8 and 9

#include <Wire.h>

void setup()
{
  Wire.begin();  // join i2c bus (address optional for master)
}

byte val = 0;

void loop()
{
  Wire.beginTransmission(44);  // transmit to device #44 (0x2c)
                               // device address is specified in datasheet
  Wire.write(byte(0x00));      // sends instruction byte  
  Wire.write(val);             // sends potentiometer value byte  
  Wire.endTransmission();      // stop transmitting

  val++;         // increment value
  if (val == 64)  // if reached 64th position (max)
  {
    val = 0;     // start over from lowest value
  }
  delay(500);
}