====== Idown() ====== ''Idown()''는 입력이 ON에서 OFF로 바뀌는 순간에만 true를 반환합니다. {{:commands:reference:idown.svg?900|Idown 명령어 동작 흐름}} ''bool Idown(uint8_t id, bool input)'' ===== 명령어 ===== ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^ | ''Idown(id, input)'' | ''uint8_t id''\\ ''bool input'' | ''bool'' | 입력이 ON에서 OFF로 바뀌는 순간에만 true를 반환합니다. | ===== 예제 ===== const uint8_t COMMAND_INPUT = 0; const uint8_t MOTOR_OUTPUT = 32; void setup() { Serial.begin(115200); } void loop() { const bool input = IdigitalRead(COMMAND_INPUT, 5); // 입력을 여러 번 연속으로 읽고, 모든 값이 같을 때만 상태를 갱신합니다. HIGH와 LOW가 섞이면 이전 안정 상태를 유지합니다. const bool started = Iup(0, input); // 입력이 OFF에서 ON으로 바뀌는 순간에만 true를 반환합니다. const bool stopped = Idown(0, input); // 입력이 ON에서 OFF로 바뀌는 순간에만 true를 반환합니다. static bool run = false; Ialt(started, run); // 입력 상승 순간마다 지정한 상태를 ON·OFF로 반전합니다. digitalWrite(MOTOR_OUTPUT, run ? HIGH : LOW); if (started) Serial.println(F("motor started")); if (stopped) Serial.println(F("command released")); } ===== 주의사항 ===== 서로 다른 신호에 같은 ''id''를 사용하면 이전 상태가 섞일 수 있습니다. ''Iscale'' 입력 범위의 최솟값과 최댓값을 같게 지정하지 마십시오. ===== 같은 카테고리의 내장 명령어 ===== * [[commands:reference:iup|Iup() 상세 설명 보기]] [[commands:builtin|← 내장 명령어 리스트]]