ESP32定时器实现计时十五分钟后点亮 LED 灯

以下是使用 Arduino 编写的程序,实现当接收到一个输入信号后开始计时,十五分钟后点亮 LED 灯三次:

#include <Arduino.h>

const int inputPin = 2;  // 定义输入引脚
const int ledPin = 13;   // 定义 LED 引脚

unsigned long startTime;  // 用于记录开始时间
bool triggered = false;   // 标记是否已经触发计时

void setup() {
  pinMode(inputPin, INPUT);
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  Serial.begin(9600);
}

void loop() {
  if (digitalRead(inputPin) == HIGH &&!triggered) {  // 如果输入引脚为高电平且未触发计时
    startTime = millis();  // 记录当前时间
    triggered = true;      // 标记已触发
  }

  if (triggered) {
    if ((millis() - startTime) >= 15 * 60 * 1000) {  // 十五分钟(15 * 60 * 1000 毫秒)后
      for (int i = 0; i < 3; i++) {  // 点亮 LED 灯三次
        digitalWrite(ledPin, HIGH);
        delay(500);
        digitalWrite(ledPin, LOW);
        delay(500);
      }
      triggered = false;  // 重置触发标记
    }
  }
}

在上述代码中,首先定义了输入引脚和 LED 引脚。在 setup 函数中,设置引脚模式并初始化 LED 为低电平,同时启动串口通信。

loop 函数中,当输入引脚变为高电平时且尚未触发计时,记录当前时间并标记已触发。之后,如果已经触发计时并且经过了十五分钟,就点亮 LED 灯三次,每次亮灭间隔 500 毫秒,最后重置触发标记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值