4017 / 555 doorbell ckt - switch bounce question

Discussion in 'The Projects Forum' started by fyrfyter5, Jun 21, 2016.

  1. fyrfyter5

    Thread Starter New Member

    Jun 21, 2016
    I am making a circuit for a doorbell using a 4017 & 555 chip. Basically I want to have the 4017 sequence run once and stop. It will activate on a momentary button. I have the circuit set up identical to this http://www.instructables.com/id/How-to-make-a-4017-Decade-Counter-Run-for-One-Cycl/

    The 4017 outputs are powering LEDs now but will be relays in the future. There are 4 even "notes" pause then 4 more (Westminster chime).

    The problem I am having is when the button is pushed, the first two outputs of the 4017 are speeding up. See the video in this link
    https://goo.gl/photos/nU2Jn1PKnmwsocMf6 The 1st time the switch is pushed, the 1st two LEDs are lit really fast, then it times correctly for the remaining LED outputs. On the 2nd button push it runs correctly. If I hold the switch in, the sequence times correctly in a loop. The instructibles link above says this way of resetting the 4017 doesnt need switch debouncing. Is this a debouncing issue or something else?

    Thanks for the help!!
  2. Sensacell

    Well-Known Member

    Jun 19, 2012
    That instructable is pretty horribly sketchy, you should never directly short a chips output pin to ground.

    The main problem with this circuit is the fact that the clock and your button press are not synchronous.

    When you press the button, if the clock input happens to be high, the switch bounce will advance it to a random count.
    If the clock happens to be low, it works as advertised.

    you have a 50-50 chance of it working correctly each button press.

    A much better idea is to have the '0' count pin gate the oscillator off, so the cycle starts clean each time.
  3. dougy83


    May 11, 2011
    You can use the last 4017 output to disable the 555 oscillator, like shown in the attached image. There's an extra capacitor and resistor on the input switch to stop the user from holding the 4017 in reset.
    New Doc 45_1.jpg
    Tonyr1084 likes this.
  4. Tonyr1084

    Active Member

    Sep 24, 2015
    Aside from numerous poor designs, I don't like the idea of the clock constantly running. That means it's spending many hours a day running and consuming power without doing anything other than waiting for someone to come a knockin'.

    Without having given this problem any significant thought I'd opt for something that triggers the oscillator. Like the first output staying high (output 0) (Q0) holding the 555 from running. The moment you drag Q0 to ground (through a pulldown resistor) the clock begins to sequence through the cycle. That way the timer isn't just running and waiting for santa clause to come ring the bell. My own doorbell maybe rings 10 times a year. 20 times? No, I'm not that popular. But this sounds like an interesting project. I'll put a little thought into it and see what I can come up with.

    [edit] OH WAIT A MINUTE: Dougy83 already did that. I'd buy into that solution. When you hit reset it drives Q9 (output #9) low allowing the 555 to clock. The 4017 steps through its sequence until Q9 goes high and disables the clock.

    Yeah, Doug, I know you already said that. I was thinking of using Q0 as the "Not Ground" for the timing capacitor. Sending a manual clock pulse would step to Q1 and provide ground for the timer through Q0. The clock would run until Q0 went high again. Either way - it's the approach to be used. That way the clock isn't just running aimlessly and endlessly toward failure.

    Thumbs up Doug.
    Last edited: Jun 22, 2016
  5. AnalogKid

    Distinguished Member

    Aug 1, 2013
    At its heart, the 555 is a relaxation oscillator. This means that the first cycle or half-cycle always will be longer than the following cycles. If you replace the 555 with a 4060 oscillator/divider, you can reduce the first cycle error to less than 1%.