3 Temperature sensors + GUI

Dependencies:   F746_GUI mbed BME280

Committer:
pay0ee
Date:
Fri Jan 17 14:45:03 2020 +0000
Revision:
1:a67ad5922c01
Parent:
0:80304e80a329
Nothing

Who changed what in which revision?

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