LPCXpressp824-MAXで加湿器をコントロールします。
Dependencies: HDC1000 SevenSegLed mbed
main.cpp@1:89575a867059, 2017-02-13 (annotated)
- Committer:
- kyun_kun
- Date:
- Mon Feb 13 17:06:45 2017 +0000
- Revision:
- 1:89575a867059
- Parent:
- 0:4a91acd5ea4e
humidifier controller
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kyun_kun | 0:4a91acd5ea4e | 1 | #include "mbed.h" |
kyun_kun | 0:4a91acd5ea4e | 2 | #include "HDC1000.h" |
kyun_kun | 0:4a91acd5ea4e | 3 | #include "SevenSegLed.h" |
kyun_kun | 0:4a91acd5ea4e | 4 | |
kyun_kun | 0:4a91acd5ea4e | 5 | // I2C Communication |
kyun_kun | 0:4a91acd5ea4e | 6 | HDC1000 hmtp(D14,D15); // HDC1000 SDA, SCL (Akizuki module) |
kyun_kun | 0:4a91acd5ea4e | 7 | |
kyun_kun | 0:4a91acd5ea4e | 8 | // common type (0:anode common 1:cathode common) |
kyun_kun | 0:4a91acd5ea4e | 9 | // | |
kyun_kun | 0:4a91acd5ea4e | 10 | // | display mode (0:smooth 1:hard) |
kyun_kun | 0:4a91acd5ea4e | 11 | // | | |
kyun_kun | 0:4a91acd5ea4e | 12 | // | | segA segB segC segD segE segF segG segP com1 com2 com3 com4 (com5,com6,com7,com8 = NC) |
kyun_kun | 0:4a91acd5ea4e | 13 | // | | | | | | | | | | | | | | |
kyun_kun | 0:4a91acd5ea4e | 14 | SevenSegLed sevenSegLed(1, 1, D13, D12, D11, D10, D5, D4, D3, D2, D9, D8, D7, D6); |
kyun_kun | 0:4a91acd5ea4e | 15 | DigitalOut relay(D1); |
kyun_kun | 0:4a91acd5ea4e | 16 | |
kyun_kun | 0:4a91acd5ea4e | 17 | // display buffer |
kyun_kun | 0:4a91acd5ea4e | 18 | // com1 |
kyun_kun | 0:4a91acd5ea4e | 19 | // | com2 |
kyun_kun | 0:4a91acd5ea4e | 20 | // | | com3 |
kyun_kun | 0:4a91acd5ea4e | 21 | // | | | com4 |
kyun_kun | 0:4a91acd5ea4e | 22 | // | | | | |
kyun_kun | 0:4a91acd5ea4e | 23 | uint8_t D_7seg[4] = {0, 0, 0, 0}; // 0x0 to 0x9 = "0" to "9" ,0xA to 0xF = "A" to "F", 0x10 = extinction |
kyun_kun | 0:4a91acd5ea4e | 24 | uint8_t D_dot[4] = {0, 1, 0, 0}; // 0:extinction 1: light |
kyun_kun | 0:4a91acd5ea4e | 25 | |
kyun_kun | 0:4a91acd5ea4e | 26 | int hundred, ten, one; |
kyun_kun | 0:4a91acd5ea4e | 27 | float SP, Hys; |
kyun_kun | 0:4a91acd5ea4e | 28 | |
kyun_kun | 0:4a91acd5ea4e | 29 | //main |
kyun_kun | 0:4a91acd5ea4e | 30 | int main() { |
kyun_kun | 0:4a91acd5ea4e | 31 | |
kyun_kun | 0:4a91acd5ea4e | 32 | relay = 0; |
kyun_kun | 0:4a91acd5ea4e | 33 | |
kyun_kun | 0:4a91acd5ea4e | 34 | while(1) { |
kyun_kun | 0:4a91acd5ea4e | 35 | hmtp.get(); // Triger conversion |
kyun_kun | 0:4a91acd5ea4e | 36 | |
kyun_kun | 0:4a91acd5ea4e | 37 | //temperature |
kyun_kun | 0:4a91acd5ea4e | 38 | hundred = hmtp.temperature() * 10; |
kyun_kun | 0:4a91acd5ea4e | 39 | hundred = hundred / 100; |
kyun_kun | 0:4a91acd5ea4e | 40 | D_7seg[0] = hundred; |
kyun_kun | 0:4a91acd5ea4e | 41 | |
kyun_kun | 0:4a91acd5ea4e | 42 | ten = hmtp.temperature() * 10; |
kyun_kun | 0:4a91acd5ea4e | 43 | ten = ten - (hundred * 100); |
kyun_kun | 0:4a91acd5ea4e | 44 | ten = ten / 10; |
kyun_kun | 0:4a91acd5ea4e | 45 | D_7seg[1] = ten; |
kyun_kun | 0:4a91acd5ea4e | 46 | |
kyun_kun | 0:4a91acd5ea4e | 47 | one = hmtp.temperature() * 10; |
kyun_kun | 0:4a91acd5ea4e | 48 | one = one - (hundred * 100) - (ten * 10); |
kyun_kun | 0:4a91acd5ea4e | 49 | D_7seg[2] = one; |
kyun_kun | 0:4a91acd5ea4e | 50 | |
kyun_kun | 0:4a91acd5ea4e | 51 | D_7seg[3] = 0xC; |
kyun_kun | 0:4a91acd5ea4e | 52 | |
kyun_kun | 0:4a91acd5ea4e | 53 | D_dot[1] = 1; |
kyun_kun | 0:4a91acd5ea4e | 54 | D_dot[0] = 0; |
kyun_kun | 0:4a91acd5ea4e | 55 | D_dot[2] = 0; |
kyun_kun | 0:4a91acd5ea4e | 56 | |
kyun_kun | 0:4a91acd5ea4e | 57 | // set dynamic output data |
kyun_kun | 0:4a91acd5ea4e | 58 | sevenSegLed.SevenSegLed_main(D_7seg, D_dot); |
kyun_kun | 0:4a91acd5ea4e | 59 | |
kyun_kun | 0:4a91acd5ea4e | 60 | wait(3.0); |
kyun_kun | 0:4a91acd5ea4e | 61 | |
kyun_kun | 0:4a91acd5ea4e | 62 | //humidity |
kyun_kun | 0:4a91acd5ea4e | 63 | hundred = hmtp.humidity() * 10; |
kyun_kun | 0:4a91acd5ea4e | 64 | hundred = hundred / 100; |
kyun_kun | 0:4a91acd5ea4e | 65 | D_7seg[0] = hundred; |
kyun_kun | 0:4a91acd5ea4e | 66 | |
kyun_kun | 0:4a91acd5ea4e | 67 | ten = hmtp.humidity() * 10; |
kyun_kun | 0:4a91acd5ea4e | 68 | ten = ten - (hundred * 100); |
kyun_kun | 0:4a91acd5ea4e | 69 | ten = ten / 10; |
kyun_kun | 0:4a91acd5ea4e | 70 | D_7seg[1] = ten; |
kyun_kun | 0:4a91acd5ea4e | 71 | |
kyun_kun | 0:4a91acd5ea4e | 72 | one = hmtp.humidity() * 10; |
kyun_kun | 0:4a91acd5ea4e | 73 | one = one - (hundred * 100) - (ten * 10); |
kyun_kun | 0:4a91acd5ea4e | 74 | D_7seg[2] = one; |
kyun_kun | 0:4a91acd5ea4e | 75 | |
kyun_kun | 0:4a91acd5ea4e | 76 | D_7seg[3] = 0x10; |
kyun_kun | 0:4a91acd5ea4e | 77 | |
kyun_kun | 0:4a91acd5ea4e | 78 | D_dot[1] = 1; |
kyun_kun | 0:4a91acd5ea4e | 79 | D_dot[0] = 0; |
kyun_kun | 0:4a91acd5ea4e | 80 | D_dot[2] = 0; |
kyun_kun | 0:4a91acd5ea4e | 81 | |
kyun_kun | 0:4a91acd5ea4e | 82 | // set dynamic output data |
kyun_kun | 0:4a91acd5ea4e | 83 | sevenSegLed.SevenSegLed_main(D_7seg, D_dot); |
kyun_kun | 0:4a91acd5ea4e | 84 | |
kyun_kun | 0:4a91acd5ea4e | 85 | SP = 48.0; |
kyun_kun | 0:4a91acd5ea4e | 86 | Hys = 4.0; |
kyun_kun | 0:4a91acd5ea4e | 87 | if( hmtp.humidity() <= SP ) |
kyun_kun | 0:4a91acd5ea4e | 88 | relay = 1; |
kyun_kun | 0:4a91acd5ea4e | 89 | else if( hmtp.humidity() >= (SP + Hys) ) |
kyun_kun | 0:4a91acd5ea4e | 90 | relay = 0; |
kyun_kun | 0:4a91acd5ea4e | 91 | |
kyun_kun | 0:4a91acd5ea4e | 92 | wait(3.0); |
kyun_kun | 0:4a91acd5ea4e | 93 | |
kyun_kun | 0:4a91acd5ea4e | 94 | } |
kyun_kun | 0:4a91acd5ea4e | 95 | } |