LPCXpressp824-MAXで加湿器をコントロールします。

Dependencies:   HDC1000 SevenSegLed mbed

/media/uploads/kyun_kun/sch.jpg

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?

UserRevisionLine numberNew 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 }