Added the functions to read and set the emissivity of the sensor.
mlx90614.h@5:3c4431224932, 2020-05-11 (annotated)
- Committer:
- lamell
- Date:
- Mon May 11 17:28:37 2020 +0000
- Revision:
- 5:3c4431224932
- Parent:
- 4:dcd4fe76bd13
- Child:
- 6:689f0dab386c
Added the functions to Read the Emissivity and Set Emissivity
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
aquahika | 1:4a60d3f1e91e | 1 | #include "mbed.h" |
aquahika | 1:4a60d3f1e91e | 2 | |
aquahika | 1:4a60d3f1e91e | 3 | //Melexis Infrared Thermometer MLX90614 Library |
aquahika | 1:4a60d3f1e91e | 4 | |
aquahika | 1:4a60d3f1e91e | 5 | //***************************************************************** |
aquahika | 1:4a60d3f1e91e | 6 | // Build : 2011-06-08 Hikaru Sugiura |
aquahika | 1:4a60d3f1e91e | 7 | // Only read thermo data. |
aquahika | 1:4a60d3f1e91e | 8 | // |
aquahika | 1:4a60d3f1e91e | 9 | // This program is based on Mr.Mitesh Patel's "mlx90614". |
aquahika | 1:4a60d3f1e91e | 10 | // http://mbed.org/users/mitesh2patel/programs/mlx90614/lqnetj |
aquahika | 1:4a60d3f1e91e | 11 | // |
aquahika | 1:4a60d3f1e91e | 12 | // This program does not check CRC. |
aquahika | 1:4a60d3f1e91e | 13 | // If you want to check CRC, please do it your self :) |
aquahika | 1:4a60d3f1e91e | 14 | //****************************************************************// |
aquahika | 1:4a60d3f1e91e | 15 | |
aquahika | 3:eb618e916622 | 16 | /**An Interface for MLX90614 |
aquahika | 3:eb618e916622 | 17 | * |
aquahika | 3:eb618e916622 | 18 | * @code |
aquahika | 2:01d333d06727 | 19 | * //Print temperature data |
aquahika | 2:01d333d06727 | 20 | * #include "mbed.h" |
aquahika | 2:01d333d06727 | 21 | * #include "mlx90614.h" |
aquahika | 2:01d333d06727 | 22 | * |
aquahika | 2:01d333d06727 | 23 | * I2C i2c(p28,p27); //sda,scl |
aquahika | 2:01d333d06727 | 24 | * MLX90614 thermometer(&i2c); |
aquahika | 4:dcd4fe76bd13 | 25 | * float temp; |
aquahika | 2:01d333d06727 | 26 | * |
aquahika | 2:01d333d06727 | 27 | * void main(void){ |
aquahika | 4:dcd4fe76bd13 | 28 | * if(thermometer.getTemp(&temp)){ |
aquahika | 2:01d333d06727 | 29 | * printf("Temperature : %f \r\n",temp); |
aquahika | 2:01d333d06727 | 30 | * } |
aquahika | 2:01d333d06727 | 31 | * wait(0.5); |
aquahika | 2:01d333d06727 | 32 | * |
aquahika | 2:01d333d06727 | 33 | * } |
aquahika | 3:eb618e916622 | 34 | * @endcode |
aquahika | 3:eb618e916622 | 35 | */ |
aquahika | 2:01d333d06727 | 36 | |
aquahika | 2:01d333d06727 | 37 | |
aquahika | 1:4a60d3f1e91e | 38 | class MLX90614{ |
aquahika | 1:4a60d3f1e91e | 39 | |
aquahika | 1:4a60d3f1e91e | 40 | public: |
aquahika | 2:01d333d06727 | 41 | /** Create MLX90614 interface, initialize with selected I2C port and address. |
aquahika | 2:01d333d06727 | 42 | * |
aquahika | 2:01d333d06727 | 43 | * @param i2c I2C device pointer |
aquahika | 2:01d333d06727 | 44 | * @param addr Device address(default=0xB4) |
aquahika | 2:01d333d06727 | 45 | */ |
aquahika | 1:4a60d3f1e91e | 46 | MLX90614(I2C* i2c,int addr=0xB4); |
aquahika | 2:01d333d06727 | 47 | |
aquahika | 2:01d333d06727 | 48 | /** Get Temperature data from MLX90614. |
aquahika | 2:01d333d06727 | 49 | * |
aquahika | 2:01d333d06727 | 50 | * @param temp_val return valiable pointer |
aquahika | 2:01d333d06727 | 51 | * @return 0 on success (ack), or non-0 on failure (nack) |
aquahika | 2:01d333d06727 | 52 | */ |
aquahika | 1:4a60d3f1e91e | 53 | bool getTemp(float* temp_val); |
aquahika | 1:4a60d3f1e91e | 54 | |
lamell | 5:3c4431224932 | 55 | float GetEmissivity(void); |
lamell | 5:3c4431224932 | 56 | |
lamell | 5:3c4431224932 | 57 | void SetEmissivity(float em, uint8_t lclCrc); |
lamell | 5:3c4431224932 | 58 | |
lamell | 5:3c4431224932 | 59 | |
aquahika | 1:4a60d3f1e91e | 60 | private: |
aquahika | 1:4a60d3f1e91e | 61 | I2C* i2c; |
aquahika | 1:4a60d3f1e91e | 62 | int i2caddress; |
aquahika | 1:4a60d3f1e91e | 63 | |
lamell | 5:3c4431224932 | 64 | BlankEEPROM(int em); |
aquahika | 0:9237d31f0d03 | 65 | }; |