const int buttonPin = 2; // 假设按钮连接到数字引脚2
const int ledPin = 6; // 假设LED连接到数字引脚13
unsigned long lastButtonPress = 0; // 上一次按钮按下的时间
unsigned long lightEndTime = 0; // LED应该熄灭的时间
unsigned long lightDuration = 10000; // 当前亮灯时间(毫秒)
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // 设置按钮引脚为输入并启用内部上拉电阻
pinMode(ledPin, OUTPUT); // 设置LED引脚为输出
Serial.begin(9600); // 初始化串行通信
}
void loop() {
if (digitalRead(buttonPin) == LOW) { // 如果按钮被按下
delay(500);
hongganshichang();
}
}
void hongganshichang(){
unsigned long now = millis(); // 获取当前时间
Serial.println(now);
Serial.println(digitalRead(buttonPin));
lightDuration = 10000;
Serial.println(lightDuration);
while((millis()-now)<5000){
if (digitalRead(buttonPin) == LOW){
delay(500);//如果delay 延迟导致其他功能无法运行,改为while延时
lightDuration += 10000;
if(lightDuration>60000){
lightDuration = 10000;
}
Serial.println(lightDuration);
}
}
Serial.println("一次循环结束");
Serial.println(lightDuration);
while((millis()-now)<lightDuration){//根据亮灯时长来控制亮灯,实际控制加热丝时长
digitalWrite(ledPin, HIGH);
Serial.println(millis()-now);
}
digitalWrite(ledPin, LOW);
}