Der Microchip MCP 4725 Digital zu Analog Wandler wird über den I²C Bus angesteuert. Er kann die Spannungen von GND bis VCC ausgeben mit einer 12 Bit Auflösung oder 4096 Werten. Bei 5V Versorgungsspannung ist das eine Auflösung von ca. 1,2 mV pro Bit.
Die Ansteuerung ist einfach mit 2 Leitungen zu bewerkstelligen
A4 > SDA
A5 > SCL
Dann noch die 5V Spannungsversorgung
5V > VCC
GND > GND
Und am Ausgang zu Masse steht das Analogsignal zur Verfügung.
Hier das Programm
// MCP4725 DA Wandler Sinus Kurve ausgeben // Anschluss A4 > SDA, A5 > SCL // Auflösung max. 1,2 mV bei 5V // // Matthias Busse vom 21.7.2015 Version 1.1 #include < Wire.h> #define MCP4725 96 // Adresse 96 oder 97, wie Brücke int dawert=0, pos=0, stuetzpunkte=64; // Anzahl der Stützpunkte festlegen double schritt; void setup() { Wire.begin() ; schritt = 360.0 / stuetzpunkte; // Die Schrittweite in Grad } void loop(){ if(pos >= stuetzpunkte) pos=0; // 0 bis stuetzpunkte-1 dawert=(int)2047.0*(1+sin(schritt*pos*PI/180.0)); // 0 bis 4095 pos++; writemcp4725(dawert); } void writemcp4725(int wert) { // Analog Wert 0 bis 4095 Wire.beginTransmission(MCP4725); Wire.write(64); // Kommando Update DAC Wire.write(wert >> 4); // die 8 höherwertigen Bits Wire.write((wert & 15) << 4); // die 4 niederwertigen Bits Wire.endTransmission(); }
Software: Arduino 1.6.1
Hardware: Arduino Nano, GY4725 Platine mit MCP4725 DA Wandler
von Matthias Busse
Pingback: #BlogBlick No. 1 | Plaintron Blog
Und was kann man damit konkret machen? Außer Digital zu Analog Wandeln? Paar nützliche Praxisbeispiele
Tolle Anleitung . Hat sofort funktioniert.
Vielen Dank dafür.
Ich will damit Schallauslöschung betreiben
Gruß miralogo