내용으로 건너뛰기
ILOGICS 제품 사용설명서
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
commands:reference:ictu
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== Ictu() ====== ''Ictu()''는 입력의 상승 횟수를 세고 설정값에 도달하면 true를 반환합니다. {{:commands:reference:ictu.svg?900|Ictu 명령어 동작 흐름}} ''bool Ictu(uint8_t counter_id, bool CU, bool RESET, int32_t PV)'' ===== 명령어 ===== ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^ | ''Ictu(counter_id, CU, RESET, PV)'' | ''uint8_t counter_id'' — 카운터를 구분하는 번호. 같은 작업에는 같은 번호 사용\\ ''bool CU'' — 개수를 셀 입력 신호. LOW에서 HIGH로 바뀔 때 1 증가\\ ''bool RESET'' — true이면 현재 카운트값을 0으로 초기화\\ ''int32_t PV'' — 목표 개수. 현재값이 이 값 이상이면 true 반환 | ''bool'' | 입력의 상승 횟수를 세고 설정값에 도달하면 true를 반환합니다. | **처음 사용하는 분을 위한 설명** ''Ictu()''는 센서가 ''LOW''에서 ''HIGH''로 바뀐 횟수를 셉니다. 센서가 켜져 있는 시간은 측정하지 않습니다. 예를 들어 물건이 센서 앞을 한 번 지나가면 입력이 ''LOW → HIGH → LOW''로 변하고 카운터는 1 증가합니다. 센서가 계속 ''HIGH''인 동안에는 여러 번 세지 않습니다. 호출 형식 ''Ictu(counter_id, CU, RESET, PV)''는 다음과 같이 읽으면 됩니다. * ''counter_id'': 여러 카운터를 구분하는 번호입니다. 같은 카운터를 계속 사용할 때는 같은 번호를 지정해야 합니다. * ''CU'': 개수를 셀 입력입니다. ''LOW → HIGH''로 바뀌는 순간에 현재값이 1 증가합니다. * ''RESET'': ''true''이면 현재값을 0으로 지웁니다. RESET 중에는 CU가 켜져도 세지 않습니다. * ''PV'': 목표 개수입니다. 현재값이 이 값 이상이면 반환값이 ''true''가 됩니다. 입력 변화를 놓치지 않으려면 ''loop()''에서 계속 호출해야 합니다. 아래 예제에서는 입력 0번 센서로 물건 5개를 세고, 목표에 도달하면 보드의 상태 LED를 켭니다. 입력 1번 리셋 버튼을 누르면 다시 0개부터 셉니다. ===== 예제 ===== <code cpp> const uint8_t COUNTER_ID = 0; const uint8_t ITEM_SENSOR_PIN = 0; const uint8_t RESET_BUTTON_PIN = 1; const uint8_t FULL_LAMP_PIN = LED_BUILTIN; const int32_t BOX_CAPACITY = 5; void setup() { Serial.begin(115200); } void loop() { const bool itemSensor = digitalRead(ITEM_SENSOR_PIN) == HIGH; const bool resetButton = digitalRead(RESET_BUTTON_PIN) == HIGH; const bool boxFull = Ictu(COUNTER_ID, itemSensor, resetButton, BOX_CAPACITY); // 입력의 상승 횟수를 세고 설정값에 도달하면 true를 반환합니다. digitalWrite(FULL_LAMP_PIN, boxFull ? HIGH : LOW); static bool previousBoxFull = false; if (boxFull && !previousBoxFull) { Serial.println(F("5 items counted: box is full")); } previousBoxFull = boxFull; } </code> ===== 주의사항 ===== * ''CU''는 ''LOW → HIGH'' 변화만 셉니다. 신호가 계속 ''HIGH''이면 한 번만 증가합니다. * ''RESET''이 ''true''인 호출에서는 현재값을 0으로 지우며, 같은 호출의 ''CU''는 세지 않습니다. * ''PV''는 1 이상의 목표 개수로 설정하는 것이 좋습니다. ''PV''가 0 이하이면 초기값 0도 목표에 도달한 것으로 판단합니다. * 센서 펄스가 ''loop()'' 실행보다 빠르면 변화를 놓칠 수 있습니다. 빠른 펄스에는 제품의 고속 카운터 기능을 사용해주시기 바랍니다. * 서로 다른 작업에는 각각 다른 ''counter_id''를 사용해야 합니다. 같은 번호를 CTU·CTD·CTUD에 섞어 쓰지 않아야 합니다. * 현재 카운트값이 필요할 때만 같은 ''counter_id''로 ''IgetCount()''를 사용해주시기 바랍니다. ===== 같은 카테고리의 내장 명령어 ===== * [[commands:reference:ictd|Ictd() 상세 설명 보기]] * [[commands:reference:ictud|Ictud() 상세 설명 보기]] * [[commands:reference:igetcount|IgetCount() 상세 설명 보기]] * [[commands:reference:isetcount|IsetCount() 상세 설명 보기]] * [[commands:reference:ictuddownstate|IctudDownState() 상세 설명 보기]] [[commands:builtin|← 내장 명령어 리스트]]
commands/reference/ictu.txt
· 마지막으로 수정됨:
2026/10/25 11:33
저자
127.0.0.1
문서 도구
문서 보기
이전 판
역링크
맨 위로