Contents
Water Level LCD Indicator Cum Controller using At89C51
In our fast going work time, we forget our water tank motor to switch off when it is filled. So the result waste off many water today. Here my simple Micro-controller circuit is very useful to prevent above water wastage in our house.
LCD Display
LCD Liquid Crystal display is used to indicate the level of water in the water tank actual level.
The status of display is 4 level with water tank hight.
1. Quarter level
2. Half Level.
3. 3/4 level.
4. Full level
5. Water is empty with motor on or condition.
LIST OF COMPONENTS USED HERE.
1. AT89C51.
2. BC547 Transistor.
3. 12V relay,
3. 12Mhz Crystral
4. 33 Pf capacitor.
5. Resistor 1k.
6. 12v/1A regulated power supply.
CIRCUIT OPERATION.
When the water in tank is empty or below quarter level sensor, the motor on to start fill the water tank and also LCD with our circuit is indicate tank is empty and motor on status is displayed.
If the water reaches the level of half lcd indicates HALF LEVEL.
The motor remain on until water reaches the level of 3/4 level and finally water touch the WATER FULL SENSOR, at this time pump motor goes of off condition.
WATER LEVEL INDICATOR CUM CONTROLLER USING AT89C51.
When we use the water and its level gradually decrease near our level sensor, at the time LCD will indicate the level of water in the tank.
Lastly blow quarter level sensor again motor start to run and deliver water to out tank again and againt without fail.
AT89C51 MICRO CONTROLLER VIDEO.
APPLICATIONS:
1. Domestic
2. Agriculture
3. industries
C PROGRAM FOR THIS CIRCUIT
#include
sbit rs=P3^5;
sbit rw=P3^6;
sbit e=P3^7;
sbit quat=P3^0; // Quad level
sbit half=P3^1; // half level
sbit quat_3=P3^2; // 3/4 level
sbit full=P3^3; // full level
sbit motor=P3^4; // Motor
void delay(int k) //delay function
{
int i,j;
for(i=0;i<k;i++)
for(j=0;j<1275;j++);
}
void write(int j)
{
rs=1;
rw=0;
P2=j;
e=1;
delay(1);
e=0;
return;
}
void cmd(int j)
{
P2=j;
rs=0;
rw=0;
e=1;
delay(1);
e=0;
return;
}
void puts(char *a)
{
unsigned int p=0;
for(;a[p]!=0;p++)
write(a[p]);
}
void lcd_init(void)
{
cmd(0x38);
delay(1);
cmd(0x0c);
delay(1);
cmd(0x01);
cmd(0x80);
cmd(0x80);
puts(” TANK CAPACITY “);
delay(100);
cmd(0xC0);
puts(” INDHU KEERTHI “);
delay(300);
}
void main()
{
lcd_init();
quat=half=quat_3=full=1;
quat=half=quat_3=full=0;
motor = 0;
while(1)
{
if(quat==0&&half==0&&quat_3==0&&full==0)
{
cmd(0x80);
puts(” TANK EMPTY “);
cmd(0xC0);
puts(” PUMP MOTOR ON “);
motor=1;
}
else if(quat==1&&half==0&&quat_3==0&&full==0)
{
cmd(0x80);
puts(” QUARTER LEVEL “);
}
else if(quat==1&&half==1&&quat_3==0&&full==0)
{
cmd(0x80);
puts(” HALF LEVEL “);
}
else if(quat==1&&half==1&&quat_3==1&&full==0)
{
cmd(0x80);
puts(” 3/4 FULL LEVEL “);
}
else if(quat==1&&half==1&&quat_3==1&&full==1)
{
cmd(0x80);
puts(“WATER TANK FULL”);
cmd(0xC0);
puts(” PUMP MOTOR OFF “);
motor=0;
}
}
}
In case of dry run what will happen ?