3 Temperature sensors + GUI
Dependencies: F746_GUI mbed BME280
main.cpp@1:a67ad5922c01, 2020-01-17 (annotated)
- Committer:
- pay0ee
- Date:
- Fri Jan 17 14:45:03 2020 +0000
- Revision:
- 1:a67ad5922c01
- Parent:
- 0:80304e80a329
Nothing
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pay0ee | 0:80304e80a329 | 1 | #include "mbed.h" |
pay0ee | 0:80304e80a329 | 2 | #include "stm32746g_discovery_lcd.h" |
pay0ee | 0:80304e80a329 | 3 | #include "stm32746g_discovery_ts.h" |
pay0ee | 0:80304e80a329 | 4 | #include "BME280.h" |
pay0ee | 0:80304e80a329 | 5 | #include "F746_GUI.hpp" |
pay0ee | 0:80304e80a329 | 6 | |
pay0ee | 0:80304e80a329 | 7 | Serial pc(USBTX, USBRX); |
pay0ee | 0:80304e80a329 | 8 | |
pay0ee | 0:80304e80a329 | 9 | #if defined(TARGET_LPC1768) |
pay0ee | 0:80304e80a329 | 10 | BME280 sensor(PB_9, PB_8); |
pay0ee | 0:80304e80a329 | 11 | #else |
pay0ee | 0:80304e80a329 | 12 | BME280 sensor(I2C_SDA, I2C_SCL); |
pay0ee | 0:80304e80a329 | 13 | #endif |
pay0ee | 0:80304e80a329 | 14 | TS_StateTypeDef TS_State; |
pay0ee | 0:80304e80a329 | 15 | |
pay0ee | 1:a67ad5922c01 | 16 | PwmOut ena(D0); |
pay0ee | 1:a67ad5922c01 | 17 | |
pay0ee | 0:80304e80a329 | 18 | DigitalOut MUX0(D7); // low-active |
pay0ee | 0:80304e80a329 | 19 | DigitalOut MUX1(D4); |
pay0ee | 0:80304e80a329 | 20 | DigitalOut MUX2(D1); |
pay0ee | 0:80304e80a329 | 21 | |
pay0ee | 0:80304e80a329 | 22 | float x1=0; |
pay0ee | 0:80304e80a329 | 23 | float Temp1=0; |
pay0ee | 0:80304e80a329 | 24 | float Temp2=0; |
pay0ee | 0:80304e80a329 | 25 | float Temp3=0; |
pay0ee | 0:80304e80a329 | 26 | float y1=0; |
pay0ee | 0:80304e80a329 | 27 | float z1=0; |
pay0ee | 0:80304e80a329 | 28 | uint8_t text[30]; |
pay0ee | 0:80304e80a329 | 29 | uint8_t idx; |
pay0ee | 0:80304e80a329 | 30 | int num; |
pay0ee | 0:80304e80a329 | 31 | |
pay0ee | 0:80304e80a329 | 32 | int main() |
pay0ee | 0:80304e80a329 | 33 | { |
pay0ee | 1:a67ad5922c01 | 34 | float val; |
pay0ee | 1:a67ad5922c01 | 35 | float percentage; |
pay0ee | 1:a67ad5922c01 | 36 | |
pay0ee | 1:a67ad5922c01 | 37 | ena.period(1.0/5000.0);// 4Khz period |
pay0ee | 1:a67ad5922c01 | 38 | |
pay0ee | 0:80304e80a329 | 39 | Label label1(350, 40, "Temp. microcontroller (C): ", Label::RIGHT, Font16); |
pay0ee | 0:80304e80a329 | 40 | Label label2(285, 70, "Temp. batteries (C): ", Label::RIGHT, Font16); |
pay0ee | 0:80304e80a329 | 41 | Label label3(240, 100, "Temp. motor (C): ", Label::RIGHT, Font16); |
pay0ee | 0:80304e80a329 | 42 | |
pay0ee | 0:80304e80a329 | 43 | SeekBar myBar(100, 200, 250, 25, 35, 30, "25", "30", "35"); |
pay0ee | 0:80304e80a329 | 44 | |
pay0ee | 0:80304e80a329 | 45 | NumericLabel<float> myLabelbar(210, 150, "%5.2f", 30); |
pay0ee | 0:80304e80a329 | 46 | NumericLabel<float> Temp1(350, 40, "%5.2f", 0); |
pay0ee | 0:80304e80a329 | 47 | NumericLabel<float> Temp2(350, 70, "%5.2f", 0); |
pay0ee | 0:80304e80a329 | 48 | NumericLabel<float> Temp3(350, 100, "%5.2f", 0); |
pay0ee | 0:80304e80a329 | 49 | |
pay0ee | 0:80304e80a329 | 50 | ButtonGroup bG(420, 196, 50, 36, 2, (string[]){"ON", "OFF"},0, 5, 1, 0); |
pay0ee | 0:80304e80a329 | 51 | |
pay0ee | 1:a67ad5922c01 | 52 | |
pay0ee | 0:80304e80a329 | 53 | |
pay0ee | 0:80304e80a329 | 54 | while (1) { |
pay0ee | 0:80304e80a329 | 55 | |
pay0ee | 0:80304e80a329 | 56 | if (myBar.Slide()) |
pay0ee | 0:80304e80a329 | 57 | { |
pay0ee | 0:80304e80a329 | 58 | val = myBar.GetValue(); |
pay0ee | 0:80304e80a329 | 59 | myLabelbar.Draw(val); |
pay0ee | 0:80304e80a329 | 60 | printf("val = %f\r\n", val); |
pay0ee | 0:80304e80a329 | 61 | } |
pay0ee | 0:80304e80a329 | 62 | |
pay0ee | 0:80304e80a329 | 63 | if (bG.GetTouchedNumber(num)) |
pay0ee | 0:80304e80a329 | 64 | { |
pay0ee | 0:80304e80a329 | 65 | if (num == 0) myBar.Activate(); |
pay0ee | 0:80304e80a329 | 66 | else myBar.Inactivate(); |
pay0ee | 0:80304e80a329 | 67 | } |
pay0ee | 0:80304e80a329 | 68 | |
pay0ee | 0:80304e80a329 | 69 | MUX0 = 0; |
pay0ee | 0:80304e80a329 | 70 | MUX1 = 0; |
pay0ee | 0:80304e80a329 | 71 | MUX2 = 0; |
pay0ee | 0:80304e80a329 | 72 | |
pay0ee | 0:80304e80a329 | 73 | BME280 sensor(I2C_SDA, I2C_SCL); |
pay0ee | 0:80304e80a329 | 74 | |
pay0ee | 0:80304e80a329 | 75 | |
pay0ee | 0:80304e80a329 | 76 | x1 = sensor.getTemperature(); |
pay0ee | 1:a67ad5922c01 | 77 | if(x1< 100 and x1>10){ |
pay0ee | 0:80304e80a329 | 78 | Temp1.Draw(x1); |
pay0ee | 0:80304e80a329 | 79 | } |
pay0ee | 1:a67ad5922c01 | 80 | |
pay0ee | 0:80304e80a329 | 81 | MUX0 = 1; |
pay0ee | 0:80304e80a329 | 82 | MUX1 = 0; |
pay0ee | 0:80304e80a329 | 83 | MUX2 = 0; |
pay0ee | 0:80304e80a329 | 84 | |
pay0ee | 0:80304e80a329 | 85 | BME280 sensor1(I2C_SDA, I2C_SCL); |
pay0ee | 0:80304e80a329 | 86 | |
pay0ee | 0:80304e80a329 | 87 | |
pay0ee | 0:80304e80a329 | 88 | y1 = sensor1.getTemperature(); |
pay0ee | 1:a67ad5922c01 | 89 | if(y1<100 and y1>10){ |
pay0ee | 0:80304e80a329 | 90 | Temp2.Draw(y1); |
pay0ee | 0:80304e80a329 | 91 | } |
pay0ee | 0:80304e80a329 | 92 | |
pay0ee | 0:80304e80a329 | 93 | MUX0 = 0; |
pay0ee | 0:80304e80a329 | 94 | MUX1 = 1; |
pay0ee | 0:80304e80a329 | 95 | MUX2 = 0; |
pay0ee | 0:80304e80a329 | 96 | |
pay0ee | 0:80304e80a329 | 97 | BME280 sensor2(I2C_SDA, I2C_SCL); |
pay0ee | 0:80304e80a329 | 98 | |
pay0ee | 0:80304e80a329 | 99 | z1 = sensor2.getTemperature(); |
pay0ee | 1:a67ad5922c01 | 100 | |
pay0ee | 1:a67ad5922c01 | 101 | if(z1<100 and z1>10){ |
pay0ee | 0:80304e80a329 | 102 | Temp3.Draw(z1); |
pay0ee | 0:80304e80a329 | 103 | } |
pay0ee | 1:a67ad5922c01 | 104 | |
pay0ee | 1:a67ad5922c01 | 105 | if ( x1 > val){ |
pay0ee | 1:a67ad5922c01 | 106 | percentage= x1*0.01f; |
pay0ee | 1:a67ad5922c01 | 107 | ena.write(percentage); |
pay0ee | 1:a67ad5922c01 | 108 | } |
pay0ee | 1:a67ad5922c01 | 109 | else if (x1< val){ |
pay0ee | 1:a67ad5922c01 | 110 | ena.write(0.00f); |
pay0ee | 1:a67ad5922c01 | 111 | } |
pay0ee | 0:80304e80a329 | 112 | |
pay0ee | 0:80304e80a329 | 113 | } |
pay0ee | 1:a67ad5922c01 | 114 | } |