找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9063|回复: 2
打印 上一主题 下一主题
收起左侧

求教!Arduino如何让LED灯常亮,控制高电平保持输出时间(分钟)

[复制链接]
跳转到指定楼层
楼主
ID:348109 发表于 2018-6-9 12:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求教一下,小白一枚,通过人体热释模块作个实验,就是人经过时灯亮,再经过时灯灭。能否再控制灯亮达到几分钟后不管有没有动作灯都会自动灭
  1. #define LED 7      //定义LED引脚为7
  2. #define BUTTON 2   //定义按钮开关引脚2
  3. unsigned long ps=0;//定义上一次当前循环时间间隔
  4. const long interval = 60000;//定义固定时间间隔1分钟
  5. unsigned long cm=millis();//记录程序到此运行时间
  6. int val=0;         //变量用来储存按钮状态      
  7. int old_val=0;    //暂存val变量的上一个时间单位
  8. int state=0;       //0表示LED关闭,1表示打开
  9. void setup()
  10. {
  11.   pinMode(LED,OUTPUT);      //设定LED引脚为输出状态
  12.   pinMode(BUTTON,INPUT);    //设定按钮引脚为输入状态
  13. }
  14. void loop()
  15. {
  16.   val=digitalRead(BUTTON);    //读取按钮状态并储存
  17.   if((val==HIGH)&&(old_val==LOW))    //检查按钮的变化情况
  18.   {
  19.     state=1-state;
  20.     delay(40);   //延时简单抗抖动
  21.   }
  22.   old_val=val;   //VAL下载已经是旧的,让我们暂存一下
  23.   if(state==1)
  24.   {
  25.     digitalWrite(LED,HIGH); //开启LED

  26. if (cm-ps>=interval)
  27.   {  
  28.   ps=cm;
  29.    if(LED==HIGH)
  30.    {
  31.     digitalWrite(LED,LOW);
  32.     }
  33. }


  34. }

  35.   else
  36.   {
  37.     digitalWrite(LED,LOW); //关闭LED

  38.   }


  39.     }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:96072 发表于 2018-6-9 16:16 | 只看该作者
这个很容易吧,用到定时器设置就行啦
回复

使用道具 举报

板凳
ID:348109 发表于 2018-6-9 16:52 | 只看该作者
就是不知道如何用定时器设置哈,能否给个代码参考,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表