使用 millis() 函数作为延迟的替代方法(电位器控制延迟时间)

该文章介绍了如何使用Arduino编程控制LED灯的闪烁,通过读取电位器的模拟值调整LED1和LED2的延迟时间,实现灯的交替闪烁效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接线图:

代码:

unsigned long currentMillis =0;

unsigned long previousMillis_LED1  = 0;

unsigned long LED1_delay=0;

unsigned long previousMillis_LED2 =  0;

unsigned long LED2_delay=0;

#define LED1 3

#define LED2 9

#define P1 A2        //电位器1连接脚位,控制LED1灯延迟时间

#define P2 A1         //电位器2连接脚位,控制LED2灯延迟时间

void  setup() {

  pinMode(LED1, OUTPUT);

  pinMode(LED2, OUTPUT);

  pinMode(P1,  INPUT);

  pinMode(P2, INPUT);

}

void loop() {

   currentMillis= millis();   //开发板启动时到现在的毫秒数。

  LED1_delay=0;

  LED2_delay=0;

  for(int i=0;i<5;i++){

   LED1_delay=LED1_delay+map(analogRead(P1),0,1023,100,1000);//映射到100-1000

   LED2_delay=LED2_delay+map(analogRead(P2),0,1023,100,1000);

  }

  if (currentMillis-previousMillis_LED1>  LED1_delay){

//如果当前的‘启动毫秒数’比上次记录的‘启动毫秒数’大于设定的延迟时间

    previousMillis_LED1=currentMillis;

//将当前‘启动毫秒数’存入上次毫秒数变量中,以便与下一次的时间比较。

    digitalWrite(LED1,!digitalRead(LED1));

//颠倒led的显示状态

  }

  if (currentMillis-previousMillis_LED2> LED2_delay){

    previousMillis_LED2=currentMillis;

    digitalWrite(LED2,!digitalRead(LED2));

  }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值