#include LiquidCrystal lcd (7,6,5,4,3,2); int tempPin = A1; int fan = 11; int led = 8; int temp; int tempMin = 20; int tempMax = 26; int fanSpeed; int fanLCD; void setup () { pinMode (fan, OUTPUT); pinMode (led, OUTPUT); pinMode (tempPin, INPUT); lcd.begin (16, 2); } void loop () { temp = readTemp (); if (temp < tempMin) { fanSpeed = 0; digitalWrite (fan, LOW); } if ( (temp >= tempMin) && (temp <= tempMax) ) { fanSpeed = map (temp, tempMin, tempMax, 32, 255); fanLCD = map (temp, tempMin, tempMax, 0, 100); analogWrite (fan, fanSpeed); } if(temp > tempMax) { digitalWrite (led, HIGH); } else { digitalWrite (led, LOW); } lcd.print ("Temp: "); lcd.print (temp); lcd.print ("C "); lcd.setCursor (0, 1); lcd.print ("Fan: "); lcd.print (fanLCD); lcd.print ("%"); delay (200); lcd.clear (); } int readTemp () { temp = analogRead (tempPin); return temp * 0.48828125; }