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
