Debouncing은 디지털 방식으로 전자공학에서 사용된 기술로 전환 또는 단추가 눌러질 때 단 하나 신호가 등록됩니다. 기계적인 스위치는 수시로 디지털 방식으로 체계에 있는 과실을 일으키는 원인이 될 수 있는 접촉 되튐 때문에 다수 신호를 생성합니다. debouncing를 실행하는 것은 입력 독서의 신뢰성을 개량하는 것을 돕습니다.

Switch Bounce를 이해하십시오

기계적인 스위치가 눌러지고 풀어 놓일 때, 접촉은 국가를 청결하게 바꾸지 않습니다. 대신, 그들은 급속하게 만들고 분리하기 전에 몇몇 시간을 끊기. 반송으로 알려진 이 현상은, 몇몇 microseconds에서 다수 원치 않는 신호에 지도하는 밀리 초에서 지속될 수 있습니다.

Practical Debouncing 기술

여러 가지 방법은 하드웨어 및 소프트웨어 접근법을 포함한 디지털 입력을 debounce에 사용됩니다. 하드웨어 디부싱은 종종 RC 필터 또는 Schmitt 트리거를 포함하지만 소프트웨어 디부싱은 타이밍 알고리즘을 사용하여 신속한 상태 변경을 무시합니다.

Software Debouncing 구현

소프트웨어 debouncing은 일반적으로 일정한 간격으로 입력을 샘플링하고 지정된 기간에 안정적으로 유지되는 경우에만 국가 변경을 확인하는 것을 포함합니다. 이 방법은 가동 가능하 마이크로 컨트롤러 코드에서 실행하기 쉽습니다.

예를 들어, 버튼 입력이 10 밀리 초마다 읽을 경우, 시스템은 변경을 등록하기 전에 적어도 50 밀리 초 동안 입력이 새로운 상태로 남아 있다는 것을 확인할 수 있습니다. 이것은 바운드에 기인한 트리거를 감소시킵니다.

캘리포니아 시간

debounce 시간은 스위치 특성 및 시스템 요구 사항에 따라 다릅니다. 일반적인 접근법은 5 ~ 20 밀리 초 사이의 편차를 선택하기 위해 것입니다. 계산은 최대 반송 지속 시간을 측정하고 안전 마진을 추가합니다.

예를 들어, 최대 10 밀리 초 동안 스위치가 되면 20 밀리 초의 편차 시간을 설정하면 상당한 지연없이 안정적인 감지를 보장합니다.

  • 최대 반송 기간 식별
  • 반송 시간보다 약간 더 긴 반송 간격을 선택하십시오.
  • code에서 periodic sampling 구현
  • 입력을 등록하기 전에 안정적인 상태를 확인합니다.