clock

Saturday 25 May 2013

Kitchen Cooking Alarm Timer using AT89C4051


  WARNING: BEFORE STARTING MAKING THIS CIRCUITS POSSIBLE I WILL LIKE YOU TO KNOW THAT THIS CIRCUIT HAS BEEN TESTED AND IS WORKING WELL. ANY DAMAGE TO YOUR CONTROLLER DUE TO WRONG CONNECTIONS IS UP TO YOU.

Cooking food is a very essential when comes to breakfast, lunch and diner. Sometimes we multitask so much we forget time we cooking for hence over cooking our food hence wasting biogas.

I have made this kitchen timer so that we know that time is up! come and check the food!

The interface is simple. There are 6 Switches. 4 Switches to configure alarm at timing 5mins, 10mins, 15mins, 20mins, and rest two switches are to top the alarm and to reset the device.

Components required for power supply:

1. Fuse 500mA + Fuse case (F1)
2. Transformer 12V -0V at 500mA (T1)
3. 1N4007 Diode  (D1, D2, D3, D4)
4. 220uF ,63V Electrolytic (C1)
5. 10uF ,63V Electrolytic (C3)
6. 0.1uF Ceramic (C2)
7. LM7805 on heatsink.


POWER SUPPLY FOR THE CIRCUIT

Components required for main design:

1. NE555 (IC2) on 8 -Pin DIP Base
2. AT89C4051 on 8 -Pin DIP Base (IC1)
3. 2N2222 (Q1 , Q2)
4. 12V Buzzer (Z1).
5. Tactile Switches (SW1, SW2, SW3, SW4, SW5,SW6)
6. 51K ohms 1/4Watts (R8)
7. 47K ohms 1/4Watts (R10)
8. 560Ohms 1/4Watts (R11)
9. 220Ohms 1/4Watts (R9)
10. 1K Ohms 1/4Watts (R12)
11. 10K Ohms 1/4Watts (R1, R2, R3, R4, R5, R6,R7)
12. 10uF 63V Electrolytic (C1, C2,C5)
13. 0.1uF Ceramic (C6)
14. 22pF ceramic (C3, C4)
15. 8MHz Crystal


MAIN DESIGN:( The circuit has been Tested, Verified and is working)




Source Code for AT89C4051: (The code is tested and is working)

//START
#include "REGX51.H"

#define clock P3_2
#define start_5mins P1_7
#define start_10mins P1_6
#define start_20mins P1_5
#define start_30mins P1_4
#define stop_sw    P1_3
#define buzzer P3_7

int mins, target=0;
int i, s_timer, count;
void count_check(void);
void switch_check(void);

int main()
{
    P1=0;
    P3=0;

    while(1)
    {     start_5mins=1;
         start_10mins=1;
         start_20mins=1;
         start_30mins=1;
         stop_sw=1;
         clock=1;
         switch_check();
         if(s_timer==1 && clock==0)
         {
              count++;
             while(clock==0);
             count_check();
           
         }
         if(stop_sw==0  &&  s_timer==0)buzzer=0;
    }

    return 0;
}
void count_check(void)
{
   if(count==60)
   {
       count=0;mins++;
    }
    if(mins==60)
    {
        mins=0;
       
    }
    if(target==mins)
    {
        mins=0;    

        count=0;
        s_timer=0;
        target=0;
        buzzer=1;
    }
}

void switch_check(void)
{
          if(start_5mins==0)
         {
             s_timer=1;
            target=5;
         }
         if(start_10mins==0)
         {
             s_timer=1;
            target=10;

         }
         if(start_20mins==0)
         {
             s_timer=1;
            target=20;

         }
         if(start_30mins==0)
         {
             s_timer=1;
            target=30;

         }
}


//END

Working behind the circuit:

The circuit uses 1Hz pulse precisely generated by 555Timer in astable mode to do the calculations of timer. Since the count for 30mins is large enough we use external clock of 1Hz to make our calculations simpler. The switches are used to set the minutes you want to keep the cooking on or you want to check you gas on, then when the time is up the alarm gets sounded. It will remain on till you go and switch it off. If the food is not cooked yet. Consider a precise time it will take to cook and set the alarm again. When the alarm rings your food will be ready. Then turn the alarm off and the Gas stove off.

Save the energy by using this simple methods. You can turn off this device once your cooking work is done hence saving energy on circuit itself.

No comments :

Post a Comment