ESP32学习笔记-点灯实验

写在前面

学习任何一门编程语言,第一课就是 helloworld!

学习任何一款开发板,第一课,必定就是点灯!

但是,同样是点灯,也有不同的方法。

1、delay()函数

int ledPin = D7;              //  定义LED灯引脚

void setup(){

   pinMode(ledPin, OUTPUT);   //设置引脚工作模式

}

void loop(){

digitalWrite(ledPin, HIGH);   //灯亮
delay(1000);

digitalWrite(ledPin, LOW);    //灯灭
delay(1000);

}

这是一个最简单的点灯示例程序。运行程序,会看见闪烁,间隔时间1秒。

但是,在实际项目中,这种方法并不合适。

因为,在 delay() 的时候,程序是 阻塞 的。

2、millis()函数

int led_Red  = D10;              //定义红灯引脚
int ledState=LOW;                //定义红灯初始状态
unsigned long previousTime = 0;  //先前时间
long interval = 50;              //间隔时间


void setup(){
   pinMode(led_Red, OUTPUT);       // 设置红灯引脚为输出模式
   Serial.begin(9600);             //初始化串口,设置波特率为9600
}

void loop(){

  unsigned long currentTime=millis();   //获取当前时间

  if(currentTime - previousTime > interval)
  {
    if (ledState == LOW)               //交替
    ledState = HIGH;
    else
    ledState = LOW;

    digitalWrite(led_Red, ledState);   // 闪烁

    previousTime = currentTime;       //更新时间

  }

  Serial.println(currentTime);        // 打印时间

}

再看这个示例,功能都是实现灯的闪烁,但是这种方法就解决了程序阻塞的问题。

在运行时,会发现,灯在闪烁,串口在不停地打印时间信息。

参考:

Arduino延迟函数delay(),以及为什么不应该使用它_arduino delay-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值