8000 Fixed some bags · astrosander/arduino-speedometer@1aaba7e · GitHub
[go: up one dir, main page]

Skip to content

Commit 1aaba7e

Browse files
committed
Fixed some bags
1 parent a323549 commit 1aaba7e

File tree

2 files changed

+19
-31
lines changed

2 files changed

+19
-31
lines changed

firmware/Speedometr/DrawPlot.ino

+3-7
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,18 @@ void drawPlot1(byte pos, byte row, byte width, byte height, int *plot_array) {
2727
// Serial.println("\n");
2828

2929
int max_val = -32000;
30-
int min_val = 32000;
30+
int min_val = 0;
3131
for (byte i = 0; i < width; i++) {
32-
min_val = min(min_val, plot_array[i]);
32+
// min_val = min(min_val, plot_array[i]);
3333
max_val = max(max_val, plot_array[i]);
3434
// if (plot_array[i] > max_value) max_value = plot_array[i];
3535
// if (plot_array[i] && plot_array[i] < min_value) min_value = plot_array[i];
3636
}
3737

3838

39-
min_val = min_val*0.95;
39+
// min_val = min_val*0.95*0;
4040
max_val = max_val*1.05;
4141

42-
// Serial.print("min_val=" + String(min_val));
43-
// Serial.print(" ");
44-
// Serial.print("max_val=" + String(max_val));
45-
// Serial.println("\n");
4642

4743
for (byte i = 0; i < width; i++) { // each column of parameters
4844
int fill_val = plot_array[i];

firmware/Speedometr/Speedometr.ino

+16-24
Original file line numberDiff line numberDiff line change
@@ -58,40 +58,37 @@ void loop()
5858

5959
int val = abs(mean-analogRead(A0));
6060

61+
int delta = millis() - lastturn;
62+
6163
if(val > 4){
62-
Serial.println(val);
6364
lcd.setBacklight(HIGH);
64-
int delta = millis() - lastturn;
6565
lastturn = millis();
66+
6667
if(f) return;
67-
f = 1;
6868
if(delta < 70) return;
6969

7070
float PrevVel = vel;
71+
float Acceleration = (vel - PrevVel) / delta * 1000;
7172
vel = len / (delta) * 1000;
73+
f = 1;
7274

73-
if(PrevVel < 0.3 && vel > 4) {vel = 0; return;}
74-
75-
Serial.print(vel);
76-
Serial.print(" ");
77-
Serial.println(delta);
75+
if((PrevVel < 0.3 && vel > 4) || Acceleration > 80) {vel = 0; return;}
7876

7977
MaxSpeed = max(MaxSpeed, vel);
80-
MaxAcceleration = max(MaxAcceleration, (vel - PrevVel) / delta * 1000);
78+
MaxAcceleration = max(MaxAcceleration, Acceleration);
8179
num++;
8280

8381
if(delta < 2000)numC++;
84-
85-
8682
}
8783
else
8884
{
89-
if(millis() - lastturn > 4000) {
90-
if(millis() - lastturn > 15000) lcd.setBacklight(LOW);
91-
else lcd.setBacklight(HIGH);
92-
vel = 0;
93-
}
94-
f=0;
85+
if(delta > 4000) {
86+
if(delta > 30000) lcd.setBacklight(LOW);
87+
else lcd.setBacklight(HIGH);
88+
89+
vel = 0;
90+
}
91+
f=0;
9592
}
9693

9794
if(enc.clicks == 2) mode = 0;
@@ -100,20 +97,15 @@ void loop()
10097
if (enc.click()) {
10198
lastturn = millis();
10299
lcd.setBacklight(HIGH);
100+
if(delta > 30000) return;
103101
lcd.clear();
104102
mode = (mode + 1) % NumMode;
105-
// if(mode == 4){lcd.setCursor(0,0); lcd.print("secondly Plot"); delay(500);}
106-
// else if(mode == 5){lcd.setCursor(0,0); lcd.print("1 minute Plot"); delay(500);}
107-
// else if(mode == 6){lcd.setCursor(0,0); lcd.print("5 minute Plot"); delay(500);}
108-
// else if(mode == 7){lcd.setCursor(0,0); lcd.print("15 minute Plot"); delay(500);}
109-
// lcd.clear();
110-
//
111103
}
112104

113105
if (enc.held()) SpeedFormat = !SpeedFormat;
114106

115107
if (myTimer.isReady()) DrawDisplay();
116-
if (BackUp.isReady()) BackUP();
108+
if (BackUp.isReady() && delta < 4000) BackUP();
117109

118110
plotTick();
119111
}

0 commit comments

Comments
 (0)
0