找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9752|回復(fù): 2
收起左側(cè)

求教!Arduino如何讓LED燈常亮,控制高電平保持輸出時間(分鐘)

[復(fù)制鏈接]
ID:348109 發(fā)表于 2018-6-9 12:02 | 顯示全部樓層 |閱讀模式
求教一下,小白一枚,通過人體熱釋模塊作個實驗,就是人經(jīng)過時燈亮,再經(jīng)過時燈滅。能否再控制燈亮達到幾分鐘后不管有沒有動作燈都會自動滅
  1. #define LED 7      //定義LED引腳為7
  2. #define BUTTON 2   //定義按鈕開關(guān)引腳2
  3. unsigned long ps=0;//定義上一次當前循環(huán)時間間隔
  4. const long interval = 60000;//定義固定時間間隔1分鐘
  5. unsigned long cm=millis();//記錄程序到此運行時間
  6. int val=0;         //變量用來儲存按鈕狀態(tài)      
  7. int old_val=0;    //暫存val變量的上一個時間單位
  8. int state=0;       //0表示LED關(guān)閉,1表示打開
  9. void setup()
  10. {
  11.   pinMode(LED,OUTPUT);      //設(shè)定LED引腳為輸出狀態(tài)
  12.   pinMode(BUTTON,INPUT);    //設(shè)定按鈕引腳為輸入狀態(tài)
  13. }
  14. void loop()
  15. {
  16.   val=digitalRead(BUTTON);    //讀取按鈕狀態(tài)并儲存
  17.   if((val==HIGH)&&(old_val==LOW))    //檢查按鈕的變化情況
  18.   {
  19.     state=1-state;
  20.     delay(40);   //延時簡單抗抖動
  21.   }
  22.   old_val=val;   //VAL下載已經(jīng)是舊的,讓我們暫存一下
  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); //關(guān)閉LED

  38.   }


  39.     }
復(fù)制代碼


回復(fù)

使用道具 舉報

ID:96072 發(fā)表于 2018-6-9 16:16 | 顯示全部樓層
這個很容易吧,用到定時器設(shè)置就行啦
回復(fù)

使用道具 舉報

ID:348109 發(fā)表于 2018-6-9 16:52 | 顯示全部樓層
就是不知道如何用定時器設(shè)置哈,能否給個代碼參考,謝謝
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表