単に、最初にデジタル読み取りがトグル値を取得する場合、サブルーチンを実行するためのカウンタを作成したいと思います。しかし結果は、 "aFunction"が複数回(繰り返し)実行されることを示しています。voidループ内で関数を1回だけ実行する方法は?
コード:
int lastState = 1;
void setup() {
Serial.begin(115200);
}
void loop() {
int currentState = digitalRead(D5);
if (currentState == 1) {
if (currentState = !lastState) {
aFunction();
}
lastState = !lastState;
}
Serial.println("Still running loop");
delay(2000);
}
void aFunction() {
Serial.println("in a function");
}
何丁度あなたがあなたの問題に達成したいですか? – Sma
あなたのループはループしません。何度も呼び出されない限り、何回も実行されることはありません。 –
@GradyPlayerの開発では、開発者はループの機能を何度も繰り返す方法を追加しました。 – Sma