From c5a65790cb71a8e1ee1bc9ad16efb40cf6c6cdbd Mon Sep 17 00:00:00 2001 From: sieja Date: Mon, 10 Feb 2025 21:36:33 +0100 Subject: [PATCH] korekta spectral sensor --- .../SpectralSensor/SpectralSensor.ino | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/LeonardoProMicro/SpectralSensor/SpectralSensor.ino b/LeonardoProMicro/SpectralSensor/SpectralSensor.ino index 21342fe..dee4ee7 100644 --- a/LeonardoProMicro/SpectralSensor/SpectralSensor.ino +++ b/LeonardoProMicro/SpectralSensor/SpectralSensor.ino @@ -60,6 +60,7 @@ int GraphHeight = 32; int GrapWidth = 20; float ReadValues[6] = {0, 0, 0, 0, 0, 0}; float maxValue = 0.0; +float minValue = 0.0; float test_vle = 1.0; char FloatInChar[20]; char ChValue[20]; @@ -257,7 +258,7 @@ void loop() { } display.setRotation(0); - //show relative calculated graph + //show relative calculated values graph if (menu_number == 3 || menu_number == 7 ){ maxValue = 0; drawControls(); @@ -332,7 +333,7 @@ void loop() { } - //show raw data relative graph + //show relative raw data graph if (menu_number == 4 || menu_number == 8 ){ maxValue = 0; drawControls(); @@ -341,12 +342,15 @@ void loop() { for (int i = 0; i < 5; i++) { maxValue = max(maxValue, ReadValues[i]); } - HeightRed = int((RawRed / maxValue) * GraphHeight); - HeightOrange = int((RawOrange / maxValue) * GraphHeight); - HeightYellow = int((RawYellow / maxValue) * GraphHeight); - HeightGreen = int((RawGreen / maxValue) * GraphHeight); - HeightBlue = int((RawBlue / maxValue) * GraphHeight); - HeightViolet = int((RawViolet / maxValue) * GraphHeight); + for (int i = 0; i < 5; i++) { + minValue = min(minValue, ReadValues[i]); + } + HeightRed = int(((RawRed + abs(minValue)) / (maxValue + abs(minValue)) * GraphHeight); + HeightOrange = int(((RawOrange + abs(minValue)) / (maxValue + abs(minValue)) * GraphHeight); + HeightYellow = int(((RawYellow + abs(minValue)) / (maxValue + abs(minValue)) * GraphHeight); + HeightGreen = int(((RawGreen + abs(minValue)) / (maxValue + abs(minValue)) * GraphHeight); + HeightBlue = int(((RawBlue + abs(minValue)) / (maxValue + abs(minValue)) * GraphHeight); + HeightViolet = int(((RawViolet + abs(minValue)) / (maxValue + abs(minValue)) * GraphHeight); display.setCursor(1 * GrapWidth -10, 10);