int analogPin = 32; int val = 0; int overallAverage = 0; int overallCount = 0; int highestVal = 0; int lowestVal = 100000; int tenMinAverage = 0; int tenMinCount = 0; int averages[144]; int segmentCount = 0; unsigned long lastTime = 0; unsigned long curTime = 0; char input; int celsiusToF(int x){ x = (x * 9)/5; x += 3200; return x; } void updateMeasures(int x){ overallAverage += x; if (x > highestVal){ highestVal = x; } if (x < lowestVal){ lowestVal = x; } } void showMeasures(){ Serial.println("######"); Serial.print("Overall Average: "); Serial.println((overallAverage/overallCount)/100); Serial.print("Highest Value: "); Serial.println(highestVal/100); Serial.print("Lowest Value: "); Serial.println(lowestVal/100); Serial.print("Ten Minute Average: "); Serial.println(tenMinAverage/100); Serial.println("######"); Serial.println(""); } void setup() { Serial.begin(115200); int i; for(i = 0; i < 144; i++){ averages[i] = 0; } } void loop() { if (Serial.available()){ input = Serial.read(); if (input == 'r'){ Serial.println("List Of Averages: "); int i; for(i = 0; i < 144; i++){ Serial.print(averages[i]); Serial.print(", "); } } } val = analogRead(analogPin); val = celsiusToF(val); overallCount += 1; tenMinCount += 1; tenMinAverage += val; updateMeasures(val); curTime = millis(); if ((curTime - lastTime) >= 600000){ tenMinAverage = tenMinAverage/tenMinCount; showMeasures(); if (segmentCount < 144){ averages[segmentCount] = tenMinAverage; } lastTime = curTime; segmentCount += 1; tenMinAverage = 0; tenMinCount = 0; } delay(500); }