Funktionen der Library MyMCP4725
MyMCP4725 MyMCP4725
MyMCP4725 MyMCP4725(byte i2cAdd)
Funktion: Erzeugt eine neue Instanz
Parameter: i2cAdd: I2C-Adresse des Bauteils
MCP4725_I2CADD_DEFAULT : I2C-Adresse ohne Beschaltung von Pin A0 (= 0x62)
MCP4725_I2CADD_A0_VDD : I2C-Adresse mit Beschaltung von Pin A0 mit VDD (= 0x63)
Bemerkung: Ohne Angabe der I2C-Adresse wird die Default-Adresse 0x62 verwendet.
Beispiel:
MyMCP4725 DAC; //I2C-Adresse ist 0x62
MyMCP4725 DAC(MCP4725_I2CADD_A0_VDD); //I2C-Adresse ist 0x63
bool isReady(void)
Funktion: Überprüft, ob der DAC über die I2C-Schnittstelle ansprechbar ist
Parameter: keine
Rückgabe: TRUE, wenn Sensor ansprechbar ist, sonst FALSE
Bemerkung: Die Funktion prüft nur, ob in einem I2C-Bus der Bauteil ansprechbar bzw. vorhanden ist. Es wird vorausgesetzt, dass der I2C-Bus technisch prinzipiell funktioniert (keine offenen Busleitungen, Pullup-Widerstände richtig, kein Kurzschluss oder Masseschluss, etc.).
void setRefVoltage(float vRef)
Funktion: Setzen der Referenzspannung
Parameter: vRef: Referenzspannung [V]
Rückgabe: keine
Bemerkung: Der MCP4725 verwendet als Referenzspannung Vref die Versorgungsspannung VDD des DAC. Das bedeutet, dass Werte im DAC-Register (0 bis 4095) als Spannungswerte zwischen 0 V und Vref ausgegeben werden. Da die Library aber auch die Vorgabe des auszugebenen Spannungswertes in Volt ermöglicht, muss der Library der Referenzspannungswert bekannt sein. Standardmäßig sind in der Library dafür 5,0 V vorgegeben. Bei abweichender Versorgungsspannung oder zur Erhöhung der Genauigkeit bei der Berechnung des 12-Bit-DAC-Registerwertes aus dem Wert der auszugebenden Spannung kann die Referenzspannung daher vorgegeben werden.
Beispiel:
DAC.setVoltage(5.073); //Versorgungsspannung VDD des DAC
void setVoltageFast(int wert)
Funktion: Setzen des Wertes des DAC-Registers (= Ausgabe am Vout-Pin) im Fast-Mode, EEPROM bleibt unverändert
Parameter: wert: Ausgabewert als 12-Bit-Wert (0 <= wert <= 4095)
Rückgabe: keine
void setVoltageFast(float wert)
Funktion: Setzen des Wertes des DAC-Registers (= Ausgabe am Vout-Pin) im Fast-Mode, EEPROM bleibt unverändert
Parameter: wert: Ausgabewert als Spannung (0 V <= wert <= 5,000 V bzw. <= Referenzspg.)
Rückgabe: keine
void setVoltage(int wert)
void setVoltage(int wert, bool eepromWrite)
Funktion: Setzen des Wertes des DAC-Registers (= Ausgabe am Vout-Pin) im Normal-Mode, das EEPROM kann optional beschrieben werden
Parameter: wert: Ausgabewert als 12-Bit-Wert (0 <= wert <= 4095)
eepromWrite: MCP4725_WRITE_EEPROM: der Wert wird auch ins EEPROM geschrieben
MCP4725_NO_EEPROM: der Wert wird nicht ins EEPROM geschrieben
Rückgabe: keine
ACHTUNG!! Das EEPROM kann lt. Datenblatt ca. 1 Million mal beschrieben werden. Daher Vorsicht mit dem Einsatz von "WRITE_EEPROM"
Beispiel:
int wert = 2000;
DAC.setVoltage(wert); //Dert Wert wird nur ins DAC-Register geschrieben
DAC.setVoltage(wert, MCP4725_WRITE_EEPROM); //oder zusätzlich auch ins EEPROM
void setVoltage(float wert)
void setVoltage(float wert, bool eepromWrite)
Funktion: Setzen des Wertes des DAC-Registers (= Ausgabe am Vout-Pin) im Normal-Mode, das EEPROM kann optional beschrieben werden
Parameter: wert: Ausgabewert als Spannung (0 V <= wert <= 5,000 V bzw. <= Referenzspg.))
eepromWrite: MCP4725_WRITE_EEPROM: Der Wert wird auch ins EEPROM geschrieben
MCP4725_NO_EEPROM: Der Wert wird nicht ins EEPROM geschrieben
Rückgabe: keine
Bemerkung: Die Umrechnung der Ausgabespannung zum 12-Bit-Wert des DAC-Registers erfolgt standardmäßig mit einer Referenzspannung von 5,0 V. Weicht die Referenzspannung davon ab, kann diese mit der Funktion setRefVoltage() angepasst werden.
ACHTUNG!! Das EEPROM kann lt. Datenblatt ca. 1 Million mal beschrieben werden. Daher Vorsicht mit dem Einsatz von "MCP4725_WRITE_EEPROM"
Beispiel:
float wert = 2.5; //Einheit: Volt
DAC.setVoltage(wert); //Der Wert wird nur ins DAC-Register geschrieben
DAC.setVoltage(wert, MCP4725_WRITE_EEPROM); //oder zusätzlich auch ins EEPROM
unsigned int readRegister()
Funktion: Auslesen des Inhalts aus dem DAC-Register
Parameter: keine
Rückgabe: Inhalt des DAC-Register
unsigned int readEEPROM()
Funktion: Auslesen des Inhalts des EEPROMs
Parameter: keine
Rückgabe: Defaultwert (=0x800) oder letzter im EEPROM gespeicherter DAC-Wert
bool mode(byte mode)
Funktion: Setzen des Modus des DAC auf Normalbetrieb oder Schlafmodus (Power-Down-Modus)
Parameter: mode: MCP4725_NORMAL_MODE: Normalmodus (Default-Einstellung)
Power-Down-Modus:
MCP4725_POWER_DOWN_1K : Vout-Pin über 1 kOhm auf Masse
MCP4725_POWER_DOWN_100K: Vout-Pin über 100 kOhm auf Masse
MCP4725_POWER_DOWN_500K: Vout-Pin über 500 kOhm auf Masse
Rückgabe: TRUE, wenn mode richtig gesetzt wurde, sonst FALSE
Beispiel:
DAC.setMode(MCP4725_POWER_DOWN_1K);