![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
SCH MME sensor test
Dependencies: mbed Adafruit_GFX
mlx90615.h@0:28c89a4b6b69, 2019-11-06 (annotated)
- Committer:
- shinshingo
- Date:
- Wed Nov 06 09:05:08 2019 +0000
- Revision:
- 0:28c89a4b6b69
- Child:
- 1:bbf8b08b8a20
SCH MME L432KC Mbed Sensor Test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
shinshingo | 0:28c89a4b6b69 | 1 | #include "mbed.h" |
shinshingo | 0:28c89a4b6b69 | 2 | |
shinshingo | 0:28c89a4b6b69 | 3 | //Melexis Infrared Thermometer MLX90614 Library |
shinshingo | 0:28c89a4b6b69 | 4 | |
shinshingo | 0:28c89a4b6b69 | 5 | //***************************************************************** |
shinshingo | 0:28c89a4b6b69 | 6 | // Build : 2011-06-08 Hikaru Sugiura |
shinshingo | 0:28c89a4b6b69 | 7 | // Only read thermo data. |
shinshingo | 0:28c89a4b6b69 | 8 | // |
shinshingo | 0:28c89a4b6b69 | 9 | // This program is based on Mr.Mitesh Patel's "mlx90614". |
shinshingo | 0:28c89a4b6b69 | 10 | // http://mbed.org/users/mitesh2patel/programs/mlx90614/lqnetj |
shinshingo | 0:28c89a4b6b69 | 11 | // |
shinshingo | 0:28c89a4b6b69 | 12 | // This program does not check CRC. |
shinshingo | 0:28c89a4b6b69 | 13 | // If you want to check CRC, please do it your self :) |
shinshingo | 0:28c89a4b6b69 | 14 | //****************************************************************// |
shinshingo | 0:28c89a4b6b69 | 15 | |
shinshingo | 0:28c89a4b6b69 | 16 | /**An Interface for MLX90614 |
shinshingo | 0:28c89a4b6b69 | 17 | * |
shinshingo | 0:28c89a4b6b69 | 18 | * @code |
shinshingo | 0:28c89a4b6b69 | 19 | * //Print temperature data |
shinshingo | 0:28c89a4b6b69 | 20 | * #include "mbed.h" |
shinshingo | 0:28c89a4b6b69 | 21 | * #include "mlx90614.h" |
shinshingo | 0:28c89a4b6b69 | 22 | * |
shinshingo | 0:28c89a4b6b69 | 23 | * I2C i2c(p28,p27); //sda,scl |
shinshingo | 0:28c89a4b6b69 | 24 | * MLX90614 thermometer(&i2c); |
shinshingo | 0:28c89a4b6b69 | 25 | * float temp; |
shinshingo | 0:28c89a4b6b69 | 26 | * |
shinshingo | 0:28c89a4b6b69 | 27 | * void main(void){ |
shinshingo | 0:28c89a4b6b69 | 28 | * if(thermometer.getTemp(&temp)){ |
shinshingo | 0:28c89a4b6b69 | 29 | * printf("Temperature : %f \r\n",temp); |
shinshingo | 0:28c89a4b6b69 | 30 | * } |
shinshingo | 0:28c89a4b6b69 | 31 | * wait(0.5); |
shinshingo | 0:28c89a4b6b69 | 32 | * |
shinshingo | 0:28c89a4b6b69 | 33 | * } |
shinshingo | 0:28c89a4b6b69 | 34 | * @endcode |
shinshingo | 0:28c89a4b6b69 | 35 | */ |
shinshingo | 0:28c89a4b6b69 | 36 | |
shinshingo | 0:28c89a4b6b69 | 37 | |
shinshingo | 0:28c89a4b6b69 | 38 | class MLX90615{ |
shinshingo | 0:28c89a4b6b69 | 39 | |
shinshingo | 0:28c89a4b6b69 | 40 | public: |
shinshingo | 0:28c89a4b6b69 | 41 | /** Create MLX90614 interface, initialize with selected I2C port and address. |
shinshingo | 0:28c89a4b6b69 | 42 | * |
shinshingo | 0:28c89a4b6b69 | 43 | * @param i2c I2C device pointer |
shinshingo | 0:28c89a4b6b69 | 44 | * @param addr Device address(default=0xB4) |
shinshingo | 0:28c89a4b6b69 | 45 | */ |
shinshingo | 0:28c89a4b6b69 | 46 | MLX90615(I2C* i2c,int addr=0xB6); |
shinshingo | 0:28c89a4b6b69 | 47 | |
shinshingo | 0:28c89a4b6b69 | 48 | /** Get Temperature data from MLX90614. |
shinshingo | 0:28c89a4b6b69 | 49 | * |
shinshingo | 0:28c89a4b6b69 | 50 | * @param temp_val return valiable pointer |
shinshingo | 0:28c89a4b6b69 | 51 | * @return 0 on success (ack), or non-0 on failure (nack) |
shinshingo | 0:28c89a4b6b69 | 52 | */ |
shinshingo | 0:28c89a4b6b69 | 53 | bool getTemp(float* temp_val); |
shinshingo | 0:28c89a4b6b69 | 54 | bool getTempAmbient(float* temp_val); |
shinshingo | 0:28c89a4b6b69 | 55 | bool getRawIR(int16_t* ir_val); |
shinshingo | 0:28c89a4b6b69 | 56 | |
shinshingo | 0:28c89a4b6b69 | 57 | private: |
shinshingo | 0:28c89a4b6b69 | 58 | I2C* i2c; |
shinshingo | 0:28c89a4b6b69 | 59 | int i2caddress; |
shinshingo | 0:28c89a4b6b69 | 60 | |
shinshingo | 0:28c89a4b6b69 | 61 | }; |