사용자 도구

사이트 도구


commands:ibounce

문서의 이전 판입니다!


Ibounce()

함수의 정의

Ibounce()는 디지털 입력이 ON 또는 OFF로 바뀔 때 입력 상태가 지정한 시간 동안 안정적으로 유지되는지 확인하는 함수입니다. 입력이 짧게 흔들리거나 기계식 스위치에서 채터링이 발생해도 안정된 상태만 반환합니다.

이 함수는 delay()처럼 프로그램을 멈추지 않습니다. 핀별 입력 상태와 시간을 내부에 기억하므로 loop()에서 계속 호출해야 합니다.

명령어, 인수, 반환값, 동작

명령어 인수 반환값 동작
Ibounce(pin, debounceTime) pin: 확인할 디지털 입력 핀 또는 논리 입력 번호\ debounceTime: 입력 안정 확인 시간(ms) bool\ true: ON(HIGH)\ false: OFF(LOW) 입력이 ON 또는 OFF로 변경된 후 같은 상태가 지정한 시간 동안 유지되면 반환값을 변경합니다.

명령어 원형

반환형 명령어 원형
bool Ibounce(uint8_t pin, uint32_t debounceTime)

상세한 예제

다음 예제는 MPAINO의 첫 번째 논리 입력 번호 0을 50ms 동안 필터링합니다. MPINO에서는 INPUT_PIN을 사용하는 제품의 실제 Arduino 디지털 입력 핀 번호로 변경하십시오.

// MPAINO의 첫 번째 디지털 입력 번호입니다.
// MPINO에서는 제품 설명서의 실제 Arduino 입력 핀 번호로 변경합니다.
const uint8_t INPUT_PIN = 0;
 
// 입력이 이 시간 동안 같은 상태를 유지해야 최종 상태가 변경됩니다.
const uint32_t DEBOUNCE_TIME_MS = 50;
 
// 이전에 출력한 상태를 저장해 상태가 바뀔 때만 Serial로 표시합니다.
bool previousStableState = false;
 
void setup() {
  // 산업용 디지털 입력은 사용하는 제품의 입력 설정 기준을 따릅니다.
  pinMode(INPUT_PIN, INPUT);
 
  // 필터 결과를 확인하기 위한 시리얼 모니터를 시작합니다.
  Serial.begin(115200);
}
 
void loop() {
  // Ibounce()를 loop()에서 반복 호출합니다.
  // 입력이 ON 또는 OFF 상태로 50ms 동안 안정되면 반환값이 변경됩니다.
  bool stableInput = Ibounce(INPUT_PIN, DEBOUNCE_TIME_MS);
 
  // 안정화된 입력 상태가 실제로 변경된 경우에만 결과를 출력합니다.
  if (stableInput != previousStableState) {
    previousStableState = stableInput;
 
    if (stableInput) {
      Serial.println("입력이 안정적으로 ON 되었습니다.");
    } else {
      Serial.println("입력이 안정적으로 OFF 되었습니다.");
    }
  }
 
  // 다른 제어 작업도 이 위치에서 함께 실행할 수 있습니다.
  // 긴 delay()나 오래 걸리는 반복 작업은 입력 확인을 늦출 수 있습니다.
}

주의사항

  • Ibounce()는 ON과 OFF 양방향에 같은 안정 시간을 적용합니다.
  • loop()에서 짧은 주기로 계속 호출해야 합니다. 호출 간격이 길면 입력 상태 반영도 늦어집니다.
  • debounceTime을 길게 설정하면 노이즈에는 강해지지만 정상 입력의 응답도 그만큼 느려집니다.
  • pin은 사용하는 제품의 입력 번호 기준을 따라야 합니다. MPINO는 제품별 Arduino 디지털 입력 핀 번호를 사용하고, 지원되는 MPAINO는 0부터 시작하는 논리 입력 번호를 사용합니다.
  • 유효하지 않은 핀 번호를 지정하면 false를 반환합니다.
  • 핀별 필터 상태는 해당 핀에서 처음 호출할 때 생성되며 프로그램이 실행되는 동안 유지됩니다.
  • 내부 상태 메모리를 확보하지 못하면 필터 처리 없이 현재 입력 상태를 반환합니다.
  • 실제 입력 전압, COM 결선과 입력 설정은 선택한 제품의 설명서를 기준으로 확인하십시오.

← 내장 명령어 리스트

commands/ibounce.1788247999.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki