Adafruit MCP4725 Breakout Board - 12-Bit DAC w/I2C Interface
Your microcontroller probably has an ADC (analog -> digital converter) but does it have a DAC (digital -> analog converter)??? Now it can! This breakout board features the easy-to-use MCP4725 12-bit DAC. Control it via I2C and send it the value you want it to output, and the VOUT pin will have it. Great for audio / analog projects, such as when you can't use PWM but need a sine wave or adjustable bias point.
We break out the ADDR/A0 pin so you can connect two of these DACs on one I2C bus, just tie that pin of one high to keep it from conflicting. Also included is a 6-pin header, for use in a breadboard. Works with both 3.3V or 5V logic.
Some nice extras with this chip: for chips that have 3.4Mbps Fast Mode I2C (Arduino's don't) you can update the Vout at ~200 KHz. There's an EEPROM so if you write the output voltage, you can 'store it' so if the device is power cycled it will restore that voltage. The output voltage is rail-to-rail and proportional to the power pin so if you run it from 3.3V, the output range is 0-3.3V. If you run it from 5V the output range is 0-5V.
We have an easy-to-use Arduino library and tutorial with a triangle-wave and sine-wave output example that can be used with any 'duino or ported to any microcontroller with I2C host. Wiring it up is easy - connect VDD to your microcontroller power pin (3-5V), GND to ground, SDA to I2C Data (on the Arduino Uno, this is A4 on the Mega it is 20 and on the Leonardo digital 2), SCL to I2C Clock(on the Arduino Uno, this is A5 on the Mega it is 21 and on the Leonardo digital 3) and listen on VOUT.