const int SUN_DIAL = 1; const int TEMP_DIAL = 5; const int COND_DIAL = 9; const int IN = A0; const long MIN_THRESHOLD = 5; const long MAX_VALUE = 1013; long lastSunPos = 0; long lastTempPos = 0; long lastCondPos = 0; void setup() { } void loop() { long signal = analogRead(IN); Serial.print("original signal = "); Serial.print(signal); signal = (100 * (signal - MIN_THRESHOLD)) / MAX_VALUE; if (Serial && Serial.available()) { byte serialHigh = Serial.read() - 48; byte serialLow = Serial.read() - 48; signal = (serialHigh * 10) + serialLow; Serial.print("; serial input = "); Serial.println(signal); } Serial.print("; normalized signal = "); Serial.println(signal); if (signal > 3 && signal < 10) { lastTempPos = 0; } else if (signal > 10 && signal < 20) { lastTempPos = 85; } else if (signal > 20 && signal < 30) { lastTempPos = 170; } else if (signal > 30 && signal < 40) { lastTempPos = 240; } else if (signal > 40 && signal < 50) { lastCondPos = 0; } else if (signal > 50 && signal < 60) { lastCondPos = 85; } else if (signal > 60 && signal < 70) { lastCondPos = 170; } else if (signal > 70 && signal < 80) { lastCondPos = 250; } else if (signal > 80 && signal < 90) { lastSunPos = 0; } else if (signal > 90) { lastSunPos = 250; } analogWrite(SUN_DIAL, lastSunPos); analogWrite(TEMP_DIAL, lastTempPos); analogWrite(COND_DIAL, lastCondPos); delay(1000); }