채터링 방지 (Debounce) 소프트웨어 테스트

by 이희철 | 2016-07-23 16:27
아두이노

첨부파일

모든 마이크로 컨트롤러에서 키입력을 받을 경우 채터링 (스위치의 접점이 개폐될 때 기계에서 발생하는 진동. 스위치를 ON 또는 OFF로 했을 때, 접점부분의 진동으로 말미암아 단속상태가 반복된ㄴ 현상. 키보드에서 이 상태가 발생하면 같은 문자가 여러개 찍힌다.)을 방지해야 하는데...


이는 두가지 방법이 있다...


첫번째는 하드웨어에 의한 방법으로 콘덴서와 저항을 조합하여 콘덴서에서 채터링이 생길때 이 진동이 전압으로 나타나는 것을 흡수하게 하는 방법과...


두번째로는 소프트웨어에 의한 방법으로 입력값이 변화됨을 감지하여 그 시점의 시간을 측정하여 정해진 시간(Debounced delay)과  비교하여 채터링인지 아니면 정상 키입력인지를 구분하여 처리하게 하는 방법으로 프로그램을 좀더 작성해 주어야 한다는 단점이 있긴 하지만 부품을 사용지 않아도 되기 때문에 하드웨어가 더 간결해 지고 재료비가 덜 들어가는 이점이 있다...


이번 프로젝트에서도 키를 입렵받기 때문에 Debounce에 대한 대책이 필요하고...



위 사진에서 처럼 간단히 회로를 꾸며 테스트해 보았다...


키를 한번 누르면 LED가 켜지고...


또 누르면 꺼진다...


정상적으로 동작을 잘 했고...


프로그램 소스는 첨부화일을 참고하기 바란다...


댓글 0

MADE BY

이희철

요리, 전자회로설계