{{http://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