LPCXpressp824-MAXで加湿器をコントロールします。
Dependencies: HDC1000 SevenSegLed mbed
Diff: main.cpp
- Revision:
- 0:4a91acd5ea4e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Feb 13 17:00:04 2017 +0000 @@ -0,0 +1,95 @@ +#include "mbed.h" +#include "HDC1000.h" +#include "SevenSegLed.h" + +// I2C Communication +HDC1000 hmtp(D14,D15); // HDC1000 SDA, SCL (Akizuki module) + +// common type (0:anode common 1:cathode common) +// | +// | display mode (0:smooth 1:hard) +// | | +// | | segA segB segC segD segE segF segG segP com1 com2 com3 com4 (com5,com6,com7,com8 = NC) +// | | | | | | | | | | | | | | +SevenSegLed sevenSegLed(1, 1, D13, D12, D11, D10, D5, D4, D3, D2, D9, D8, D7, D6); +DigitalOut relay(D1); + +// display buffer +// com1 +// | com2 +// | | com3 +// | | | com4 +// | | | | +uint8_t D_7seg[4] = {0, 0, 0, 0}; // 0x0 to 0x9 = "0" to "9" ,0xA to 0xF = "A" to "F", 0x10 = extinction +uint8_t D_dot[4] = {0, 1, 0, 0}; // 0:extinction 1: light + +int hundred, ten, one; +float SP, Hys; + +//main +int main() { + + relay = 0; + + while(1) { + hmtp.get(); // Triger conversion + + //temperature + hundred = hmtp.temperature() * 10; + hundred = hundred / 100; + D_7seg[0] = hundred; + + ten = hmtp.temperature() * 10; + ten = ten - (hundred * 100); + ten = ten / 10; + D_7seg[1] = ten; + + one = hmtp.temperature() * 10; + one = one - (hundred * 100) - (ten * 10); + D_7seg[2] = one; + + D_7seg[3] = 0xC; + + D_dot[1] = 1; + D_dot[0] = 0; + D_dot[2] = 0; + + // set dynamic output data + sevenSegLed.SevenSegLed_main(D_7seg, D_dot); + + wait(3.0); + + //humidity + hundred = hmtp.humidity() * 10; + hundred = hundred / 100; + D_7seg[0] = hundred; + + ten = hmtp.humidity() * 10; + ten = ten - (hundred * 100); + ten = ten / 10; + D_7seg[1] = ten; + + one = hmtp.humidity() * 10; + one = one - (hundred * 100) - (ten * 10); + D_7seg[2] = one; + + D_7seg[3] = 0x10; + + D_dot[1] = 1; + D_dot[0] = 0; + D_dot[2] = 0; + + // set dynamic output data + sevenSegLed.SevenSegLed_main(D_7seg, D_dot); + + SP = 48.0; + Hys = 4.0; + if( hmtp.humidity() <= SP ) + relay = 1; + else if( hmtp.humidity() >= (SP + Hys) ) + relay = 0; + + wait(3.0); + + } +}