Il tuo microcontrollore ha probabilmente un ADC (convertitore analogico -> digitale) ma ha un DAC (convertitore digitale -> analogico)??? Ora può! Questa scheda breakout presenta il DAC a 12 bit MCP4725 di facile utilizzo. Controllalo tramite I2C e inviagli il valore che vuoi che emetta, e il pin VOUT lo avrà. Ottimo per progetti audio/analogici, ad esempio quando non è possibile utilizzare PWM ma è necessaria un'onda sinusoidale o un punto di polarizzazione regolabile.
Rompiamo il pin ADDR/A0 in modo da poter collegare due di questi DAC su un bus I2C, basta legare quel pin di uno in alto per evitare conflitti. È inclusa anche un'intestazione a 6 pin, da utilizzare in una breadboard. Funziona sia con logica 3.3V che 5V.
Alcuni bei extra con questo chip: per i chip che hanno 3.4Mbps Fast Mode I2C (Arduino no) puoi aggiornare il Vout a ~ 200 KHz. C'è una EEPROM, quindi se scrivi la tensione di uscita, puoi "memorizzarla", quindi se il dispositivo viene spento e riacceso ripristinerà quella tensione. La tensione di uscita è rail-to-rail e proporzionale al pin di alimentazione, quindi se la si esegue da 3,3 V, l'intervallo di uscita è 0-3,3 V. Se lo esegui da 5 V, l'intervallo di uscita è 0-5 V.
Abbiamo una libreria e un tutorial Arduino di facile utilizzo con un esempio di output di onda triangolare e sinusoidale che può essere utilizzato con qualsiasi 'duino o portato su qualsiasi microcontrollore con host I2C. Il cablaggio è semplice: collega VDD al pin di alimentazione del microcontrollore (3-5 V), GND a terra, SDA a I2C Data (su Arduino Uno, questo è A4 su Mega è 20 e su Leonardo digital 2), Orologio da SCL a I2C (su Arduino Uno, questo è A5 su Mega è 21 e su Leonardo digital 3) e ascolta su VOUT.