//MyMCP3421.h #ifndef MyMCP3421_h #define MyMCP3421_h #define defined_ATtiny (defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) || defined(__AVR_ATtiny84__)) #if defined_ATtiny #include "TinyWireM.h" #define Wire TinyWireM #else #include #endif #define MCP3421_I2CADD_DEFAULT 0x68 //Bit-Nummer und -Bezeichnung MCP3421-Config-Register #define MCP3421_G0 0x00 //PGA Gain #define MCP3421_G1 0x01 //PGA Gain #define MCP3421_S0 0x02 //Sample Rate #define MCP3421_S1 0x03 //Sample Rate #define MCP3421_OC 0x04 //Conversion Mode #define MCP3421_RDY 0x07 //Ready Bit //MCP3421 Modus #define MCP3421_MODE_SINGLESHOT 0 #define MCP3421_MODE_CONTINUOUS 1 //Default-Wert //MCP3421 PGA-Einstellung (Programmable Gain Amplifier) #define MCP3421_PGA_2P048 0b00 //Default-Wert #define MCP3421_PGA_1P024 0b01 #define MCP3421_PGA_0P512 0b10 #define MCP3421_PGA_0P256 0b11 //MCP3421 Daten-Rate (SPS - Samples Per Second) //Die Library unterstuetzt nur die Datenrate von 3.75 SPS, 18 Bit Auflösung //#define MCP3421_RATE_240 0b00 //240 SPS, 12 Bit Aufloesung, Default-Wert //#define MCP3421_RATE_60 0b01 //60 SPS, 14 Bit Aufloesung //#define MCP3421_RATE_15 0b10 //15 SPS, 16 Bit Aufloesung #define MCP3421_RATE_3P75 0b11 //3.75 SPS, 18 Bit Aufloesung //Bit-Wertigkeit in µV bei Aufloesung von 18 Bit in Abhaengigkeit des PGA #define MCP3421_LSB_2P048 15.625 #define MCP3421_LSB_1P024 7.8125 #define MCP3421_LSB_0P512 3.90625 #define MCP3421_LSB_0P256 1.953125 #include "Arduino.h" class MyMCP3421 { public: MyMCP3421(void); MyMCP3421(byte); bool isReady(void); void init(void); void setGain(byte); byte getGain(void); void setMode(bool); byte getMode(void); void startSingleMeas(void); bool conversionReady(void); long readConversion(void); float readVoltage(void); void printConfigReg(void); private: void setRate(byte); void readRegister(void); void writeRegister(byte); byte _i2cAdd; float bitNumbering; byte configReg; long conversionReg; }; #endif