library HTU21D results in float

Dependents:   HTU21D_HELLOWORLD Major_dHome

Fork of HTU21D by Alex Lipford

Committer:
Guillaume31
Date:
Tue Mar 31 15:19:15 2015 +0000
Revision:
3:b2ef34462ac2
Parent:
2:4fd07be6bad8
Library for HTU21D (result in float)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hwing91 0:db86ad1b4459 1 /**
alipford3 2:4fd07be6bad8 2 * @author Alex Lipford
alipford3 2:4fd07be6bad8 3 * Georgia Institute of Technology
alipford3 2:4fd07be6bad8 4 * ECE 4180 Embeded Systems Design
hwing91 0:db86ad1b4459 5 * Professor Hamblen
alipford3 2:4fd07be6bad8 6 * 10/19/2014
hwing91 0:db86ad1b4459 7 *
hwing91 0:db86ad1b4459 8 * @section LICENSE
hwing91 0:db86ad1b4459 9 * ----------------------------------------------------------------------------
hwing91 0:db86ad1b4459 10 * "THE BEER-WARE LICENSE" (Revision 42):
alipford3 2:4fd07be6bad8 11 * <alexlipford@gmail.com> wrote this file. As long as you retain this notice you
hwing91 0:db86ad1b4459 12 * can do whatever you want with this stuff. If we meet some day, and you think
hwing91 0:db86ad1b4459 13 * this stuff is worth it, you can buy me a beer in return.
hwing91 0:db86ad1b4459 14 * ----------------------------------------------------------------------------
hwing91 0:db86ad1b4459 15 *
hwing91 0:db86ad1b4459 16 *
hwing91 0:db86ad1b4459 17 * @section DESCRIPTION
hwing91 0:db86ad1b4459 18 *
hwing91 0:db86ad1b4459 19 * Honeywell HTU21D Humidity and Temperature sensor.
hwing91 0:db86ad1b4459 20 *
hwing91 0:db86ad1b4459 21 * Datasheet, specs, and information:
hwing91 0:db86ad1b4459 22 *
hwing91 0:db86ad1b4459 23 * https://www.sparkfun.com/products/12064
hwing91 0:db86ad1b4459 24 */
hwing91 0:db86ad1b4459 25
hwing91 0:db86ad1b4459 26 #ifndef HTU21D_H
hwing91 0:db86ad1b4459 27 #define HTU21D_H
hwing91 0:db86ad1b4459 28
hwing91 0:db86ad1b4459 29 /**
hwing91 0:db86ad1b4459 30 * Includes
hwing91 0:db86ad1b4459 31 */
hwing91 0:db86ad1b4459 32 #include "mbed.h"
hwing91 0:db86ad1b4459 33
hwing91 0:db86ad1b4459 34 /**
hwing91 0:db86ad1b4459 35 * Defines
hwing91 0:db86ad1b4459 36 */
hwing91 0:db86ad1b4459 37 // Acquired from Datasheet.
hwing91 0:db86ad1b4459 38
hwing91 0:db86ad1b4459 39 #define HTU21D_I2C_ADDRESS 0x40
hwing91 0:db86ad1b4459 40 #define TRIGGER_TEMP_MEASURE 0xE3
hwing91 0:db86ad1b4459 41 #define TRIGGER_HUMD_MEASURE 0xE5
hwing91 0:db86ad1b4459 42
hwing91 0:db86ad1b4459 43
hwing91 0:db86ad1b4459 44 //Commands.
hwing91 0:db86ad1b4459 45 #define HTU21D_EEPROM_WRITE 0x80
hwing91 0:db86ad1b4459 46 #define HTU21D_EEPROM_READ 0x81
hwing91 0:db86ad1b4459 47
hwing91 0:db86ad1b4459 48
hwing91 0:db86ad1b4459 49 /**
hwing91 0:db86ad1b4459 50 * Honeywell HTU21D digital humidity and temperature sensor.
hwing91 0:db86ad1b4459 51 */
hwing91 0:db86ad1b4459 52 class HTU21D {
hwing91 0:db86ad1b4459 53
hwing91 0:db86ad1b4459 54 public:
hwing91 0:db86ad1b4459 55
hwing91 0:db86ad1b4459 56 /**
hwing91 0:db86ad1b4459 57 * Constructor.
hwing91 0:db86ad1b4459 58 *
hwing91 0:db86ad1b4459 59 * @param sda mbed pin to use for SDA line of I2C interface.
hwing91 0:db86ad1b4459 60 * @param scl mbed pin to use for SCL line of I2C interface.
hwing91 0:db86ad1b4459 61 */
hwing91 0:db86ad1b4459 62 HTU21D(PinName sda, PinName scl);
hwing91 0:db86ad1b4459 63
hwing91 0:db86ad1b4459 64
hwing91 0:db86ad1b4459 65 //Samples the temperature, input void, outputs an int in celcius.
Guillaume31 3:b2ef34462ac2 66 float sample_ctemp(void);
hwing91 0:db86ad1b4459 67
hwing91 0:db86ad1b4459 68 //Samples the temperature, input void, outputs an int in fahrenheit.
Guillaume31 3:b2ef34462ac2 69 float sample_ftemp(void);
hwing91 0:db86ad1b4459 70
hwing91 0:db86ad1b4459 71 //Samples the temperature, input void, outputs an int in kelvin.
Guillaume31 3:b2ef34462ac2 72 float sample_ktemp(void);
hwing91 0:db86ad1b4459 73
hwing91 0:db86ad1b4459 74 //Samples the humidity, input void, outputs and int.
Guillaume31 3:b2ef34462ac2 75 float sample_humid(void);
hwing91 0:db86ad1b4459 76
hwing91 0:db86ad1b4459 77
hwing91 0:db86ad1b4459 78
hwing91 0:db86ad1b4459 79 private:
hwing91 0:db86ad1b4459 80
hwing91 0:db86ad1b4459 81 I2C* i2c_;
hwing91 0:db86ad1b4459 82
hwing91 0:db86ad1b4459 83 /**
hwing91 0:db86ad1b4459 84 * Write to EEPROM or RAM on the device.
hwing91 0:db86ad1b4459 85 *
hwing91 0:db86ad1b4459 86 * @param EepromOrRam 0x80 -> Writing to EEPROM
hwing91 0:db86ad1b4459 87 * @param address Address to write to.
hwing91 0:db86ad1b4459 88 * @param data Data to write.
hwing91 0:db86ad1b4459 89 */
hwing91 0:db86ad1b4459 90 void write(int EepromOrRam, int address, int data);
hwing91 0:db86ad1b4459 91
hwing91 0:db86ad1b4459 92 /**
hwing91 0:db86ad1b4459 93 * Read EEPROM or RAM on the device.
hwing91 0:db86ad1b4459 94 *
hwing91 0:db86ad1b4459 95 * @param EepromOrRam 0x81 -> Reading from EEPROM
hwing91 0:db86ad1b4459 96 * @param address Address to read from.
hwing91 0:db86ad1b4459 97 * @return The contents of the memory address.
hwing91 0:db86ad1b4459 98 */
hwing91 0:db86ad1b4459 99 int read(int EepromOrRam, int address);
hwing91 0:db86ad1b4459 100
hwing91 0:db86ad1b4459 101 };
hwing91 0:db86ad1b4459 102
hwing91 0:db86ad1b4459 103 #endif /* HTU21D_H */