ON/OFF button using Microcontrollers


Posted on Jan 10, 2013

Using a switch to power up your microcontroller projects may not be a good idea if you need to `wake` the PIC during some events. For example: A metal detector sends a pulse indicating a car is ready to enter into a garaje, so the user needs to type a password to open the garage door or just slide the access card. You may leave the Microcontroller ON always, 24/7 and it, someday, will fail or just freeze because a glitch in the code or just a failure caused by a voltage variation. The solution that I have is just creating a routine to turn ON or OFF the PIC by itself. Just like the handheld calculators that have the ON/OFF button and turn OFF by itself after some minutes without activity.


ON/OFF button using Microcontrollers
Click here to download the full size of the above Circuit.

How I do that? Simple: I turn off the PIC with the SLEEP instruction. While the PIC is "sleeping" it is "ON" but the clock will stop, so the program will not continue. The current consumption is only a few micro-amperes. (You need to set the I/O ports to low and disable comparators to ensure the PIC will not draw any voltage thru any port). Once the PIC is on POWER DOWN MODE (or SLEEP Mode) basically it will be OFF until: A Hardware resets occurs. A brown-out/power loss occurs. Watchdog was enabled and it generated a timeout. An extenal interrupt was generated (for example, a Peripheral interrupt) When I need a "power on/off" button, I do use the RESET pin as "on/off" button. An example of this technique is my Air Display. As you can see; when you press the RESET button, you are turning ON the PIC. When the process is done, it turns off by itself with the SLEEP instruction. Now, If you want to turn ON/OFF the PIC then you have to use a little trick: As soon the Microcontroller starts, determine the value of an specific variable is equal to 075h (75 Hex). If the value IS NOT 075h, then set the variable to 075h and continue with the normal process. If the value IS EQUAL to 075h, then set the variable to 00h and execute the SLEEP process (put the Microcontroller to sleep). Why those conditions? Just to determine if the user pressed the reset button to turn the PIC off or on. When the...





Leave Comment

characters left:

New Circuits

.

 


Popular Circuits

All transistor microphone pre-amplifier
Safety flare
Programmable Timer For Long Intervals
Voltage Multiplier
1Khz Harmonic Distortion Meter Circuit
high efficiency white led driver
FX803 Signalling Processor
Sawtooth Signal Generator
TDA2009 single power amplifier circuit diagram
555 Rock lantern controller circuit diagram



Top