Simplest, cleanest, push button debouncer?

T

Terry Pinnell

Guest
Is there any consensus on the neatest circuit to take a noisy push
button signal and output a clean rectangular pulse?

Searching through my ancient (paper) files I found dozens, but my
scribbled notes on many show that when tested I'd found lots failed,
allowing some noise to reach the output. My starting assumption is a
simple CR filter in front of a Schmitt. But before I head for the shed
and start bread boarding I'd much appreciate any recommendations please.

Terry, East Grinstead, UK
 
On 2018-09-12 18:54, Terry Pinnell wrote:
Is there any consensus on the neatest circuit to take a noisy push
button signal and output a clean rectangular pulse?

Searching through my ancient (paper) files I found dozens, but my
scribbled notes on many show that when tested I'd found lots failed,
allowing some noise to reach the output. My starting assumption is a
simple CR filter in front of a Schmitt. But before I head for the
shed and start bread boarding I'd much appreciate any recommendations
please.

Terry, East Grinstead, UK

The good old 555 timer works nicely in this application. It has a very
wide hysteresis (from 2/3 of Vcc to 1/3 of Vcc) that makes the circuit
immune to noise and unwanted re-triggers. There is a push-pull logic
output available as well as the open-collector "discharge" one, and
everything apart from the 3 timing-related passives is integrated. For
CMOS logic compatibility from 1.5 V supply and up, there's the LMC555.
 
On 2018-09-12, Terry Pinnell <me@somewhere.invalid> wrote:
Is there any consensus on the neatest circuit to take a noisy push
button signal and output a clean rectangular pulse?

If a microcontroller is involved do it it in software

If the button is dual throw wire NO/NC across the logic supply and put a
small capacitor on the output (C)

> My starting assumption is a simple CR filter in front of a Schmitt

yeah, thats the third option.

--
ŘŞ
 
On Wednesday, September 12, 2018 at 12:54:50 PM UTC-4, Terry Pinnell wrote:
Is there any consensus on the neatest circuit to take a noisy push
button signal and output a clean rectangular pulse?

Searching through my ancient (paper) files I found dozens, but my
scribbled notes on many show that when tested I'd found lots failed,
allowing some noise to reach the output. My starting assumption is a
simple CR filter in front of a Schmitt. But before I head for the shed
and start bread boarding I'd much appreciate any recommendations please.

Terry, East Grinstead, UK

If you can do a double throw switch then there is a config that uses
an SR flip flop. (And others.. see AoE3.)
With a single pole I think you are stuck with a long
time delay... (Some RC thing ~10's of milli seconds.)

George H.
 
On 9/12/2018 11:54 AM, Terry Pinnell wrote:
Is there any consensus on the neatest circuit to take a noisy push
button signal and output a clean rectangular pulse?

Searching through my ancient (paper) files I found dozens, but my
scribbled notes on many show that when tested I'd found lots failed,
allowing some noise to reach the output. My starting assumption is a
simple CR filter in front of a Schmitt. But before I head for the shed
and start bread boarding I'd much appreciate any recommendations please.

Terry, East Grinstead, UK

Here's one I came up I came up with that worked in a very noisy
product we had. I've posted it many times never got any response, good
or bad.
It uses an SCR.
> http://photobucket.com/gallery/http://s395.photobucket.com/user/Qmavam/media/Debouncejpg.jpg.html

Mikek
 
On 9/13/2018 2:25 PM, amdx wrote:
On 9/12/2018 11:54 AM, Terry Pinnell wrote:
Is there any consensus on the neatest circuit to take a noisy push
button signal and output a clean rectangular pulse?

Searching through my ancient (paper) files I found dozens, but my
scribbled notes on many show that when tested I'd found lots failed,
allowing some noise to reach the output. My starting assumption is a
simple CR filter in front of a Schmitt. But before I head for the shed
and start bread boarding I'd much appreciate any recommendations please.

Terry, East Grinstead, UK


 Here's one I came up I came up with that worked in a very noisy
product we had. I've posted it many times never got any response, good
or bad.
It uses an SCR.
http://photobucket.com/gallery/http://s395.photobucket.com/user/Qmavam/media/Debouncejpg.jpg.html


                           Mikek

I guess I didn't read enough, it outputs a pulldown pulse.
 
On Wed, 12 Sep 2018 17:54:46 +0100, Terry Pinnell wrote:

> My starting assumption is a simple CR filter in front of a Schmitt.

Yup, that's probably the simplest and cheapest effective way.
But if you need more buttons to be debounced, a uC solution might
be more scalable and simpler so that the filter could be
implemented in software virtually using no components other
than the minumum necessary to have the uC run.
 
"asdf" <asdf@nospam.com> wrote in message
news:pnem1h$1184$1@gioia.aioe.org...
On Wed, 12 Sep 2018 17:54:46 +0100, Terry Pinnell wrote:

My starting assumption is a simple CR filter in front of a Schmitt.

Yup, that's probably the simplest and cheapest effective way.
But if you need more buttons to be debounced, a uC solution might
be more scalable and simpler so that the filter could be
implemented in software virtually using no components other
than the minumum necessary to have the uC run.

Look at the MC14490. Works great.
 
On Fri, 14 Sep 2018 05:25:58 -0500, Rick wrote:

> Look at the MC14490. Works great.

Never heard of that chip, looks interesting. Thanks.
 
On Thu, 13 Sep 2018 21:49:37 +0000 (UTC), asdf <asdf@nospam.com>
wrote:

On Wed, 12 Sep 2018 17:54:46 +0100, Terry Pinnell wrote:

My starting assumption is a simple CR filter in front of a Schmitt.

Yup, that's probably the simplest and cheapest effective way.
But if you need more buttons to be debounced, a uC solution might
be more scalable and simpler so that the filter could be
implemented in software virtually using no components other
than the minumum necessary to have the uC run.

A uP doesn't need hardware or software debouncing. Just sample the
switch state 10 times per second and use what you see.

It could use emi/esd protection, but that's just one capacitor.




--

John Larkin Highland Technology, Inc
picosecond timing precision measurement

jlarkin att highlandtechnology dott com
http://www.highlandtechnology.com
 
On Thursday, September 13, 2018 at 5:56:39 AM UTC-7, George Herold wrote:
On Wednesday, September 12, 2018 at 12:54:50 PM UTC-4, Terry Pinnell wrote:
Is there any consensus on the neatest circuit to take a noisy push
button signal and output a clean rectangular pulse?

If you can do a double throw switch then there is a config that uses
an SR flip flop. (And others.. see AoE3.)

Yep, that's a good 'un. There's also Hall switches (or used to be) from
Cherry, in keyboard-mountable form, that give good clean output
and don't fail from dirty contacts. I'm not seeing any inexpensive such
items nowadays, but have a box of the old ones somewhere.
 
On 9/13/18 3:25 PM, amdx wrote:
On 9/12/2018 11:54 AM, Terry Pinnell wrote:
Is there any consensus on the neatest circuit to take a noisy push
button signal and output a clean rectangular pulse?

Searching through my ancient (paper) files I found dozens, but my
scribbled notes on many show that when tested I'd found lots failed,
allowing some noise to reach the output. My starting assumption is a
simple CR filter in front of a Schmitt. But before I head for the shed
and start bread boarding I'd much appreciate any recommendations please.

Terry, East Grinstead, UK


 Here's one I came up I came up with that worked in a very noisy
product we had. I've posted it many times never got any response, good
or bad.
It uses an SCR.
http://photobucket.com/gallery/http://s395.photobucket.com/user/Qmavam/media/Debouncejpg.jpg.html

7 parts is a lot for a debouncer. An RC lowpass and a tinylogic Schmitt
will work fine.

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs
Principal Consultant
ElectroOptical Innovations LLC / Hobbs ElectroOptics
Optics, Electro-optics, Photonics, Analog Electronics
Briarcliff Manor NY 10510

http://electrooptical.net
http://hobbs-eo.com
 
On 9/14/18 6:25 AM, Rick wrote:
"asdf" <asdf@nospam.com> wrote in message
news:pnem1h$1184$1@gioia.aioe.org...
On Wed, 12 Sep 2018 17:54:46 +0100, Terry Pinnell wrote:

My starting assumption is a simple CR filter in front of a Schmitt.

Yup, that's probably the simplest and cheapest effective way.
But if you need more buttons to be debounced, a uC solution might
be more scalable and simpler so that the filter could be
implemented in software virtually using no components other
than the minumum necessary to have the uC run.

Look at the MC14490. Works great.

Four bucks in reels! Six 1-cent caps, six 0.3-cent resistors, one
8-cent 74HC14.

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs
Principal Consultant
ElectroOptical Innovations LLC / Hobbs ElectroOptics
Optics, Electro-optics, Photonics, Analog Electronics
Briarcliff Manor NY 10510

http://electrooptical.net
http://hobbs-eo.com
 
amdx <nojunk@knology.net> wrote:

On 9/13/2018 2:25 PM, amdx wrote:
On 9/12/2018 11:54 AM, Terry Pinnell wrote:
Is there any consensus on the neatest circuit to take a noisy push
button signal and output a clean rectangular pulse?

Searching through my ancient (paper) files I found dozens, but my
scribbled notes on many show that when tested I'd found lots failed,
allowing some noise to reach the output. My starting assumption is a
simple CR filter in front of a Schmitt. But before I head for the shed
and start bread boarding I'd much appreciate any recommendations please.

Terry, East Grinstead, UK


 Here's one I came up I came up with that worked in a very noisy
product we had. I've posted it many times never got any response, good
or bad.
It uses an SCR.
http://photobucket.com/gallery/http://s395.photobucket.com/user/Qmavam/media/Debouncejpg.jpg.html


                           Mikek

I guess I didn't read enough, it outputs a pulldown pulse.

Still an interesting circuit that I mean to try, thanks.
 
Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> wrote:

On 9/13/18 3:25 PM, amdx wrote:
On 9/12/2018 11:54 AM, Terry Pinnell wrote:
Is there any consensus on the neatest circuit to take a noisy push
button signal and output a clean rectangular pulse?

Searching through my ancient (paper) files I found dozens, but my
scribbled notes on many show that when tested I'd found lots failed,
allowing some noise to reach the output. My starting assumption is a
simple CR filter in front of a Schmitt. But before I head for the shed
and start bread boarding I'd much appreciate any recommendations please.

Terry, East Grinstead, UK


 Here's one I came up I came up with that worked in a very noisy
product we had. I've posted it many times never got any response, good
or bad.
It uses an SCR.
http://photobucket.com/gallery/http://s395.photobucket.com/user/Qmavam/media/Debouncejpg.jpg.html


7 parts is a lot for a debouncer. An RC lowpass and a tinylogic Schmitt
will work fine.

Cheers

Phil Hobbs

True, but it always feels wasteful using only half a 14-pin IC, like a
4013 for example. And time-consuming terminating the unused inputs.

But my interest in the SCR circuit is mainly because I have a bunch of
ancient, low-power SCRs, maybe 40-50 years old.

Terry, East Grinstead, UK
 
Jasen Betts <jasen@xnet.co.nz> wrote:

On 2018-09-12, Terry Pinnell <me@somewhere.invalid> wrote:
Is there any consensus on the neatest circuit to take a noisy push
button signal and output a clean rectangular pulse?

If a microcontroller is involved do it it in software

If the button is dual throw wire NO/NC across the logic supply and put a
small capacitor on the output (C)

My starting assumption is a simple CR filter in front of a Schmitt

yeah, thats the third option.

Thanks Jasen. No micros here. And just plain single pole buttons.

Terry, East Grinstead, UK
 
George Herold <gherold@teachspin.com> wrote:

On Wednesday, September 12, 2018 at 12:54:50 PM UTC-4, Terry Pinnell wrote:
Is there any consensus on the neatest circuit to take a noisy push
button signal and output a clean rectangular pulse?

Searching through my ancient (paper) files I found dozens, but my
scribbled notes on many show that when tested I'd found lots failed,
allowing some noise to reach the output. My starting assumption is a
simple CR filter in front of a Schmitt. But before I head for the shed
and start bread boarding I'd much appreciate any recommendations please.

Terry, East Grinstead, UK

If you can do a double throw switch then there is a config that uses
an SR flip flop. (And others.. see AoE3.)

Thanks. Mine is version 2 but I'll check it out.

With a single pole I think you are stuck with a long
time delay... (Some RC thing ~10's of milli seconds.)

George H.

Terry, East Grinstead, UK
 
asdf <asdf@nospam.com> wrote:

On Wed, 12 Sep 2018 17:54:46 +0100, Terry Pinnell wrote:

My starting assumption is a simple CR filter in front of a Schmitt.

Yup, that's probably the simplest and cheapest effective way.
But if you need more buttons to be debounced, a uC solution might
be more scalable and simpler so that the filter could be
implemented in software virtually using no components other
than the minumum necessary to have the uC run.

Thanks, but no micro hardware or software skills here.

Terry, East Grinstead, UK
 
On 9/15/18 6:59 AM, Terry Pinnell wrote:
Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> wrote:

On 9/13/18 3:25 PM, amdx wrote:
On 9/12/2018 11:54 AM, Terry Pinnell wrote:
Is there any consensus on the neatest circuit to take a noisy push
button signal and output a clean rectangular pulse?

Searching through my ancient (paper) files I found dozens, but my
scribbled notes on many show that when tested I'd found lots failed,
allowing some noise to reach the output. My starting assumption is a
simple CR filter in front of a Schmitt. But before I head for the shed
and start bread boarding I'd much appreciate any recommendations please.

Terry, East Grinstead, UK


 Here's one I came up I came up with that worked in a very noisy
product we had. I've posted it many times never got any response, good
or bad.
It uses an SCR.
http://photobucket.com/gallery/http://s395.photobucket.com/user/Qmavam/media/Debouncejpg.jpg.html


7 parts is a lot for a debouncer. An RC lowpass and a tinylogic Schmitt
will work fine.

Cheers

Phil Hobbs

True, but it always feels wasteful using only half a 14-pin IC, like a
4013 for example. And time-consuming terminating the unused inputs.

But my interest in the SCR circuit is mainly because I have a bunch of
ancient, low-power SCRs, maybe 40-50 years old.

Terry, East Grinstead, UK

Tiny logic is one gate per package.

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs
Principal Consultant
ElectroOptical Innovations LLC / Hobbs ElectroOptics
Optics, Electro-optics, Photonics, Analog Electronics
Briarcliff Manor NY 10510

http://electrooptical.net
http://hobbs-eo.com
 
Dimitrij Klingbeil <nospam@no-address.com> wrote:

On 2018-09-12 18:54, Terry Pinnell wrote:
Is there any consensus on the neatest circuit to take a noisy push
button signal and output a clean rectangular pulse?

Searching through my ancient (paper) files I found dozens, but my
scribbled notes on many show that when tested I'd found lots failed,
allowing some noise to reach the output. My starting assumption is a
simple CR filter in front of a Schmitt. But before I head for the
shed and start bread boarding I'd much appreciate any recommendations
please.

Terry, East Grinstead, UK

The good old 555 timer works nicely in this application. It has a very
wide hysteresis (from 2/3 of Vcc to 1/3 of Vcc) that makes the circuit
immune to noise and unwanted re-triggers. There is a push-pull logic
output available as well as the open-collector "discharge" one, and
everything apart from the 3 timing-related passives is integrated. For
CMOS logic compatibility from 1.5 V supply and up, there's the LMC555.

Thanks Dimitrij, that looks like my favourite.

(Sorry for delay; this post was my first reply, but I didn't spot it had
somehow got stuck in the outbox.)

Terry, East Grinstead, UK
 

Welcome to EDABoard.com

Sponsor

Back
Top