MCP3021

Dependents:   Telliskivi2_2014

Committer:
Reiko
Date:
Tue Sep 02 15:34:15 2014 +0000
Revision:
0:423652b49d07
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Reiko 0:423652b49d07 1 #ifndef MCP3021_H
Reiko 0:423652b49d07 2
Reiko 0:423652b49d07 3 #define MCP3021_H
Reiko 0:423652b49d07 4
Reiko 0:423652b49d07 5 #include "mbed.h"
Reiko 0:423652b49d07 6
Reiko 0:423652b49d07 7 #define MCP3021_CONVERSE 0x9B //10011011 NOTE IT ENDS IN 1, this is the READ ADDRESS. This is all this device does.
Reiko 0:423652b49d07 8 //It opens a conversation via this specific READ address
Reiko 0:423652b49d07 9
Reiko 0:423652b49d07 10 //Library for the MCP3021 12 BIT ADC.
Reiko 0:423652b49d07 11
Reiko 0:423652b49d07 12 class MCP3021
Reiko 0:423652b49d07 13 {
Reiko 0:423652b49d07 14 public:
Reiko 0:423652b49d07 15
Reiko 0:423652b49d07 16 /*
Reiko 0:423652b49d07 17 Creates instance
Reiko 0:423652b49d07 18 Connect module using I2C port pins sda and scl. The output is referenced to the supply voltage which can be
Reiko 0:423652b49d07 19 2.7v to 5.0v. The read will return the correct voltage, if you supply the correct supplyVoltage when instantiating.
Reiko 0:423652b49d07 20 */
Reiko 0:423652b49d07 21 MCP3021(PinName sda, PinName scl, float supplyVoltage);
Reiko 0:423652b49d07 22
Reiko 0:423652b49d07 23 /*
Reiko 0:423652b49d07 24 Destroys instance.
Reiko 0:423652b49d07 25 */
Reiko 0:423652b49d07 26 ~MCP3021();
Reiko 0:423652b49d07 27
Reiko 0:423652b49d07 28 /*
Reiko 0:423652b49d07 29 Reads the analog register of the MCP3021 and converts it to a useable value. (a voltage)
Reiko 0:423652b49d07 30 */
Reiko 0:423652b49d07 31 float read();
Reiko 0:423652b49d07 32
Reiko 0:423652b49d07 33 private:
Reiko 0:423652b49d07 34
Reiko 0:423652b49d07 35 I2C i2c;
Reiko 0:423652b49d07 36 float _supplyVoltage;
Reiko 0:423652b49d07 37 char _data[2];
Reiko 0:423652b49d07 38
Reiko 0:423652b49d07 39 };
Reiko 0:423652b49d07 40
Reiko 0:423652b49d07 41 #endif