// 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;
}