2006-10-08 10:51:39 +02:00
|
|
|
// 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
|
|
|
|
|
2010-02-24 04:47:42 +01:00
|
|
|
// This example code is in the public domain.
|
|
|
|
|
|
|
|
// This example code is in the public domain.
|
|
|
|
|
|
|
|
|
2006-12-02 21:45:04 +01:00
|
|
|
#include <Wire.h>
|
|
|
|
|
2006-10-08 10:51:39 +02:00
|
|
|
void setup()
|
|
|
|
{
|
|
|
|
Wire.begin(); // join i2c bus (address optional for master)
|
|
|
|
}
|
|
|
|
|
|
|
|
byte val = 0;
|
|
|
|
|
|
|
|
void loop()
|
|
|
|
{
|
|
|
|
Wire.beginTransmission(44); // transmit to device #44 (0x2c)
|
2013-10-21 09:58:40 +02:00
|
|
|
// device address is specified in datasheet
|
|
|
|
Wire.write(byte(0x00)); // sends instruction byte
|
|
|
|
Wire.write(val); // sends potentiometer value byte
|
2006-10-08 10:51:39 +02:00
|
|
|
Wire.endTransmission(); // stop transmitting
|
|
|
|
|
|
|
|
val++; // increment value
|
2013-10-21 09:58:40 +02:00
|
|
|
if (val == 64) // if reached 64th position (max)
|
2006-10-08 10:51:39 +02:00
|
|
|
{
|
|
|
|
val = 0; // start over from lowest value
|
|
|
|
}
|
|
|
|
delay(500);
|
|
|
|
}
|
|
|
|
|