====== Ialt() ====== ''Ialt()''는 입력 상승 순간마다 지정한 상태를 ON·OFF로 반전합니다. {{:commands:reference:ialt.svg?900|Ialt 명령어 동작 흐름}} ''void Ialt(bool input, bool &state_var)'' ===== 명령어 ===== ^ 명령어 ^ 인수 ^ 반환값 ^ 동작 ^ | ''Ialt(input, state_var)'' | ''bool input''\\ ''bool &state_var'' | ''void'' | 입력 상승 순간마다 지정한 상태를 ON·OFF로 반전합니다. | ===== 예제 ===== 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:builtin|← 내장 명령어 리스트]]