User Tools

Site Tools


debouncing

mbed.org_media_uploads_4180_1_switch_bounce.jpg

버튼이 눌리면서 생기는 bouncing은 하드웨어나 소프트웨어를 통해서 잡을 수 있다.

하드웨어 해결법

하드웨어에서 debouncing을 하는 방법은 간단하게는 캐패시터를 이용 할 수 있다. 풀업 스위치 회로에서 스위치와 캐패시터를 병렬로 달아서 스위치에서 일어나는 bouncing을 캐패시터가 흡수 하는 방법이다.

그럼 캐패시터의 값은 어떻게 구하는 것일까?

C = Time(bouncing)/0.69*(pull-up resistor)

# bouncing time 0.010sec(10msec)
# pull-up resistor 33k
# C = 439nF 
>>> 0.010/(0.69*33000)                                                                                                 
4.391743522178305e-07

10k면 220nF!

왜? 이런식이 나왔을까? 출처: http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_PushButton

좀더 자세히: http://www.embedded.com/electronics-blogs/break-points/4024956/Solving-Switch-Bounce-Problems


R-C회로에서 완전 충전된 C가 반절로 떨어지는데 걸리는 시간은 0.69*RC가 걸린다.

소프트웨어 해결법

- 신호를 카운트하여 일정 카운트가 되었을대 신호를 인식하는 방법 - 신호가 안정화 된후에 다시 익는 방법

http://www.kennethkuhn.com/electronics/debounce.c

debouncing.txt · Last modified: 2018/07/18 14:10 by 127.0.0.1