Friday, 13 October 2017

PENGISAR TELUR MOTOR DC

GROUP MEMBERS

NURUL SYIFA BINTI HASBULLAH (01DIP15F1071)
TAN SEIW YING (01DIS15F2033)
ARIFAH AHMAD (01DIP15F1046)
HUSZNA IZZATIE BINTI HAIRUL SHAMSUL (01DIP15F1041)

SYNOPSIS

Pengisar telur merupakan satu alat yang akan mengisar telur mengikut kelajuan yang ditetapkan sendiri oleh pengguna. Contohnya, pengguna boleh menetapkan kelajuan sama ada perlahan,sederhana atau laju.

LIST OF HARDWARE AND SOFTWARE

HARDWARE :

  1.  LED
  2. PIC16F877A
  3. Relay
  4. Power Supply Circuit
  5. Transistor
  6. Resistor
  7. Capasitor
  8. Slot Battery
  9. Battery
  10. Switch
  11. Motor DC

SOFTWARE :

  1. MPLAP IDE (32 bit)
  2. Proteus 8 Professional
CIRCUIT DIAGRAM FOR THIS PROJECT




CODING


#include<htc.h>
void delay(unsigned long);
#define _XTAL_FREQ 20000000 

__CONFIG  (0x3F3A);

   
#define SW1             RB7
#define button_reset    RB6
#define     MOTOR    RC7



void main(void)
{


TRISB=0b11000000;
PORTB=0b00000000;

TRISC=0b00000000;
PORTC=0b00000000;


while(1)
{
if (( SW1== 1 )&&(button_reset == 0 ))
{
if( SW1 == 1 )
{
MOTOR = 1;
}
}

else if (( SW1== 1 )&&(button_reset == 1 ))
{
if( SW1 == 1 )
{
MOTOR = 0;
}
}
}
}

PICTURES & VIDEO






Wednesday, 11 October 2017

AUTOMATIC CURTAIN USING LIGHT SENSOR

Group Member
JECKSON ANAK DIAN                                              01DIP15F1036
TOH QI QI                                                                    01DIP15F1063
MUHAMMAD SHAMIZAN BIN KAMARUDIN      01DIP15F1011

Synopsis
Nowdays, the weather in sun in malaysia is very hot and burn our skin. When reach noon people will use curtain to prevent the sunlight from going inside their house.This project can make the household to open or close the curtain automatically.This project is to use Microcontroller PIC16F877A to install all program that will give instructions to conduct the system properly and some part of hardware such as DC motor and Light Sensor 

     1)List of hardware, software and components

Hardware
i.                    DC motor
ii.                  Microcontroller – PIC16F877A
iii.                External Resistor
iv.                 Light Sensor

Software
i.                    MPlab version 8.3
ii.                  Hi-Tech C compiler version 2.3
iii.                Proteus 8 Professional

2) The circuit diagram for this project.
3) Codding of Project
4)Structure of Project 


 


           


           

           

           


5)Video of Project









Thursday, 23 March 2017

EMBEDDED SYSTEM PROJECT BLOCK

Thursday, 23 March 2017
AMPAIAN AUTOMATIK


AMPAIAN AUTOMATIK
KHAIRUN LIYANA BINTI KARIM                     01DNS15F1027
SALITA CHINDAMANEE A/P  CHAMLONG     01DNS15F1012
DANIEL LEE SOON CHONG                                01DNS15F1029

Synopsis
People often forget to lift the suspension of clothing during the day rain. For household, sometimes they forget to pick up their clothes when it gets dry. When raining they want to pick up the clothes but it was wet. This project can make the household pick up their clothes easily. The household just need to press the switch and the clothes from outside the house will enter the house. This project is to use Microcontroller PIC16F877A to install all program that will give instructions to conduct the system properly. This part needs DC motor to convert electrical power into mechanical power for retrieve-in all the clothes.

1)List of hardware, software and components

Hardware
i.                    DC motor
ii.                  Microcontroller – PIC16F877A
iii.                Resistor
iv.                Breadboard

Software
i.                    MPlab version 8.3
ii.                  Hi-Tech C compiler version 2.3
iii.                Proteus 8 Professional

2) The circuit diagram for this project.



3) The coding for the project.



4)The video below showing the circuit connection and the result of the project.



5)Conclusion
            From this project I have learned, how to create coding based on our project. This project will make the household easier to pick up their clothes using the switch.


Motorised Laundry System (EMSA)

Motorised Laundry System (EMSA)
MUHAMMAD ISKANDAR BIN MOHD SANI                          01DIS15F1025
MUHAMMAD HAMIZAN BIN MD MARZUKI                        01DIS15F1006
AHMAD HANIF BIN BADRUL HISHAM                                  01DIS15F1007          
SYAFIQ AIMAN BIN SOBRI                                                        01DIS15F1079

INTRODUCTION
Motorised Laundry System

Nowadays, it is hard to keep track on the progress of our laundry that we kept on drying outside in the daylight. But, little did we know that the weather is not going to be sunny all the time because rains and heavy storm might come along in the way when we want to do our laundry.

Hence, we have created a Motorised Laundry System to prevent the laundry from getting ruined by the rain when we cannot collect it because of the weather is raining heavily or so. Besides, it eases our burden of having to carry the laundry there and then by just simplifying it with a single switch to do all the work for us.


The system works by pressing the switch to move the laundry outside and pressing it again to move the laundry back inside the area where there is a roof covering the laundry from rains.
This is a simple project from us using a PIC16F877A .This tools function when the user presses a button and dc motor serves to pull the clothes into the home area covered by the aid of the conveyor belt.This will make the user ease when the rain come and we just push the button to pull the clothes into the home area.
A simple prototype model


1     List of hardware, software and components

Hardware
i. DC motor
ii. LED GREEN
iii. L293D
iv.SWITCH
v.Capasitor
vi.PICKIT 2(PIC16F877A)

Software
i. MPLab ver 8.3
ii. Hi-Tech C compiler ver 2.3

     Circuit diagram

3    Coding
#include<htc.h>
void delay(unsigned long);
void forward(void); 
void stop(void);

__CONFIG (0x3F3A);
#define sw1 RB0 
#define MOTOR_2  RB4 
#define PWM      RC2

void main()
{
      TRISB=0b00000001;
      PORTB=0b00000000;
      TRISC=0b00000000;
      PORTC=0b00000000;

while(1)
{
     if(sw1==1) //press sw1, move clockwise
{

forward();
}
else
{
     stop(); //stop the motor
}
}
}
void forward(void)
{
MOTOR_2=0;
PWM=1;
}
void stop(void)
{
MOTOR_2=0;
PWM=0;
}

void delay(unsigned long)
{
 unsigned char i;
  for (i=0x08;i!=0;i--)
  {
   unsigned char j;
   for (j=0x00;j!=0;j--)
  {
  unsigned char k;
  for (k=0x00;k!=0;k--)
{
 }
 }
}
}
    

   Video



Wednesday, 22 March 2017

WATER LEVEL INDICATOR

DEC 5052 EMBEDDED SYSTEM APPLICATIONS

LECTURER : DR. HJ  HASNIM BIN HARUN

CLASS : EMSA

GROUP MEMBERS : ANIS SYUHADA BINTI AMRAN (01DIS15F1080)
                                   NOR IZATY BINTI ROSLAN (01DIS15F1039)
                                   NURUL HUSNA BINTI ABU BAKAR (01DIS15F1017)
                                   SITI SHUHADA BINTI JEFRIDIN (01DIS15F1028)

SYNOPSIS :
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 probe 3 to probe 1 placed in increasing order of height, common probe (i.e. a supply carrying probe) is placed at the base of the tank). 
In this project we show the water level indicator using three transistors which conducts as level rises, a buzzer is also added which will automatically start as the water level becomes full, auto buzzer start with the help of microcontroller. With the help of this project we not only show the level of water on seven segment display but also indicate the water full condition using a buzzer.
a) list of hardware and software
hardware : 1. buzzer 
                  2. 7segment common cathode
                  3. transistor (BC547) 
                  4. resistor (270k, 100r, 470r) 
                  5. wire jumper
                  6. PIC16F877A
 software : 1. MPLAB IDE v8.83 
                   2. Proteus 8 Professional


b) Circuit diagram for this project 

  • when the container is empty, the output at 7segment is "E".



  • when water is medium, the output at 7segment is "C" and buzzer sound with delay 500ms.





  • when water is full, the output at 7segment is "F" and buzzer sound non stop.



c) Coding
#include<htc.h>

void delay(unsigned long);

int main(void)
{
//0-output 1-input
TRISB=0xff; //PORTB pins as input
PORTB=0xff;
TRISC=0x00; //PORTC as output
PORTC=0xff;
TRISD=0x00; //PORTD as output
PORTD=0xff;

unsigned char seg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
while(1)
{
 if(PORTB == 0b00000011) //3rd probe, Tank full
{
RC1=1;
RC2=0;
RC3=0;

PORTD = 0b01110001;

RC0=1;;
}
 else if(PORTB == 0b00000101) //2nd probe, Half tank
{
RC1=0;
RC2=1;
RC3=0;

PORTD = 0b00111001;

RC0=1;
delay(500);
RC0=0;
delay(500);
}
 else if(PORTB == 0b00000110) //1st probe, Empty Tank
{
  RC0=0;

RC1=0;
RC2=0;
RC3=1;

PORTD = 0b01111001;
}
 else if (PORTB == 0b00000111)
{
RC0=0;

RC1=0;
RC2=0;
RC3=0;

PORTD = 0b00111111;
}
}
}

void delay(unsigned long x)
{
unsigned long i;
for(i=0;i<5000;i++)
for(;x>0;x--);
}
d) video





















e) Conclusion
  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.
  7. Consume very little energy, ideal for continuous operation.
  8. Automatic water level controller provides you the flexibility to decide for yourself the water levels for operations of pump set.
  9. Shows clear indication of water levels in the overhead tank.








WELCOME HOME LCD DISPLAY TO GUEST WITH BUZZER

DEC5052 EMBEDDED SYSTEM APPLICATIONS

Group members:
  • Muhamad Syahir Faris bin Shahrudin (01DIS15F1015)
  • Mohamad Ismat bin Idrussaidi (01DIS15F1012)
  • Muhammad Faris bin Halim (01DIS15F1021)
  • Muhammad Qaiyum bin Arifin (01DIS15F1008)
Class: EMSA

Synopsis

This circuit will ring the house when guest or visitor press the button.


List of hardware/components:

1. LCD Display
2. Buzzer
3. PIC Microcontroller (PIC16F877A)
4. Microcontroller board
5. Switch
6. Wire

List of software:

1. MPLAB IDE v8.91
2. Proteus 8 Professional

Circuit diagram (using Proteus)



Coding


#include<htc.h>

//-------------- CONFIGURATION ----------------------------------------
__CONFIG (0x3F3A);
//-------------- DEFINE THE I/O PIN ------------------------------------
#define RS RA2 //RS pin of the LCD display
#define E RA3 //E pin of the LCD display
#define lcd_data PORTD
#define     d0 RD0
#define     d1 RD1
#define     d2 RD2
#define     d3 RD3
#define     d4 RD4
#define     d5 RD5
#define     d6 RD6
#define     d7 RD7
#define buzzer  RC1
#define SW1 RB0
//-------------- DEFINE VARIABLE DEFINITION --------------------------
//-------------- FUNCTION PROTOTYPE ----------------------------------
void delay(unsigned long a);
void e_pulse(void);
void lcd_clr(void);
void lcd_goto(unsigned char data);
void send_char(unsigned char data);
void send_config(unsigned char data);
void send_string(const char *s);
//-------------- MAIN FUNCTION (WRITE YOUR PROGRAM HERE) --------------
void main()
{                //set I/O input output
TRISA=0b00000000; //Configure PORTA I/O direction
TRISB=0b00000111; //Configure PORTB I/O direction
TRISC=0b00000000;
PORTC=0b00000000;
TRISD=0b00000000;
TRISE=0b00000000;
PORTA=0;
PORTB=0;
PORTC=0;
PORTD=0;
PORTE=0;
//Configure PORTD I/O direction
//setup ADC
ADCON1=0b00000110;
//set RA2, RA3 as digital and rest remain as analog I/O.
//Ensure pin share with analog is being configured to digital correctly
//Configure the LCD
send_config(0b00000001); //clear the LCD.
send_config(0b00000010); //Return cursor to home.
send_config(0b00000110); //Entry mode, cursor increase 1.
send_config(0b00001100); //Display on,cursor off and cursor blink off.
send_config(0b00111000); //Function set.
lcd_clr(); //Clear the LCD.
lcd_goto(0); //Put cursor on position 0.
send_string("PRESS BUTTON");
lcd_goto(20); //Put cursor on position 11.
send_string("TO RING");
b_light=1;
while(1)
if(SW1==0)
while(SW1==0);
lcd_clr(); 
lcd_goto(0);
send_string("WELCOME TO"); 
lcd_goto(20);
send_string("OUR HOUSE");
buzzer = 1;
delay(90000);
}
else
{  
lcd_clr(); 
lcd_goto(0);
send_string("PRESS BUTTON"); 
lcd_goto(22);
send_string("TO RING");
buzzer = 0;
delay(1);
}
}
}
//Delay function. The delay time depends on the given value.
void  delay(unsigned long a)
for(a=0xFF;a!=0;a--) ;
}
void e_pulse(void
{
E=1; 
delay(50); 
E=0; 
delay(50);
} //Send a pulse to the E pin of the LCD.
//Send the configuration to the LCD.
void  send_config(unsigned char data)
unsigned char test; 
unsigned char i;
RS=0;
for(i=0;i<8;i++) .
test=(data>>i)&0b00000001;
switch(i)
case 0:
if(test==1) 
d0=1; 
else d0=0;
case 1:
if(test==1) 
d1=1; 
else d1=0;
case 2:
if(test==1)
d2=1; 
else d2=0;
case 3:
if(test==1) 
d3=1; 
else d3=0;
case 4:
if(test==1) 
d4=1; 
else d4=0;
case 5:
if(test==1) 
d5=1; 
else d5=0;
case 6:
if(test==1) 
d6=1; 
else d6=0;
case 7:
if(test==1) 
d7=1;
else d7=0;
}
delay(50); 
e_pulse(); 
}
//Clear the LCD
void lcd_clr(void)
send_config(0x01); 
delay(600);
}
//Set the location of the LCD cursor.
//If the given value is (0-15)  the cursor will be at the upper line.
//If the given value is (20-35)  the cursor will be at the lower line.
//Location of the lcd cursor (2x16):
// ----------------------------------------------------------
//  ||00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|| 
// ||20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35||
void lcd_goto(unsigned char data)
if(data<16) 
{
send_config(0x80+data);
}
else 
data=data-20 ; 
send_config(0xC0+data);
delay(200);
}
//Send a character to the LCD. 
void send_char(unsigned char data)
unsigned char test; 
unsigned char i;
RS=1;
//Set RS for data mode.
for(i=0;i<8;i++) //Loop for 8 times.
test=(data>>i)&0b00000001;
switch(i)
{
case 0:
if(test==1) 
d0=1; 
else 
d0=0;
case 1:
if(test==1) 
d1=1;
else 
d1=0;
case 2:
if(test==1) 
d2=1; 
else 
d2=0;
case 3:
if(test==1) 
d3=1; 
else 
d3=0;
case 4:
if(test==1) 
d4=1; 
else 
d4=0;
case 5:
if(test==1) 
d5=1; 
else 
d5=0;
case 6:
if(test==1) 
d6=1; 
else 
d6=0;
case 7:
if(test==1) 
d7=1;
else 
d7=0;
}
delay(50); 
e_pulse();
}

//Send a string to the LCD.
void send_string(const char *s)
unsigned char i=0; 
while(s&&*s) 
send_char(*s++); 
delay(1000);
}

Video








Conclusion

This project can make the guest to know what to do when come to the house. This project also enable us to gain experience in electronic circuit and designing. However, a lot of difficulties were encountered in the process of realizing the project work like putting the components correctly in the board and detecting some errors.