Simple display mode Update

简洁显示模式中加入数值滚动以及状态条
Simple display mode with numeric scrolling and status bar
This commit is contained in:
createskyblue
2020-08-16 18:07:19 +08:00
parent b57fc16fb9
commit adbd5b9976
2 changed files with 46 additions and 31 deletions

View File

@@ -54,7 +54,7 @@
//关于界面-项目页面二维码
const unsigned char QRCode[] PROGMEM = { 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x0e, 0x7c, 0x0c, 0x00, 0x00, 0x1f, 0xfe, 0x3f, 0xc1, 0x8c, 0x0c, 0x7f, 0xf8, 0x1f, 0xfe, 0x3f, 0xc1, 0x8c, 0x0c, 0x7f, 0xf8, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x30, 0x01, 0xf3, 0x8c, 0x60, 0x18, 0x18, 0x06, 0x3e, 0x0f, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3e, 0x0f, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x18, 0x06, 0x3f, 0xc1, 0xf0, 0x0c, 0x60, 0x18, 0x1f, 0xfe, 0x3e, 0x30, 0x70, 0x0c, 0x7f, 0xf8, 0x1f, 0xfe, 0x3e, 0x30, 0x70, 0x0c, 0x7f, 0xf8, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0xce, 0x73, 0x8c, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x01, 0x83, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x01, 0x83, 0x8f, 0xff, 0xff, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x00, 0xc0, 0x01, 0xc1, 0x8c, 0x00, 0x7f, 0x1f, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0x07, 0xc7, 0xcf, 0xce, 0x7f, 0x8c, 0x1f, 0xf8, 0xf8, 0x00, 0x3e, 0x3e, 0x03, 0xf0, 0x7f, 0x00, 0xf8, 0x00, 0x3e, 0x3e, 0x03, 0xf0, 0x7f, 0x00, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0xe0, 0xc7, 0xcf, 0xfe, 0x03, 0x80, 0x1f, 0xe7, 0x18, 0xc0, 0x31, 0xfe, 0x0c, 0x0c, 0x1c, 0xe0, 0x18, 0xc0, 0x31, 0xfe, 0x0c, 0x0c, 0x1c, 0xe0, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0xe7, 0x39, 0xf1, 0xf0, 0x03, 0xfc, 0x7c, 0xf8, 0x1f, 0x00, 0x31, 0xcf, 0xf3, 0x8c, 0x03, 0x00, 0x1f, 0x00, 0x31, 0xcf, 0xf3, 0x8c, 0x03, 0x00, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0xe0, 0x3f, 0xff, 0xc1, 0x83, 0x8f, 0x9c, 0xe7, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x18, 0x00, 0x30, 0x0e, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf0, 0x3e, 0x7c, 0x0f, 0xe0, 0x00, 0xff, 0xff, 0xf0, 0x3e, 0x7c, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x00, 0x00, 0x31, 0xce, 0x0c, 0x0c, 0x63, 0xe0, 0x1f, 0xfe, 0x30, 0x01, 0x83, 0x8f, 0xe0, 0xff, 0x1f, 0xfe, 0x30, 0x01, 0x83, 0x8f, 0xe0, 0xff, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x31, 0xf1, 0x8f, 0x80, 0x03, 0xe7, 0x18, 0x06, 0x3f, 0xff, 0x83, 0x83, 0xe3, 0x1f, 0x18, 0x06, 0x3f, 0xff, 0x83, 0x83, 0xe3, 0x1f, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x18, 0x06, 0x31, 0xfe, 0x73, 0x8f, 0x80, 0xf8, 0x1f, 0xfe, 0x31, 0xfe, 0x00, 0x0c, 0x60, 0xe7, 0x1f, 0xfe, 0x31, 0xfe, 0x00, 0x0c, 0x60, 0xe7, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0, 0x00, 0x00, 0x31, 0xfe, 0x0c, 0x0f, 0x9f, 0xe0 };
//const unsigned char QRCode[] PROGMEM={0};
//ICO
//width:16,height:16
const unsigned char Tag[] PROGMEM = { 0x00, 0x00, 0x7e, 0x00, 0x7f, 0x00, 0x73, 0x80, 0x61, 0xc0, 0x61, 0xe0, 0x73, 0xf0, 0x3f, 0xf8, 0x1f, 0xfc, 0x0f, 0xfe, 0x07, 0xff, 0x03, 0xff, 0x01, 0xfe, 0x00, 0xfc, 0x00, 0x78, 0x00, 0x30 };
@@ -357,9 +357,9 @@ void Flip(bool Fmode) {
}
void setup() {
arduboy.begin();
arduboy.setFrameRate(15);
arduboy.setFrameRate(30);
//Serial.begin(9600);
//Serial.begin(115200);
// set the pin modes
pinMode(SENSOR_PIN, INPUT);
pinMode(VIN_PIN, INPUT);
@@ -734,38 +734,47 @@ void MainScreen() {
arduboy.setTextSize(4);
if (ShowTemp > 500) arduboy.print(F("000")); else arduboy.print(ShowTemp);
arduboy.drawRect(55, 16, 72, 32, 0);
arduboy.setTextSize(1);
//温度条
//框
arduboy.drawRect(1, 49, 102, 14, 0);
//条
if (ShowTemp <= 500) arduboy.fillRect(1, 49, map(ShowTemp, 0, 500, 2, 102), 14, 0);
//指示部分
arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 2, 50, 3, 13, 0);
//先来个白底
arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 3, 60, 5, 4, 0);
arduboy.drawLine(map(Setpoint, 0, 500, 2, 102) - 1, 60, map(Setpoint, 0, 500, 2, 102) - 1, 49);
//画指示针
arduboy.drawSlowXYBitmap(map(Setpoint, 0, 500, 2, 102) - 3, 59, Pointer, 5, 4, 1);
//功率条
arduboy.drawRect(104, 49, 23, 14, 0);
arduboy.fillRect(104, 49, map(Output, 255, 0, 0, 23), 14, 0);
SetTextColor(1);
//////////////进入反色////////////////////////////////
arduboy.setCursor(2, 55); arduboy.print(Setpoint, 0); arduboy.print((char)248); arduboy.print(F("C")); //探头预设温度
arduboy.setCursor(105, 55); arduboy.print(map(Output, 255, 0, 0, 100)); arduboy.print(F("%")); //功率百分比
DrawStatusBar(0);
arduboy.display();
} else {
if (ShowTemp > 500) DisplayNum(999); else DisplayNum(ShowTemp);;
arduboy.clear();
if (ShowTemp > 500) DisplayNum(999); else DisplayNum(ShowTemp);
arduboy.fillRect(0, 48, 128, 3, 0);
DrawStatusBar(1);
arduboy.display();
}
}
void DrawStatusBar(bool color) {
SetTextColor(color);
arduboy.setTextSize(1);
//温度条
//框
arduboy.drawRect(1, 49, 102, 14, color);
//条
if (ShowTemp <= 500) arduboy.fillRect(1, 49, map(ShowTemp, 0, 500, 2, 102), 14, color);
//指示部分
arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 2, 50, 3, 13, color);
//先来个白底
arduboy.fillRect(map(Setpoint, 0, 500, 2, 102) - 3, 60, 5, 4, color);
arduboy.drawLine(map(Setpoint, 0, 500, 2, 102) - 1, 60, map(Setpoint, 0, 500, 2, 102) - 1, 49, !color);
//画指示针
arduboy.drawSlowXYBitmap(map(Setpoint, 0, 500, 2, 102) - 3, 59, Pointer, 5, 4, !color);
//功率条
arduboy.drawRect(104, 49, 23, 14, color);
arduboy.fillRect(104, 49, map(Output, 255, 0, 0, 23), 14, color);
SetTextColor(!color);
//////////////进入反色////////////////////////////////
arduboy.setCursor(2, 55); arduboy.print(Setpoint, 0); arduboy.print((char)248); arduboy.print(F("C")); //探头预设温度
arduboy.setCursor(105, 55); arduboy.print(map(Output, 255, 0, 0, 100)); arduboy.print(F("%")); //功率百分比
SetTextColor(color);
}
//设置画笔颜色
void SetTextColor(bool color) {
arduboy.setTextBackground(!color);
@@ -939,7 +948,7 @@ byte QueryMenuObject() {
//模拟数字滚轮 Numerical scrolling effect
void DisplayNum(int Num) {
arduboy.clear();
arduboy.setTextSize(6);
SetTextColor(0);
//数字滚轮
@@ -957,7 +966,6 @@ void DisplayNum(int Num) {
//刻度标
arduboy.fillRect(0, 0, 128, 2, 0); //上遮罩层
arduboy.fillRect(0, 51, 128, 13, 0); //下遮罩层
arduboy.display();
}
//数值输入界面
@@ -965,7 +973,9 @@ void DisplayNum(int Num) {
uint16_t InputScreen() {
lastbutton = (!digitalRead(BUTTON_PIN));
do {
arduboy.clear();
DisplayNum(getRotary());
arduboy.display();
CheckLastButton();
} while (digitalRead(BUTTON_PIN) || lastbutton);
beep();