MCP4725 12Bit DA Wandler vom Arduino ansteuern

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.

MCP4725

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.

MCP4725 Oszi

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

3 Gedanken zu „MCP4725 12Bit DA Wandler vom Arduino ansteuern

  1. Pingback: #BlogBlick No. 1 | Plaintron Blog

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.