LPCXpressp824-MAXで加湿器をコントロールします。
Dependencies: HDC1000 SevenSegLed mbed
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 }
Generated on Tue Jul 12 2022 18:09:55 by 1.7.2