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

Dependencies:   HDC1000 SevenSegLed mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "HDC1000.h"
00003 #include "SevenSegLed.h"
00004 
00005 // I2C Communication
00006 HDC1000      hmtp(D14,D15);    // HDC1000 SDA, SCL (Akizuki module)
00007 
00008 //                      common type (0:anode common 1:cathode common)
00009 //                      |
00010 //                      |  display mode (0:smooth 1:hard)
00011 //                      |  |
00012 //                      |  |  segA segB segC segD segE segF segG segP com1 com2 com3 com4 (com5,com6,com7,com8 = NC)                          
00013 //                      |  |  |    |    |    |    |    |    |    |    |    |    |    |
00014 SevenSegLed sevenSegLed(1, 1, D13, D12, D11, D10, D5,  D4,  D3,  D2,  D9,  D8,  D7,  D6);
00015 DigitalOut relay(D1);
00016 
00017 // display buffer
00018 //                   com1
00019 //                   |  com2
00020 //                   |  |  com3
00021 //                   |  |  |  com4
00022 //                   |  |  |  |
00023 uint8_t D_7seg[4] = {0, 0, 0, 0};   // 0x0 to 0x9 = "0" to "9" ,0xA to 0xF = "A" to "F", 0x10 = extinction
00024 uint8_t D_dot[4]  = {0, 1, 0, 0};   // 0:extinction  1: light
00025 
00026 int hundred, ten, one;
00027 float SP, Hys;
00028 
00029 //main
00030 int main() {
00031     
00032    relay = 0;
00033 
00034    while(1) {
00035        hmtp.get();    // Triger conversion
00036        
00037        //temperature
00038        hundred = hmtp.temperature() * 10;  
00039        hundred = hundred / 100;
00040        D_7seg[0] = hundred;
00041        
00042        ten = hmtp.temperature() * 10;
00043        ten = ten - (hundred * 100);
00044        ten = ten / 10;
00045        D_7seg[1] = ten;
00046        
00047        one = hmtp.temperature() * 10;
00048        one = one - (hundred * 100) - (ten * 10);
00049        D_7seg[2] = one;
00050        
00051        D_7seg[3] = 0xC;
00052 
00053        D_dot[1] = 1;
00054        D_dot[0] = 0;
00055        D_dot[2] = 0;
00056 
00057        // set dynamic output data
00058        sevenSegLed.SevenSegLed_main(D_7seg, D_dot);   
00059 
00060        wait(3.0);
00061        
00062        //humidity
00063        hundred = hmtp.humidity() * 10;  
00064        hundred = hundred / 100;
00065        D_7seg[0] = hundred;
00066        
00067        ten = hmtp.humidity() * 10;
00068        ten = ten - (hundred * 100);
00069        ten = ten / 10;
00070        D_7seg[1] = ten;
00071        
00072        one = hmtp.humidity() * 10;
00073        one = one - (hundred * 100) - (ten * 10);
00074        D_7seg[2] = one;
00075        
00076        D_7seg[3] = 0x10;
00077 
00078        D_dot[1] = 1;
00079        D_dot[0] = 0;
00080        D_dot[2] = 0;
00081 
00082        // set dynamic output data
00083        sevenSegLed.SevenSegLed_main(D_7seg, D_dot);         
00084         
00085        SP = 48.0;
00086        Hys = 4.0;
00087        if( hmtp.humidity() <= SP )
00088         relay = 1;
00089        else if( hmtp.humidity() >= (SP + Hys) )
00090         relay = 0;
00091 
00092        wait(3.0);
00093 
00094    }
00095 }