标题: 求教!Arduino如何让LED灯常亮,控制高电平保持输出时间(分钟) [打印本页]

作者: qqboy1978    时间: 2018-6-9 12:02
标题: 求教!Arduino如何让LED灯常亮,控制高电平保持输出时间(分钟)
求教一下,小白一枚,通过人体热释模块作个实验,就是人经过时灯亮,再经过时灯灭。能否再控制灯亮达到几分钟后不管有没有动作灯都会自动灭
  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.     }
复制代码



作者: HEIZI555    时间: 2018-6-9 16:16
这个很容易吧,用到定时器设置就行啦
作者: qqboy1978    时间: 2018-6-9 16:52
就是不知道如何用定时器设置哈,能否给个代码参考,谢谢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1