I2C Digital Potentiometer
by Nicholas Zambetti <http://www.zambetti.com>
and Shawn Bonkowski <http://people.interaction-ivrea.it/s.bonkowski/>

Demonstrates use of the Wire library Controls AD5171 digital potentiometer via I2C/TWI

Created 31 March 2006
Revised 30 August 2007
 

   
// I2C Digital Potentiometer 
// by Nicholas Zambetti <http://www.zambetti.com> 
// and Shawn Bonkowski <http://people.interaction-ivrea.it/s.bonkowski/> 

#include <TwoWire.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.send(0x00);            // sends instruction byte  
  Wire.send(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); 
}