Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

How I can remove bounce of relay ?

Status
Not open for further replies.
You cannot remove the bounce of the relay, since it is a mechanical oscillation, given by the spring action + mass of contacts.
What you can do is remove the electrical noise it generates, usually by the use of RC snubbers (RC series networks) across the contacts.

What kind of problem is the bounce causing in your circuit?
 

hi
i want to connect relay output to logic circuit but it's bounce can effect on logic circuit works.
relay max frequency is 100hz and i want remove bounce of it.
 

Relay debounce is done either with additional circuitry, or with a software delay.

The additional circuitry can be a SR flip flop (also called a SR multivibrator) if you have a double throw relay, or a simple RC circiut for a single throw relay.

The SR flip flop would simply connect with the NC relay contact on one input of the flip flop, and the NO contact on the other. Pull-up or pull-down resistors complete the input circuit to the SR. The flip flop can only set or reset with the proper input, so the bounce is eliminated.

The RC circuit for a single throw relay, uses the idea that all logic circuits have a threshold. The RC time constant is chosen such that there is a delay in the output from the relay as the capacitor charges to reach a point above threshold - the delay goes beyond the bounce interval for the contacts.

Another way to do it is with a one-shot multivibrator. The relay starts the single shot which is connected to one side of an OR gate, the other side is connected to your relay contact. The one-shot holds the OR output while the relay settles.

There are all sorts of variations on the above that will work. I suggest doing a Google search for "debounce" and/or "relay debounce" for examples.

The software solution is simply a delay loop that is called when the relay activation signal is sent. The delay is made long enough so the relay contact bounce is finished before the program returns to work with the downstream logic.
 

Generally the software debouncing methods is the preferred method as this saves the extra hardware boardspace etc. This is however a trade off for time, as while in the dealy loop the uC is just wasting time.

Cheers
Slayer
 

hi
i can't use your solutions because i have no software and i don't have any throw.
i just have two wires from relay throw that has 0v or 5v voltage on it.
(volatge is produced by a circuit in relay and i hane no access to throw)
2 wires have bounce.
 

The method I keep recommending for this is the use of a D-type flip-flop. Feed the signal from the relay to the D input of the FF. Clock the FF with a frequency that is lower than: 1/ Tbounce, where Tbounce is the time required for the bouncing action to end (typically 5-20ms). Thus, if the clock to the FF is 50Hz, you will get nice, clean pulses at the Q, Q/ outputs, even if the bounce time takes 20ms

However, in your case, the bounce time must be less, if the relay can actually switch at 100Hz. Therefore, I recommend you measure the actual bounce time for your relay, add some margin to it and then calculate the frequency of the FF clock.

This works great.
 

Sure you can use them, but what I suggested is completely under your control. Try it. It only takes a regular 74x74 and a few solder joints to test it.
 

hr_rezaee,
Here's a method that works well if you have a spdt relay:
Connect two nand gates in a cross-coupled latch circuit. Connect pullup resistors to the open inputs of each nand gate. Connect the relay armature (common) to ground. Connect the other relay contacts to the two "nand flop" inputs. As long as the armature does not swing between contacts during the bounce interval, the output of the "nand flop" will be bounce-free, regardless of the duration of the bounce.
Regards,
Kral
 

VVV said:
The method I keep recommending for this is the use of a D-type flip-flop. Feed the signal from the relay to the D input of the FF. Clock the FF with a frequency that is lower than: 1/ Tbounce, where Tbounce is the time required for the bouncing action to end (typically 5-20ms). Thus, if the clock to the FF is 50Hz, you will get nice, clean pulses at the Q, Q/ outputs, even if the bounce time takes 20ms

However, in your case, the bounce time must be less, if the relay can actually switch at 100Hz. Therefore, I recommend you measure the actual bounce time for your relay, add some margin to it and then calculate the frequency of the FF clock.

This works great.

yes this is a good idea. but i need more than 60 debouncers circuit and it is hard to use this.
thank you for your idea
 

You can use the 74xx273, which has 8 FFs inside, with a common clock.
It is true, you need a clock generator, too, but it can be a simple 555.
 

    hr_rezaee

    Points: 2
    Helpful Answer Positive Rating
What kind of problem is the bounce causing in your circuit?
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top