澳门开奖记录查询平台▽aomencai△ √温馨提醒√

4949香港彩开奖结果

下面是一个简单的示例代码,演示了如何在Arduino上实现单按钮的长按和短按检测:

const int buttonPin = 2;         // 按钮连接的引脚
int buttonState = HIGH;          // 当前按钮状态
int lastButtonState = HIGH;      // 上一个按钮状态
unsigned long lastDebounceTime = 0;  // 上次按下时间
unsigned long debounceDelay = 50;    // 按钮防抖延迟
bool buttonPressed = false;      // 按钮是否被按下
bool longPressDetected = false;  // 是否检测到长按

void setup() {
  pinMode(buttonPin, INPUT);
  digitalWrite(buttonPin, HIGH);  // 内部上拉
  Serial.begin(9600);
}

void loop() {
  int reading = digitalRead(buttonPin);

  if (reading != lastButtonState) {
    lastDebounceTime = millis();
  }

  if ((millis() - lastDebounceTime) > debounceDelay) {
    if (reading != buttonState) {
      buttonState = reading;

      if (buttonState == LOW) {
        buttonPressed = true;
      }
    }
  }

  if (buttonPressed) {
    if (buttonState == HIGH) {
      // 按钮释放
      if (longPressDetected) {
        Serial.println("长按释放");
      } else {
        Serial.println("短按释放");
      }

      buttonPressed = false;
      longPressDetected = false;
    } else {
      // 按钮按下
      if ((millis() - lastDebounceTime) > 1000) {
        longPressDetected = true;
        Serial.println("长按中...");
      }
    }
  }

  lastButtonState = reading;
}

这段代码使用了按钮防抖来确保稳定的按钮状态检测。如果按钮被短按,则会在按钮释放时输出"短按释放"。如果按钮被长按(按下超过1秒),则会持续输出"长按中...",并在长按释放时输出"长按释放"。

请注意,要将按钮连接到指定的引脚()上,并根据需要调整长按和防抖的时间参数。


管家婆资_六肖18码噢彩