Thermometer indicating temperature and humidity by LED blink pattern
Dependencies: BLE_API mbed nRF51822
main.cpp@0:8d05f1ced202, 2016-06-17 (annotated)
- Committer:
- HiroyukiIzumi
- Date:
- Fri Jun 17 01:55:11 2016 +0000
- Revision:
- 0:8d05f1ced202
Thermometer indicating temperature and humidity by LED blink pattern
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
HiroyukiIzumi | 0:8d05f1ced202 | 1 | #include "mbed.h" |
HiroyukiIzumi | 0:8d05f1ced202 | 2 | #include "hts221.h" |
HiroyukiIzumi | 0:8d05f1ced202 | 3 | #include "DeviceInformationService.h" |
HiroyukiIzumi | 0:8d05f1ced202 | 4 | |
HiroyukiIzumi | 0:8d05f1ced202 | 5 | #define ON 1 |
HiroyukiIzumi | 0:8d05f1ced202 | 6 | #define OFF 0 |
HiroyukiIzumi | 0:8d05f1ced202 | 7 | |
HiroyukiIzumi | 0:8d05f1ced202 | 8 | DigitalOut myled2(LED2); |
HiroyukiIzumi | 0:8d05f1ced202 | 9 | DigitalOut myled1(LED1); |
HiroyukiIzumi | 0:8d05f1ced202 | 10 | |
HiroyukiIzumi | 0:8d05f1ced202 | 11 | |
HiroyukiIzumi | 0:8d05f1ced202 | 12 | int main() { |
HiroyukiIzumi | 0:8d05f1ced202 | 13 | |
HiroyukiIzumi | 0:8d05f1ced202 | 14 | float temp = 12.0; |
HiroyukiIzumi | 0:8d05f1ced202 | 15 | int tempint = static_cast<int> (temp); |
HiroyukiIzumi | 0:8d05f1ced202 | 16 | int tempdigit1 = 0; |
HiroyukiIzumi | 0:8d05f1ced202 | 17 | int tempdigit10 = 0; |
HiroyukiIzumi | 0:8d05f1ced202 | 18 | |
HiroyukiIzumi | 0:8d05f1ced202 | 19 | float humi = 55; |
HiroyukiIzumi | 0:8d05f1ced202 | 20 | int humiint = static_cast<int> (humi); |
HiroyukiIzumi | 0:8d05f1ced202 | 21 | int humidigit1 = 0; |
HiroyukiIzumi | 0:8d05f1ced202 | 22 | int humidigit10 = 0; |
HiroyukiIzumi | 0:8d05f1ced202 | 23 | int i = 0; |
HiroyukiIzumi | 0:8d05f1ced202 | 24 | |
HiroyukiIzumi | 0:8d05f1ced202 | 25 | |
HiroyukiIzumi | 0:8d05f1ced202 | 26 | if (hts221_init()) { //Check if the sensor is initialized correctly |
HiroyukiIzumi | 0:8d05f1ced202 | 27 | HTS221_Calib(); //calibrate thermometer |
HiroyukiIzumi | 0:8d05f1ced202 | 28 | while(true) { //Infinite loop |
HiroyukiIzumi | 0:8d05f1ced202 | 29 | |
HiroyukiIzumi | 0:8d05f1ced202 | 30 | HTS221_ReadTempHumi(&temp, &humi); |
HiroyukiIzumi | 0:8d05f1ced202 | 31 | |
HiroyukiIzumi | 0:8d05f1ced202 | 32 | tempint = static_cast<int> (temp); |
HiroyukiIzumi | 0:8d05f1ced202 | 33 | tempdigit1 = tempint % 10; |
HiroyukiIzumi | 0:8d05f1ced202 | 34 | tempdigit10 = tempint / 10; |
HiroyukiIzumi | 0:8d05f1ced202 | 35 | for (i = tempdigit10 ; i ; i--) { |
HiroyukiIzumi | 0:8d05f1ced202 | 36 | myled1 = ON; |
HiroyukiIzumi | 0:8d05f1ced202 | 37 | wait (0.5); |
HiroyukiIzumi | 0:8d05f1ced202 | 38 | myled1 = OFF ; |
HiroyukiIzumi | 0:8d05f1ced202 | 39 | wait (1.0); |
HiroyukiIzumi | 0:8d05f1ced202 | 40 | } |
HiroyukiIzumi | 0:8d05f1ced202 | 41 | for (i = tempdigit1 ; i ; i--) { |
HiroyukiIzumi | 0:8d05f1ced202 | 42 | myled1 = ON; |
HiroyukiIzumi | 0:8d05f1ced202 | 43 | wait (0.1); |
HiroyukiIzumi | 0:8d05f1ced202 | 44 | myled1 = OFF ; |
HiroyukiIzumi | 0:8d05f1ced202 | 45 | wait (0.4); |
HiroyukiIzumi | 0:8d05f1ced202 | 46 | } |
HiroyukiIzumi | 0:8d05f1ced202 | 47 | |
HiroyukiIzumi | 0:8d05f1ced202 | 48 | humiint = static_cast<int> (humi); |
HiroyukiIzumi | 0:8d05f1ced202 | 49 | humidigit1 = humiint % 10; |
HiroyukiIzumi | 0:8d05f1ced202 | 50 | humidigit10 = humiint / 10; |
HiroyukiIzumi | 0:8d05f1ced202 | 51 | for (i = humidigit10 ; i ; i--) { |
HiroyukiIzumi | 0:8d05f1ced202 | 52 | myled2 = ON; |
HiroyukiIzumi | 0:8d05f1ced202 | 53 | wait (0.5); |
HiroyukiIzumi | 0:8d05f1ced202 | 54 | myled2 = OFF ; |
HiroyukiIzumi | 0:8d05f1ced202 | 55 | wait (1.0); |
HiroyukiIzumi | 0:8d05f1ced202 | 56 | } |
HiroyukiIzumi | 0:8d05f1ced202 | 57 | for (i = humidigit1 ; i ; i--) { |
HiroyukiIzumi | 0:8d05f1ced202 | 58 | myled2 = ON; |
HiroyukiIzumi | 0:8d05f1ced202 | 59 | wait (0.1); |
HiroyukiIzumi | 0:8d05f1ced202 | 60 | myled2 = OFF ; |
HiroyukiIzumi | 0:8d05f1ced202 | 61 | wait (0.4); |
HiroyukiIzumi | 0:8d05f1ced202 | 62 | } |
HiroyukiIzumi | 0:8d05f1ced202 | 63 | |
HiroyukiIzumi | 0:8d05f1ced202 | 64 | wait (4.0); |
HiroyukiIzumi | 0:8d05f1ced202 | 65 | } |
HiroyukiIzumi | 0:8d05f1ced202 | 66 | } else { //Sensor initialize error |
HiroyukiIzumi | 0:8d05f1ced202 | 67 | while(true) { |
HiroyukiIzumi | 0:8d05f1ced202 | 68 | myled1 = ON; |
HiroyukiIzumi | 0:8d05f1ced202 | 69 | wait(0.1); |
HiroyukiIzumi | 0:8d05f1ced202 | 70 | myled1 = OFF; |
HiroyukiIzumi | 0:8d05f1ced202 | 71 | wait(0.2); |
HiroyukiIzumi | 0:8d05f1ced202 | 72 | } |
HiroyukiIzumi | 0:8d05f1ced202 | 73 | } |
HiroyukiIzumi | 0:8d05f1ced202 | 74 | } |
HiroyukiIzumi | 0:8d05f1ced202 | 75 |