Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

debounced one-shot circuit

Status
Not open for further replies.

throbscottle

Well-Known Member
I discovered that I need to debounce both the leading and trailing edges of my crappy tactile switch (actually gated output from 16 switches) so I came up with this. The long delay monostable locks out the short delay one, which produces the output pulse. It appears to work. Hold the switch down for too long and false triggering still occurs upon release.

The monostable is a 74HC123.

Can anyone produce something better with similar/same/less components?
 
Can we see the schematic/asc file?:)
 
Use an RC filter at the input to a CD4106 Schmidt trigger buffer with about a 50ms time-constant. That will suppress any bounce on both the leading and trailing edges of the pulse.
 
Seems the file got lost somewhere along the way... Oh I see, ETO doesn't like bmp. Here's a png then. Done using Express schematic. Don't think I'll use it again - not very express.

Don't know where I got the idea about false triggering still occurring - what actually happens is the circuit keeps retriggering - which is fine for what I want. I was half asleep when I designed this (on paper) - my recent excuse for everything.

Crutschow - I started off with RC filters - a Schmidt trigger was obviously the missing element.

Edit: Oh I forgot to mention, the pulse has to be shorter than the switch press
 

Attachments

  • monostable-express.png
    monostable-express.png
    5.9 KB · Views: 263
Last edited:
ETO doesn't like bmp
It's not an upload/download-friendly format....files are too big.
Done using Express schematic. Don't think I'll use it again - not very express.
Try LTspice's schematic capture function (free download from Linear Technology).
what actually happens is the circuit keeps retriggering - which is fine for what I want.
Do you mean you want multiple pulses when the switch is pressed continuously for a long time?
 
Do you mean you want multiple pulses when the switch is pressed continuously for a long time?

It doesn't matter if the pulses are multiple, but it is incidental rather than by design. Should have spotted it - was half asleep. The first pulse latches the address of the switch into an 8 bit addressable latch, so because the address doesn't change, further pulses don't make any difference. It's actually worked out quite well because it keeps on blocking the first monostable from spurious inputs as long as it's generating the multiple pulses - ie the long delay is constantly being reset. It also means I can use a much smaller capacitor for the long delay part, like 100nF. I couldn't see an easy way to generate just one pulse and block the switch-open event indefinitely, when the circuit still needs to respond to alternative switches being pressed. A time delay longer than the average switch press seemed like the answer but I ended up with something better :)

But the switches are only intended to be pressed momentarily anyway.

The previous situation (before this circuit) was that I got a pulse generated by a single monostable when the switch was pressed, as intended, but a second pulse when the switch was released, causing the address 000 to be latched, so that's the important thing here.

It's supposed to also be able to be suppressed - I'm in the process of working out how to do that, since my original scheme of connecting the suppression signal directly to /clr via a steering diode from the relevant switch (with pullup resistor) caused false triggering when the switch was released.

(And yes I know I said 16 switches, but I meant 8, since less than 8 of them get a latched output. The other 8 just produce addresses for a micro.)

So anyway, back to what should have been the original question - to produce a short pulse from a switch, that isn't re-triggered by bounce when the switch is opened, can anyone come up with something better with same or fewer component count? Ideally with a means to also block it from producing output. I have 1 spare nand gate.
 
Last edited:
Crutschow has already said how it can be done. Something like this:
DebouncedSwitch.gif
 
Thought I'd responded but must have forgot to press "post quick reply"...

Anyways, thanks for that - very similar to what I had before I started messing about with the 74HC123. Should have just stayed with it. Alec, I don't understand the purpose of R4?

Thanks again both of you, this has been educational!
 
I don't understand the purpose of R4?
It's to limit current through the input protection diodes inside the IC gate.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top