当前位置: 首页 > news >正文

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

接线图:

代码:

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));

  }

}

http://www.lryc.cn/news/238766.html

相关文章:

  • MySQL之BETWEEN AND包含范围查询总结
  • 4.3、Linux进程(2)
  • element-ui组件输入框之放大镜(搜索图标)
  • [oeasy]python001_先跑起来_python_三大系统选择_windows_mac_linux
  • 吴恩达《机器学习》9-4-9-6:实现注意:展开参数、梯度检验、随机初始化
  • 软信天成:如何利用大数据提高客户体验?
  • Vue 路由缓存 防止路由切换数据丢失 路由的生命周期
  • 基于ubuntu20.04安装ros系统搭配使用工业相机
  • 网络运维与网络安全 学习笔记2023.11.20
  • 银行业数据分析算法应用汇总
  • 搜索引擎trick:成为搜索高手的秘籍
  • 基于springboot实现冬奥会科普平台系统【项目源码+论文说明】计算机毕业设计
  • 用C++标准库生成制定范围内的整数随机数
  • 使用ExLlamaV2量化并运行EXL2模型
  • 【ARM AMBA AXI 入门 15 -- AXI-Lite 详细介绍】
  • 【开源】基于Vue.js的天然气工程业务管理系统的设计和实现
  • SpringBoot : ch04 整合数据源
  • Docker Swarm总结
  • 特殊token的特殊用途
  • 苹果Siri怎么打开?教你两招轻松唤醒!
  • 分类问题的评价指标
  • Hive 定义变量 变量赋值 引用变量
  • 51单片机LED灯渐明渐暗实验
  • 美团面试:微服务如何拆分?原则是什么?
  • easyExcel注解详情
  • S7-1200PLC 作为MODBUSTCP服务器通信(多客户端访问)
  • 泰勒多项式
  • 【Hello Go】Go语言文本文件处理
  • ppt录屏制作微课,轻松打造精品课程
  • php伪随机数