Você está na página 1de 7

(Water-Level Detector)

Abstract This is a report on the design of a Water-level


Detector. It functions based on the principles of conduction.
The system was designed mainly using ATMeL assembly
language and some part of it using Arduino Programming
Language. The microcontroller used is a pair of Arduino Uno.
This topic was chosen in order to reduce human wastage and
as such, improve human welfare.
(Abstract)
KeywordsConduction; LED; sensors; Microcontroller;
Arduino; ATMeL.

I.

THE PROBLEM STATEMENT

We people are naturally careless in the things we do. For


example, when we are filling up the bathtub in the toilet or
when we are filling the swimming pool or a water tank,
sometimes our mind gets distracted and we tend to forget
about the task that we were doing beforehand. Because of
this distraction, we start to focus more on other things and
most of the time, the water that we were filling spills out of
the container. This causes wastage and it is very bad for the
economy.
Therefore, we have decided to design a water-level
indicator system that will indicate the level of the water in
the container and notify the user when it is almost filled up.

II.

Fig. 1. The proposed conceptual framework to be used for


the water level detector. The input is the water level where
the sensor detect the water level either in low water level, or
medium water level and high water level. The system
output, which is the LED and buzzer is obtained from the
microcontroller after gaining parameter from the sensor.

IV.

FLOW CHART

SYSTEM DESCRIPTION

A constant 9v power supply is given to the


microcontroller and rest of the circuit from a battery.The tank
has 3 conductive sensors and all are connected to resistor.
The use of transistor is it acts as inverter (in on state gives
low voltage at output and in non conducting state gives high
voltage at its output), all transistors outputs are connected to
1,2,3 pins (PORTB) of microcontroller.Output for the 3rd
level (tank full condition) is also indicated by red light LED
with a continuous buzzer sound.The operation of this project
is very simple and can be understood easily. In our
projectwater level indicator there are 3 main conditions:
1. There is less water available in the source tank-before low
level
2. Intermediate level-after low level,but before second level
3. There is large amount of water available in the source
tank-reached high level
III.

BLOCK DIAGRAM

Fig. 2. The process flow of the water level detector system.


The process start as the water flow in the container with the
sensor in it. As the water level did not reach the low-level
sensor, the system did not produce an output until the lowlevel sensor detected. Once the low-level detected, the
system will determine either medium-level sensor detected
or not. If none of medium-level sensor detected, the green
led is light up as output otherwise the system will continue
to determine either high-level sensor detected or not. The
detection result of high-level will make the buzzer switch on
along with the red led and yellow led will be on if none of
the high-level sensor is detected.
V.

FINAL SCHEMATIC

Fig. 3. Schematic diagram of the water level detector


system

Fig. 4(b). Medium water-level detection. Water is filled until


it reaches the second probe which detects the level of water
at the medium level. Current conducts through the water and
the yellow LED is lit up.

VI.
VII. PICTURES OF FINISHED PRODUCT

Fig. 4(a). Low water-level detection. The probe emitting the


current source is placed at the bottom of the container. The
water is filled until it reaches the first probe detecting the
low water level. Current conducts through the water
medium and the green LED is lit up.

Fig. 4(c). High water level detection. Water is filled until it


reaches the third probe which detects water at high level.
Current is conducted to the probe using water as a medium.
The third probe is activated and the red LED lights up as a
response.

appliances such as the water cooler where there is a danger


of motor-burnout when there is no water in the radiator used
up also it can be used in fuel level indication.

(a)
Fig. 4(d). The overview picture of the finished product.
V1-voltage in ; J1 piezo buzzer ; H, M, L - water level
sensor; L1,L2,L3 LED output
VIII. RESULT & DISCUSSION
RESULTS
WATER LEVEL

OUTPUT

Low

Green light LED light up

Medium

Yellow light LED light up

High

Red light LED light up with


buzzer sound

DISCUSSION
The Water Level Indicator employs a simple mechanism
to detect and indicate the water level in an overhead tank or
any other water container. The sensing is done by using a set
of three probes which are placed at three different levels on
the tank walls (with probe3 to probe1 placed in increasing
order of height, common probe (i.e. a supply carrying probe
or voltage source) is placed at the base of the tank). The
level 3 represents the tank full condition while level 1
represents the tank low condition.
Most water level indicators are equipped to indicate and
detect only a single level. The Water Level Indicator
implemented here can indicate up to three such levels and
possibly even more and the microcontroller is used to detect
all of this. So, not only is the circuit capable of cautioning a
person that the water tank has been filled up to a certain
level, it also indicates that the water level has fallen below
the minimum detectable level. This circuit is important in

The project is based on the concept of conduction.


Since the voltage source is placed at the base of the tank and
the medium we use in this project is water which is a good
electrical conductor. When water is filled and it reaches up
to the first probe (low level), current flows from the source
to the probe using water as a medium. The current then then
flows through the probe and goes into the circuit. A resistor
is placed in parallel in order to allow the current to flow.
The current then goes into the Arduino and the
corresponding input into the microcontroller would be
0b00000001. The microcontroller then detects the input and
compares it with the predetermined value (R18) , in this
case LED 1, and then gives an output value of
0b00000001 which will activate the GREEN LED in the
circuit. When water is filled up to the position of the second
probe, current is flows from the source to both the first and
second probe, which will then give an input value of
0b00000011 to the microcontroller. It then compares with
the predetermined value (R19) and then gives an output
value of 0b00000010 which will activate the YELLOW
LED. When water is filled up to the third probe, current
flows through all the probes that is submerged in the water,
and this will give an input of 0b00000111 to the
microcontroller which will compare it to R20 and then it
will give an output of 0b00001111 if the two values are
equal. This will activate the RED LED and it will also give
and input value of 1 to the other Arduino Uno
microcontroller, which will activate the buzzer to indicate
that the water is already filled to the brim.
In this project we show the water level indicator using
three sensors which conducts as level rises, a buzzer is also
added which will automatically activate as the water level
becomes full, the buzzer is activated with the help of
microcontroller. With the help of this project, we not only
show the level of water but also a buzzer.
Water Level Indicator Project Features:
1. Easy installation.
2 Low maintenance.
3. Compact elegant design.
4. The Automatic water level controller ensures no
overflows or dry running of pump there by saves electricity
and water.
5. Avoid seepage of roofs and walls due to overflowing
tanks.
6. Fully automatic, saves man power.Consume very little
energy, ideal forcontinuous operation.
7. Automatic water level controller provides you the
flexibility to decide for yourself the water levels for
operations of pump set.

8. Shows clear indication of water levels in the overhead


tank.

IX.

CONCLUSION

& REFERENCES

CONCLUSION
As a conclusion, this project that we were working on
had worked really well. We were able to make our system
work and run smoothly without any problems. Based on this
project, it can be seen that assembly language can be used to
give commands to an Arduino microcontroller and is
especially efficient when we are dealing a lot with many
inputs and output. However, the piezo buzzer cannot be
directly controlled using assembly code so Arduino
programming language was used to control it. Even if the
Arduino language was used, the main body of the program
that controls the process is still from assembly language in
ATMega 328p of Arduino Uno microcontroller. This
assembly language becomes a master for controlling the
path of process. There are some of room for improvement
for the system. For example, we can add a mechanical
features such as the buoy and the limit switch of the water
tap. With this improvement, the water tap will close
automatically through the limit switch after the buoy float at
the maximum water level. This will help increasing
efficiency of the system plus help us to increase efficiency
of water consumtions. We are hoping that in the future, we
can learn more in controlling microprocessor as we use this
assembly language in order to give commands to the
microcontroller.
REFERENCES
[ ] http://wattrup.blogspot.my/ , Water Level
Indicator:Final year Project ,2013. Available :
http://wattrup.blogspot.my/2014/12/project-2-water-levelindicator.html. [Accessed 27 April 2016]
[ ] http://1000projects.org/ , Water Level Indicator
Electrical Project Abstract, 2011. Available:
http://1000projects.org/water-level-indicator-electricalproject-abstract.html. [Accessed 26 April 2016]
[ ] http://circuitdigest.com/ , Water Level Indicator
Alarm , 2015. Available: http://circuitdigest.com/electroniccircuits/water-level-indicator-alarm-circuit. [Accesed 28
April 2016]
[ ] http://www.electronicshub.org/ , Indicator using AVR,
2014. Available: http://www.electronicshub.org/water-levelindicator/. [Accessed 28 April 2016]

X.

APPENDIXES

GANTT CHART
The division of work from its planning phase, to its predevelopment phase and to its production phase.

IN R16, PINC
CP R16, R18
BREQ LED1

//WATER LEVEL 1

IN R16, PINC
CP R16, R19
BREQ LED2

//WATER LEVEL 2

IN R16, PINC
CP R16, R20
BREQ LED3
JMP MAIN

//WATER LEVEL 3

LED1:
LDI R17, 0b00000001
OUT PORTB, R17
jmp main

//LED 1 LIGHT UP

LED2:
LDI R17, 0b00000010
OUT PORTB, R17
jmp main
LED3:
LDI R17, 0b00001100
OUT PORTB, R17
jmp main

//LED 2 LIGHT UP

//LED 3 LIGHT UP

*end of coding*
Coding for buzzer
byte sensorPin[] = {8, 9, 10};
SOURCE CODE
(THIS PROJECT WAS DONE USING ATMEL
ASSEMBLY LANGUAGE.)
Coding for LED
LDI R16, $00
INPUT
OUT DDRC, R16
LDI R17, $FF
OUTPUT
OUT DDRB, R17

//DECLARE PORT C AS

byte ledPin[] = {11, 12, 13}; // number of leds = numbers of


sensors
const byte sensors = 3;
int level = 0;
void setup()
{

//DECLARE PORT B AS

Serial.begin(9600);
for(int i = 0; i < sensors; i++)
{

LDI R18, 0b00000001


LDI R19, 0b00000011
LDI R20, 0b00000111

//DETECT AT LEVEL 1
//DETECT AT LEVEL 2
//DETECT AT LEVEL 3

MAIN:
LDI R17, $00
OUT PORTB, R17

//BY DEFAULT ALL LED OFF

pinMode(sensorPin[i], INPUT);
pinMode(ledPin[i], OUTPUT);
}
}

void loop()

delay(50);

level = 0;
for(int i = 0; i < sensors; i++)
{
if(digitalRead(sensorPin[i]) == LOW)
{
digitalWrite(ledPin[i], HIGH);
level = sensors - i;
}
else
{
digitalWrite(ledPin[i], LOW);
}
}
Serial.println("Water level");
switch(level)
{
case 1:
Serial.println("HIGH");
break;
case 2:
Serial.println("AVERAGE");
break;
case 3:
Serial.println("LOW");
break;
default:
Serial.println("NO WATER");
break;
}

Você também pode gostar