Creating a project for TT_Mxx

HTU21D/HTU21D.h

Committer:
ThunderSoft
Date:
2019-04-26
Revision:
2:2186c624272f
Parent:
0:1159c687a20f

File content as of revision 2:2186c624272f:

#ifndef HTU21D_H
#define HTU21D_H
 
/**
 * Includes
 */
#include "mbed.h"
 
/**
 * Defines
 */
// Acquired from Datasheet.
 
#define HTU21D_I2C_ADDRESS  0x40 
#define TRIGGER_TEMP_MEASURE  0xE3
#define TRIGGER_HUMD_MEASURE  0xE5
 
 
//Commands.
#define HTU21D_EEPROM_WRITE 0x80
#define HTU21D_EEPROM_READ  0x81
 
 
/**
 * Honeywell HTU21D digital humidity and temperature sensor.
 */
class HTU21D {
 
public:
 
    HTU21D();
    /**
     * Constructor.
     *
     * @param sda mbed pin to use for SDA line of I2C interface.
     * @param scl mbed pin to use for SCL line of I2C interface.
     */
    HTU21D(PinName sda, PinName scl);
 
 
    /**
     * @brief Samples the temperature, input void, outputs an int in celcius. 
     * @return  [description]
     */
    int sample_ctemp(void);
    
    /**
     * @brief Samples the temperature, input void, outputs an int in fahrenheit.
     * @return  [description]
     */
    int sample_ftemp(void);
    
    /**
     * @brief Samples the temperature, input void, outputs an int in kelvin.
     * @return  [description]
     */
    int sample_ktemp(void);
    
    /**
     * @brief Samples the humidity, input void, outputs and int.
     * @return  [description]
     */
    int sample_humid(void);
 
   
 
private:
 
    I2C* i2c_;
 
    /**
     * Write to EEPROM or RAM on the device.
     *
     * @param EepromOrRam 0x80 -> Writing to EEPROM
     * @param address Address to write to.
     * @param data Data to write.
     */
    void write(int EepromOrRam, int address, int data);
 
    /**
     * Read EEPROM or RAM on the device.
     *
     * @param EepromOrRam 0x81 -> Reading from EEPROM
     * @param address Address to read from.
     * @return The contents of the memory address.
     */
    int read(int EepromOrRam, int address);
 
};


#endif