Escolar Documentos
Profissional Documentos
Cultura Documentos
I.
II.
IV.
FLOW CHART
SYSTEM DESCRIPTION
BLOCK DIAGRAM
FINAL SCHEMATIC
VI.
VII. PICTURES OF FINISHED PRODUCT
(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
Medium
High
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
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
//DECLARE PORT B AS
Serial.begin(9600);
for(int i = 0; i < sensors; i++)
{
//DETECT AT LEVEL 1
//DETECT AT LEVEL 2
//DETECT AT LEVEL 3
MAIN:
LDI R17, $00
OUT PORTB, R17
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;
}