From b56c1a143cc4b4f396f93af8396b51b17b7af630 Mon Sep 17 00:00:00 2001 From: sieja Date: Thu, 19 Jun 2025 09:30:26 +0200 Subject: [PATCH] =?UTF-8?q?Korekta=20czasu=20=20zmiany=20bieg=C3=B3w,=20r?= =?UTF-8?q?=C3=B3=C5=BCnicy=20predkosci=20dla=20speed=20trend,=20=20blokow?= =?UTF-8?q?anie=20zmiany=20biegu=20tylko=20w=20dol?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ESP_AutomatedGearShifter.ino | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ESP32/ESP_AutomatedGearShifter/ESP_AutomatedGearShifter.ino b/ESP32/ESP_AutomatedGearShifter/ESP_AutomatedGearShifter.ino index 22532de..549e289 100644 --- a/ESP32/ESP_AutomatedGearShifter/ESP_AutomatedGearShifter.ino +++ b/ESP32/ESP_AutomatedGearShifter/ESP_AutomatedGearShifter.ino @@ -5,7 +5,7 @@ #include #include -#define Version "2.2.3" +#define Version "2.2.4" ////2DO: // menu do zmiany zakresu predkosci biegów // menu do zmiany zakresu kątów biegów, obwodu koła, ilosci magnesow @@ -74,7 +74,7 @@ float spdRange6and7 = 29.9; float spdRange7and8 = 36.5; double calcTimeDiff = 0.0; double lastGearCalc = millis(); -double speedDiff = 1.0; +double speedDiff = 0.65; double accelerationShift = 1.0; int displGear = 9 - currentGear; float currentGearRangeLower = 0; @@ -264,6 +264,10 @@ void calcSpeed(){ if(abs(raw_speed - calcSpeed2) >= speedDiff) { if ((raw_speed - calcSpeed2) < 0) { speedTrend = -1; + readSignalTime_1 = -1; + readSignalTime_2 = -1; + readSignalTime_3 = -1; + readSignalTimeAvg = -1; } else { speedTrend = 1; @@ -312,14 +316,10 @@ void calcGear() { }; calcTimeDiff = millis() - lastGearCalc; - if (calcTimeDiff < 2000 && abs((calculatedGear-currentGear)) <= 1){ - currentGear = currentGear; - if (abs((calculatedGear-currentGear)) > 0){ + if (calcTimeDiff < 1500 && (calculatedGear - currentGear) == 1){ + currentGear = calculatedGear; pointerVisibility = 0; - - }else { - pointerVisibility = 1; - } + } else { currentGear = calculatedGear; lastGearCalc = millis(); @@ -353,7 +353,7 @@ void loop() { //################################################ //SPEED sleepSpd = millis() - millissSpd; - if (sleepSpd >= 1000.0) { //podaj zerową prędkość jeśli nie było odcztu od 1,5 s + if (sleepSpd >= 1000.0) { //podaj zerową prędkość jeśli nie było odcztu od 1,1 s raw_speed = 0.0; } //przejście w tryb uśpienia za przuycisku lub czasu