library for ADT7410 temperature sensor first version
adt7410.h@1:131a836c6b79, 2014-04-26 (annotated)
- Committer:
- igbt6
- Date:
- Sat Apr 26 18:12:59 2014 +0000
- Revision:
- 1:131a836c6b79
- Parent:
- 0:204e0aff1242
- Child:
- 2:d12dffd027a8
first attempts of building adt7410 library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
igbt6 | 1:131a836c6b79 | 1 | /* |
igbt6 | 1:131a836c6b79 | 2 | @file adt7410.h |
igbt6 | 1:131a836c6b79 | 3 | |
igbt6 | 1:131a836c6b79 | 4 | @brief Temperature Sensor ADT7410 Breakout I2C Library |
igbt6 | 1:131a836c6b79 | 5 | |
igbt6 | 1:131a836c6b79 | 6 | @Author lukasz uszko(luszko@op.pl) |
igbt6 | 1:131a836c6b79 | 7 | |
igbt6 | 1:131a836c6b79 | 8 | Tested on FRDM-KL46Z |
igbt6 | 1:131a836c6b79 | 9 | |
igbt6 | 1:131a836c6b79 | 10 | Copyright (c) 2014 luszko |
igbt6 | 1:131a836c6b79 | 11 | Released under the MIT License (see http://mbed.org/license/mit) |
igbt6 | 1:131a836c6b79 | 12 | |
igbt6 | 1:131a836c6b79 | 13 | Documentation regarding the ADT7410 can be found here: |
igbt6 | 1:131a836c6b79 | 14 | http://www.analog.com/static/imported-files/data_sheets/ADT7410.pdf |
igbt6 | 1:131a836c6b79 | 15 | */ |
igbt6 | 1:131a836c6b79 | 16 | |
igbt6 | 1:131a836c6b79 | 17 | |
igbt6 | 1:131a836c6b79 | 18 | |
igbt6 | 1:131a836c6b79 | 19 | #ifndef ADT7410_H |
igbt6 | 1:131a836c6b79 | 20 | #define ADT7410_H |
igbt6 | 1:131a836c6b79 | 21 | |
igbt6 | 1:131a836c6b79 | 22 | #include "mbed.h" |
igbt6 | 1:131a836c6b79 | 23 | |
igbt6 | 1:131a836c6b79 | 24 | |
igbt6 | 1:131a836c6b79 | 25 | #define ADT7410_I2C_ADDRESS 0x4B //A0 and A1 PIN are conected to VDD |
igbt6 | 1:131a836c6b79 | 26 | |
igbt6 | 1:131a836c6b79 | 27 | |
igbt6 | 1:131a836c6b79 | 28 | |
igbt6 | 1:131a836c6b79 | 29 | class ADT7410{ |
igbt6 | 1:131a836c6b79 | 30 | |
igbt6 | 1:131a836c6b79 | 31 | public: |
igbt6 | 1:131a836c6b79 | 32 | |
igbt6 | 1:131a836c6b79 | 33 | /** Create an ADT7410 instance |
igbt6 | 1:131a836c6b79 | 34 | * @param sda pin |
igbt6 | 1:131a836c6b79 | 35 | * @param scl pin |
igbt6 | 1:131a836c6b79 | 36 | * @param address: I2C slave address |
igbt6 | 1:131a836c6b79 | 37 | */ |
igbt6 | 1:131a836c6b79 | 38 | ADT7410(PinName sda, PinName scl, int address = ADT7410_I2C_ADDRESS); |
igbt6 | 1:131a836c6b79 | 39 | |
igbt6 | 1:131a836c6b79 | 40 | /** Create a ADT7410 instance |
igbt6 | 1:131a836c6b79 | 41 | * @param i2c object |
igbt6 | 1:131a836c6b79 | 42 | * @param address: I2C slave address |
igbt6 | 1:131a836c6b79 | 43 | */ |
igbt6 | 1:131a836c6b79 | 44 | ADT7410(I2C& i2c, int address = ADT7410_I2C_ADDRESS); |
igbt6 | 1:131a836c6b79 | 45 | |
igbt6 | 1:131a836c6b79 | 46 | /** Initialization: set member values and read ADT7410 calibration parameter |
igbt6 | 1:131a836c6b79 | 47 | * @returns |
igbt6 | 1:131a836c6b79 | 48 | * 1 on success, |
igbt6 | 1:131a836c6b79 | 49 | * 0 on error |
igbt6 | 1:131a836c6b79 | 50 | */ |
igbt6 | 1:131a836c6b79 | 51 | int init(void ); |
igbt6 | 1:131a836c6b79 | 52 | |
igbt6 | 1:131a836c6b79 | 53 | /** Read temperature from the ADT7410. |
igbt6 | 1:131a836c6b79 | 54 | * @param temperature (C) |
igbt6 | 1:131a836c6b79 | 55 | * @returns |
igbt6 | 1:131a836c6b79 | 56 | * 1 on success, |
igbt6 | 1:131a836c6b79 | 57 | * 0 on error |
igbt6 | 1:131a836c6b79 | 58 | */ |
igbt6 | 1:131a836c6b79 | 59 | int readTemp(float* pTemperature = NULL); |
igbt6 | 1:131a836c6b79 | 60 | |
igbt6 | 1:131a836c6b79 | 61 | /** Get temperature from a previous measurement |
igbt6 | 1:131a836c6b79 | 62 | * |
igbt6 | 1:131a836c6b79 | 63 | * @returns |
igbt6 | 1:131a836c6b79 | 64 | * temperature (C) |
igbt6 | 1:131a836c6b79 | 65 | */ |
igbt6 | 1:131a836c6b79 | 66 | float getTemperature() {return m_temperature;}; |
igbt6 | 1:131a836c6b79 | 67 | |
igbt6 | 1:131a836c6b79 | 68 | |
igbt6 | 1:131a836c6b79 | 69 | protected: |
igbt6 | 1:131a836c6b79 | 70 | |
igbt6 | 1:131a836c6b79 | 71 | float m_temperature; |
igbt6 | 1:131a836c6b79 | 72 | I2C m_i2c; |
igbt6 | 1:131a836c6b79 | 73 | int m_addr; |
igbt6 | 1:131a836c6b79 | 74 | char m_data[4]; |
igbt6 | 1:131a836c6b79 | 75 | |
igbt6 | 1:131a836c6b79 | 76 | private: |
igbt6 | 1:131a836c6b79 | 77 | |
igbt6 | 1:131a836c6b79 | 78 | /** Write data to the given register |
igbt6 | 1:131a836c6b79 | 79 | * |
igbt6 | 1:131a836c6b79 | 80 | * @returns |
igbt6 | 1:131a836c6b79 | 81 | * 1 on success, |
igbt6 | 1:131a836c6b79 | 82 | * 0 on error |
igbt6 | 1:131a836c6b79 | 83 | */ |
igbt6 | 1:131a836c6b79 | 84 | bool write(uint8_t regAddress, uint8_t data); |
igbt6 | 1:131a836c6b79 | 85 | |
igbt6 | 1:131a836c6b79 | 86 | int read(uint8_t regAddress); |
igbt6 | 1:131a836c6b79 | 87 | |
igbt6 | 1:131a836c6b79 | 88 | int read(uint8_t regAddress, uint8_t* data,int length); |
igbt6 | 1:131a836c6b79 | 89 | |
igbt6 | 1:131a836c6b79 | 90 | |
igbt6 | 1:131a836c6b79 | 91 | |
igbt6 | 1:131a836c6b79 | 92 | |
igbt6 | 1:131a836c6b79 | 93 | }; |
igbt6 | 1:131a836c6b79 | 94 | |
igbt6 | 1:131a836c6b79 | 95 | #endif |