void loop() {
if(digitalRead(ACLED_Pin) == HIGH) {
Serial.println("AC: ON");
}else{
Serial.println("AC: OFF");
}
}
你好,我的aduino中有这段代码,但我只想在布尔digitalRead(ACLED_Pin(更改时显示消息。现在我有以下消息:
AC: OFF
AC: OFF
AC: OFF
AC: ON
AC: ON
AC: OFF
AC: OFF
我想要:
AC: OFF
AC: ON
AC: OFF
AC: ON
我该怎么做?
您只需要保留最后一个状态,并在它更改时打印(无论以前的状态如何,都是第一次打印(,类似于:
void loop() {
// Statics initialised only once, then they hold value.
static bool first = true;
static int last = HIGH;
// Get current digital input value, act if first or changed.
int curr = digitalRead(ACLED_Pin);
if (first || (curr != last)) {
Serial.println(curr ? "AC: ON" : "AC: OFF");
// Changed (or first), clear first and remember new state.
last = curr;
first = false;
}
}