사용자 도구

사이트 도구


commands:ibounce

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
commands:ibounce [2026/09/01 16:33] – 만듦 - 바깥 편집 127.0.0.1commands:ibounce [2026/09/08 00:53] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 ====== Ibounce() ====== ====== Ibounce() ======
  
-===== 함수의 의 =====+''Ibounce()''는 입력 상태가 지정한 시간 동안 상태가 변하지 않고 유지된 값을 반환하는 함수입니다. 입력이 짧게 흔들리거나 기계식 스위치에서 채터링이 발생해도 안된 상태만 반환합니다.
  
-''Ibounce()''는 디지털 입력이 ON 또는 OFF로 바뀔 때 입력 상태가 정한 시간 동안 안정적으로 유지되는지 확인하는 함수입니다. 입력이 짧게 흔들리거나 기계식 스위치에서 채터링이 발생해도 안정된 상태만 반환합니다.+이 함수는 ''delay()''처럼 프그램을 멈추지 로 ''loop()''에서 계속 호출할 수 있습니다.
  
-이 함수는 ''delay()''처럼 프로그램을 멈추지 않습니다핀별 입력 상태와 시간을 내부에 기억하므로 ''loop()''에서 계속 호출해야 합니다.+{{:commands:ibounce_timing.svg?900|Ibounce 입력 필터 동작}}
  
-===== 명령어, 인수, 반환값, 동작 =====+===== 명령어 ===== 
 + 
 +''bool Ibounce(uint8_t pin, uint32_t debounceTime)''
  
 ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^ ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^
-| ''Ibounce(pin, debounceTime)'' | ''pin'': 확인할 디지털 입력 핀 또는 논리 입력 번호\ ''debounceTime'': 입력 안정 확인 시간(ms) | ''bool''\ ''true'': ON(HIGH)\ ''false'': OFF(LOW) | 입력이 ON 또는 OFF로 변경된 후 같은 상태가 지정한 시간 동안 유지되면 반환값을 변경합니다. |+| ''Ibounce(pin, debounceTime)'' | ''pin'': 디지털 입력 핀 또는 논리 입력 번호\\ ''debounceTime'': 상태 유지 시간(ms) | ''bool'' | 입력 상태가 지정한 시간 동안 변하지 않으면 유지된 값을 반환합니다. |
  
-===== 명령어 원형 =====+===== 예제 =====
  
-^ 반환형 ^ 명령어 원형 ^ +다음 예제는 MPAINO의 첫 번째 디지털 입력 ''0''을 50ms 동안 필터링하여 첫 번째 디지털 력 ''64''로 전달고, 안정 상태가 바뀔 때만 리얼 모니터에 기록합니다.
-| ''bool'' | ''Ibounce(uint8_t pin, uint32_t debounceTime)''+
- +
-===== 상세한 예제 ===== +
- +
-다음 예제는 MPAINO의 첫 번째 논리 입력 번호 ''0''을 50ms 동안 필터링합니다. MPINO에서는 ''INPUT_PIN''을 사용는 제품의 실제 Arduino 디지털 력 핀 번호로 변경.+
  
 <code cpp> <code cpp>
-// MPAINO의 첫 번째 디지털 입력 번호입니다. +const uint8_t INPUT_CHANNEL = 0; 
-// MPINO에서는 제품 설명서의 실제 Arduino 입력 핀 번호로 변경합니다. +const uint8_t OUTPUT_CHANNEL 64;
-const uint8_t INPUT_PIN = 0; +
- +
-// 입력이 이 시간 동안 같은 상태를 유지해야 최종 상태가 변경됩니다. +
-const uint32_t DEBOUNCE_TIME_MS = 50; +
- +
-// 이전에 출력한 상태를 저장해 상태가 바뀔 때만 Serial로 표시합니다. +
-bool previousStableState false;+
  
 void setup() { void setup() {
-  // 산업용 디지털 입력은 사용하는 제품의 입력 설정 기준을 따릅니다. 
-  pinMode(INPUT_PIN, INPUT); 
- 
-  // 필터 결과를 확인하기 위한 시리얼 모니터를 시작합니다. 
   Serial.begin(115200);   Serial.begin(115200);
 } }
  
 void loop() { void loop() {
-  // Ibounce()를 loop()에서 반복 호출합니다. +  const bool inputState = Ibounce(INPUT_CHANNEL, 50) // 입력 상태가 50ms 동안 유지되면 안정된 ON·OFF 값을 반환니다. 
-  // 입력이 ON 또는 OFF 상태로 50ms 동안 안정되면 반환값이 변경됩니다. +  digitalWrite(OUTPUT_CHANNELinputState ? HIGH : LOW);
-  bool stableInput = Ibounce(INPUT_PINDEBOUNCE_TIME_MS);+
  
-  // 안정화된 입력 상태가 실제로 변경된 경우에만 결과를 출력합니다. +  static bool previousState = false; 
-  if (stableInput != previousStableState) { +  if (inputState != previousState) { 
-    previousStableState stableInput; +    previousState inputState
- +    Serial.println(inputState ? F("input ON": F("input OFF"));
-    if (stableInput) { +
-      Serial.println("입력이 안정적으로 ON 되었습니다.")+
-    } else { +
-      Serial.println("입력이 안정적으로 OFF 되었습니다."); +
-    }+
   }   }
- 
-  // 다른 제어 작업도 이 위치에서 함께 실행할 수 있습니다. 
-  // 긴 delay()나 오래 걸리는 반복 작업은 입력 확인을 늦출 수 있습니다. 
 } }
 </code> </code>
줄 68: 줄 45:
   * ''pin''은 사용하는 제품의 입력 번호 기준을 따라야 합니다. MPINO는 제품별 Arduino 디지털 입력 핀 번호를 사용하고, 지원되는 MPAINO는 ''0''부터 시작하는 논리 입력 번호를 사용합니다.   * ''pin''은 사용하는 제품의 입력 번호 기준을 따라야 합니다. MPINO는 제품별 Arduino 디지털 입력 핀 번호를 사용하고, 지원되는 MPAINO는 ''0''부터 시작하는 논리 입력 번호를 사용합니다.
   * 유효하지 않은 핀 번호를 지정하면 ''false''를 반환합니다.   * 유효하지 않은 핀 번호를 지정하면 ''false''를 반환합니다.
-  핀별 필터 태는 해당 핀에서 처음 호출할 때 생성되며 프로그램이 실행되는 동안 유지됩니다. + 
-  * 내부 태 메모리를 확하지 못하면 필터 처리 없이 현재 입력 상태를 반환합니다. + 
-  * 실제 입력 전압, COM 결선과 입력 설정은 선택한 제품의 설명서를 준으로 확인하십시오.+===== 같은 카테고리의 내장 명령어 ===== 
 + 
 +  [[commands:reference:idigitalread|IdigitalRead() 세 설명 보기]] 
 +  * [[commands:reference:ibounceon|IbounceOn() 세 설명 기]] 
 +  * [[commands:reference:ibounceoff|IbounceOff() 상세 설명 ]]
  
 [[commands:builtin|← 내장 명령어 리스트]] [[commands:builtin|← 내장 명령어 리스트]]
  
commands/ibounce.1788247999.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki