Enabling 555 timer after 10 second push button

Thread Starter

CalaSainesh

Joined Jan 16, 2020
8
Hello all! I am trying to creating an enable using a 555 timer connected with a push-button. The goal is to enable the trigger input after pushing down on the button 10 seconds and then enabling the 555 timer. I have looked into the one-shot monostable configuration but I don't think that is what I am looking for. Does anyone have any ideas or suggestions that I can use?
 

Thread Starter

CalaSainesh

Joined Jan 16, 2020
8
The button needs to be held 10 seconds and then enable. The goal for me is to do a hard reset on a microprocessor without any code. I thought it might be ideal to use a 555 timer to enable a hard reset after a user holds down a button for 10 seconds.
 

dl324

Joined Mar 30, 2015
9,620
The button needs to be held 10 seconds and then enable.
A continuous 10 second hold would require sampling the button state, at some rate you determine, before allowing the reset to be activated. Depending on what you want, that could require a fair amount of logic.

A microcontroller based solution, e.g. Arduino, could easily do that. It could sample the switch status a thousand times a second and detect any brief closure interruptions.
 

Thread Starter

CalaSainesh

Joined Jan 16, 2020
8
Thanks Dennis. Unfortunately, I am creating this on a PCB design. And I do realized that I would need additional logic before I can enable the 555 timer which is not ideal as I am trying to minimize the number of components I would add on the board. An Arduino would work great, but this has to be a hard reset meaning no code or firmware. The reset has to be done purely by the hardware functionality. Thank you though!
 

dl324

Joined Mar 30, 2015
9,620
The reset has to be done purely by the hardware functionality.
If you decided that you wanted to check the button status every millisecond, you'd need a 1kHz clock, 3 decade counter chips (maybe 2 sets because you need to get a 1 second interval to compare to the button down counter), and some glue logic. By the time you've designed the circuit, it will take more area than an Arduino Nano.
 

eetech00

Joined Jun 8, 2013
1,787
hi
you could cascade two 555 timers. The 10 second timer would be held in reset until the button is pressed and held. The time would then run and time out after 10 seconds, triggering the second timer.

eT
 

crutschow

Joined Mar 14, 2008
24,122
hi
you could cascade two 555 timers. The 10 second timer would be held in reset until the button is pressed and held. The time would then run and time out after 10 seconds, triggering the second timer.
That will give a pulse even if you hold the button for less than 10 seconds, which is not what the TS wants.
 

crutschow

Joined Mar 14, 2008
24,122
A temporary pulse is what I want to achieve. I understand that a on-shot monostable 555 circuit can achieve that but the output needs to enable after holding down the button 10 seconds.
Below is the LTspice simulation of a fairly simple circuit that should do what you want.
It uses two gates from the CD4093 Schmitt-trigger quad-NAND package.
The first provides the 10 second delay hold (determined by the value of R1-C2).
The second provides a one-shot pulse output after the delay hold is satisfied (pulse width determined by the value of R3-C1.

The simulation shows a pulse output (green trace) after a little over 10 seconds of hold for the first push-button input (first blue trace pulse), but does not give a pulse for the shorter second PB input (second blue-trace pulse).

You could also use the CD40106B Schmitt-trigger inverter buffer in place of the CD4093 for the circuit.

Note that power and ground for the gates is not shown but must be connected.

1581634998780.png
 
Last edited:

crutschow

Joined Mar 14, 2008
24,122
If the output pulse width is not critical, the output one-shot circuit can be eliminated as shown below.
The pulse width is now equal to how long the PB continues to be held after the 10 second delay.

1581636121765.png
 
Last edited:

djsfantasi

Joined Apr 11, 2010
5,958
The button needs to be held 10 seconds and then enable. The goal for me is to do a hard reset on a microprocessor without any code. I thought it might be ideal to use a 555 timer to enable a hard reset after a user holds down a button for 10 seconds.
Why are you averse to coding this solution?

If you only want to avoid code on the microprocessor, would you be agreeable to a coprocessor, with a tiny bit of code to hard reset the parallel microprocessor.

An ATTiny25 for less than $3 could detect the button switch, ensure it is held for 10 seconds and hard reset the main processor.

If you’re using an Arduino-based primary microprocessor, the Arduino IDE could also be used to program the ATTiny25. You can build a programmer using an Arduino Uno or buy a plug&play programmer from Sparkfun for less than $16.
 

crutschow

Joined Mar 14, 2008
24,122
Why are you averse to coding this solution?
....................................................
An ATTiny25 for less than $3 could detect the button switch, ensure it is held for 10 seconds and hard reset the main processor.
....................................................
You can build a programmer using an Arduino Uno or buy a plug&play programmer from Sparkfun for less than $16.
And why are you adverse to using a $0.50 CD4093 as a solution when it requires no coding and no programmer?
 

Thread Starter

CalaSainesh

Joined Jan 16, 2020
8
Thank you crutschow and to the other post, there are times when you would want to do a hard reset like crutschow has done where a tiny little circuit that is less than dollar can do the task and coding is nice, but it is something I am interested in doing to take on a challenge that enables me to find a hardware solution vs a software/firmware one. Thank you!
 

djsfantasi

Joined Apr 11, 2010
5,958
And why are you adverse to using a $0.50 CD4093 as a solution when it requires no coding and no programmer?
I’m not. I just want to understand his requirements. Since he’s already coding, what’s a couple more lines? I mention this alternative only because I got the impression that he didn’t want to code because it would make the primary microprocessor more complicated.

And because people always say, you need a programmer, it looks like they are saying you need a programmer for every project. Once you have one, it’s a reusable tool, like a soldering iron. We don’t say, “oh, and you need a soldering iron!”
 

eetech00

Joined Jun 8, 2013
1,787
Hello all! I am trying to creating an enable using a 555 timer connected with a push-button. The goal is to enable the trigger input after pushing down on the button 10 seconds and then enabling the 555 timer. I have looked into the one-shot monostable configuration but I don't think that is what I am looking for. Does anyone have any ideas or suggestions that I can use?
Hi

Here is an alternative circuit.

A single CD4093B provides the 10 second "Press and Hold" timer and also provides a Flip-flop to enable/disable a 555 timer.
If less than 50mA of output current is needed from the timer, A CMOS version of the 555 can be used.
See below.

eT

1581789906732.png
 

vu2nan

Joined Sep 11, 2014
101
Hello all! I am trying to creating an enable using a 555 timer connected with a push-button. The goal is to enable the trigger input after pushing down on the button 10 seconds and then enabling the 555 timer. I have looked into the one-shot monostable configuration but I don't think that is what I am looking for. Does anyone have any ideas or suggestions that I can use?
Hi CalaSainesh,

Here's one.

untitled.JPG

Regards,

Nandu.
 
Top