// Ramji Patel376 //
// Arduino.cc //

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 4); // set the LCD address to 0x27 for a 16 chars and 2 line display
int tempPin = PB3; // the output pin of LM35
int fan = PB1; // the pin where fan is
int led = PB4; // led pin
int temp;
int tempMin = 25;          // the temperature to start the fan 0%
int tempMax = 70;         //the maximum temperature when fan is at 100%
int fanSpeed;
int fanLCD;


 
void setup() {
  lcd.init();
  lcd.backlight();
  lcd.begin(16,4);
pinMode(fan, OUTPUT);
pinMode(led, OUTPUT);
pinMode(tempPin, INPUT);
digitalWrite(led,HIGH);

//Serial.begin(9600);
}
 
void loop()
{
temp = readTemp();
{            // get the temperature
 if (temp >70)
 {
  digitalWrite(led,HIGH);
 }
  else if (temp <70)
  {
   digitalWrite(led,LOW);
  }
}

//Serial.print( temp );
if(temp
  < tempMin)           // if temp is lower than minimum temp
{
fanSpeed = 0;
               // fan is not spinning
analogWrite(fan, fanSpeed);
fanLCD=0;
digitalWrite(fan,
  LOW);
}
if((temp >= tempMin) && (temp <= tempMax))         // if temperature is higher than minimum temp
{
fanSpeed = temp;//map(temp, tempMin, tempMax, 0, 100);       // the actual speed of fan//map(temp, tempMin, tempMax, 32, 255);
fanSpeed=1.5*fanSpeed;
fanLCD
  = map(temp, tempMin, tempMax, 0, 100);          // speed of fan to display on LCD100
analogWrite(fan,
  fanSpeed);            // spin the fan at the fanSpeed speed
}
 

lcd.setCursor(1,0);
lcd.print("TEMP: ");
lcd.print(temp);
          // display the temperature
lcd.print("C ");
lcd.setCursor(1,1);
      // move cursor to next line
lcd.print("FANS: ");
lcd.print(fanLCD);
      // display the fan speed
lcd.print("%");
lcd.setCursor(15,2);
lcd.print(analogRead (tempPin));
}
 int readTemp()
  {
  // get the temperature and convert it to celsius
temp = analogRead(tempPin);
return
  temp * 0.48828125;
 
}

ATTINY8520PU