OP’s code within XXXX
tags !
#include<LiquidCrystal.h>
LiquidCrystal lcd(13,12,11,10,9,8);
#define in 14
#define out 19
#define relay1 2
#define relay2 3
#define relay3 4
#define relay4 5
#define relay5 6
int count=0;
int fan = 7;
int fanSpeed=0;
void IN()
{
count++;
lcd.clear();
lcd.print("Person In Room:");
lcd.setCursor(0,1);
lcd.print(count);
delay(1000);
}
void OUT()
{
count--;
lcd.clear();
lcd.print("Person In Room:");
lcd.setCursor(0,1);
lcd.print(count);
delay(1000);
}
void setup()
{
lcd.begin(16,2);
lcd.print("Student Counter");
delay(2000);
pinMode(in, INPUT);
pinMode(out, INPUT);
pinMode(fan, OUTPUT);
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(relay5, OUTPUT);
lcd.clear();
lcd.print("Person In Room:");
lcd.setCursor(0,1);
lcd.print(count);
lcd.clear();
}
void loop()
{
while(digitalRead(in) == LOW)
{
IN();
digitalRead(out) == 0;
delay(600);
break;
}
while(digitalRead(out) == LOW)
{
OUT();
digitalRead(in) == 0;
delay(600);
break;
}
if(count<=0)
{
lcd.clear();
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
digitalWrite(relay3, LOW);
digitalWrite(relay4, LOW);
digitalWrite(relay5, LOW);
digitalWrite(fan, LOW);
fanSpeed = 0;
analogWrite(fan, fanSpeed);
lcd.clear();
lcd.print("Nobody In Room");
lcd.setCursor(0,1);
lcd.print("Light&Fan Is OFF");
delay(200);
count = 0;
}
if(count >= 1 && count <= 4)
{
lcd.clear();
digitalWrite(relay1, HIGH);
fanSpeed = 0.1;
analogWrite(fan, fanSpeed);
digitalWrite(fan, HIGH);
lcd.clear();
lcd.print("Fan Speed 20%");
lcd.setCursor(0,1);
lcd.print("R1 ON");
delay(200);
}
if(count >= 5 && count <= 8)
{
lcd.clear();
fanSpeed = 40;
analogWrite(fan, fanSpeed);
//digitalWrite(fan, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
lcd.clear();
lcd.print("Fan Speed 40%");
lcd.setCursor(0,1);
lcd.print("R1,R2 ON");
delay(200);
}
if(count >= 9 && count <= 12)
{
lcd.clear();
fanSpeed = 60;
analogWrite(fan, fanSpeed);
//digitalWrite(fan, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(relay3, HIGH);
lcd.clear();
lcd.print("Fan Speed 60%");
lcd.setCursor(0,1);
lcd.print("R1,R2,R3 ON");
delay(200);
}
if(count >= 13 && count <= 16)
{
lcd.clear();
fanSpeed = 80;
analogWrite(fan, fanSpeed);
//digitalWrite(fan, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(relay3, HIGH);
digitalWrite(relay4, HIGH);
lcd.clear();
lcd.print("Fan Speed 80%");
lcd.setCursor(0,1);
lcd.print("R1,R2,R3,R4 ON");
delay(200);
}
if(count >= 17 && count <= 20)
{
lcd.clear();
fanSpeed = 100;
analogWrite(fan, fanSpeed);
digitalWrite(fan, HIGH);
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(relay3, HIGH);
digitalWrite(relay4, HIGH);
digitalWrite(relay5, HIGH);
lcd.clear();
lcd.print("Fan Speed 100%");
lcd.setCursor(0,1);
lcd.print("ALL ON");
delay(200);
}
else
lcd.clear();
lcd.print("Class is FULL");
}
Obviously, You’ve never tried to compile or run this block of code.
There are some very ‘odd’ constructs - which was mentioned earlier.
digitalRead(in) == 0; does nothing
Also - since you name the relays 1,2,3 etc Why not name them by their function?
My very first comment will be -
WATCH OUT FOR THE MAINS WIRING AND SAFETY/ISOLATION