목차

Ibounce()

Ibounce()는 입력 상태가 지정한 시간 동안 상태가 변하지 않고 유지된 값을 반환하는 함수입니다. 입력이 짧게 흔들리거나 기계식 스위치에서 채터링이 발생해도 안정된 상태만 반환합니다.

이 함수는 delay()처럼 프로그램을 멈추지 않으므로 loop()에서 계속 호출할 수 있습니다.

Ibounce 입력 필터 동작

명령어

bool Ibounce(uint8_t pin, uint32_t debounceTime)

명령어 인수 반환값 동작
Ibounce(pin, debounceTime) pin: 디지털 입력 핀 또는 논리 입력 번호
debounceTime: 상태 유지 시간(ms)
bool 입력 상태가 지정한 시간 동안 변하지 않으면 유지된 값을 반환합니다.

예제

다음 예제는 MPAINO의 첫 번째 디지털 입력 0을 50ms 동안 필터링하여 첫 번째 디지털 출력 64로 전달하고, 안정 상태가 바뀔 때만 시리얼 모니터에 기록합니다.

const uint8_t INPUT_CHANNEL = 0;
const uint8_t OUTPUT_CHANNEL = 64;
 
void setup() {
  Serial.begin(115200);
}
 
void loop() {
  const bool inputState = Ibounce(INPUT_CHANNEL, 50);  // 입력 상태가 50ms 동안 유지되면 안정된 ON·OFF 값을 반환합니다.
  digitalWrite(OUTPUT_CHANNEL, inputState ? HIGH : LOW);
 
  static bool previousState = false;
  if (inputState != previousState) {
    previousState = inputState;
    Serial.println(inputState ? F("input ON") : F("input OFF"));
  }
}

주의사항

같은 카테고리의 내장 명령어

← 내장 명령어 리스트