找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5380|回復: 5
打印 上一主題 下一主題
收起左側

編一個Arduino程序,人離開3秒后,燈自動熄滅,現(xiàn)在想再加一個按鍵開關

[復制鏈接]
跳轉到指定樓層
樓主
ID:395068 發(fā)表于 2018-10-29 17:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
30黑幣
int LED = 9;
int Sensor = 6;
int BUTTON=8;
unsigned long now_time  ;
void setup() {
  pinMode(LED, OUTPUT);
  pinMode(Sensor, INPUT);
  pinMode(BUTTON,INPUT);
  Serial.begin(9600);
}
void loop() {
  //WIFI遙控部分
  while (Serial.available() > 0)
  {
    char  val= Serial.read();
    if (val == '1') {
      now_time = millis();
      digitalWrite(LED, HIGH);
    }
    if (val == '2') {
      digitalWrite(LED, LOW);
    }
  }
  //紅外感應部分
if(digitalRead(Sensor) == HIGH){
   now_time = millis();
   }
   if(millis()>(now_time+3000)){
    digitalWrite(LED,LOW);
   }  
//開關部分
}
上面是用WIFI和紅外感應控制LED燈的程序,可通過手機發(fā)送1或2控制LED燈開關,人離開3秒后,燈自動熄滅,現(xiàn)在想再加一個按鍵開關,同時也能用按鍵控制LED燈的開關,應該怎么加

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:396960 發(fā)表于 2018-10-30 13:01 | 只看該作者
好奇怪的問題
按鍵的話,可以掃描電平,或者通過外部中斷來實現(xiàn)控制LED。

不會是直接問代碼怎么寫吧??這樣伸手不好的。
回復

使用道具 舉報

板凳
ID:319344 發(fā)表于 2018-10-30 16:26 | 只看該作者
放在loop函數(shù)中,與while (Serial.available() > 0)和if(digitalRead(Sensor) == HIGH) 并列,int state = digitalRead(button);  if(state == LOW){digitalWrite(LED,HIGH);}
這樣應該就可以了,你試試。
我沒寫過arduino程序,但是看著語句功能很直觀,我手頭也有資料,翻了一下
按鍵另一端接地,當按鍵按下,燈亮,松開,燈滅
回復

使用道具 舉報

地板
ID:418194 發(fā)表于 2018-10-30 21:33 | 只看該作者
這個問題有點古怪,不是不幫你,是感覺沒有實際意義
回復

使用道具 舉報

5#
ID:418852 發(fā)表于 2018-11-1 08:46 | 只看該作者
按鍵按一次開,再按一次關
loop() {
..................
if (digitalRead(BUTTON) == HIGH) {
  if (digitalRead(LED)==HIGH) {
}
}
回復

使用道具 舉報

6#
ID:418852 發(fā)表于 2018-11-1 08:51 | 只看該作者
按一次開,再按一次關 :
bool led_on = false;
void loop() {
...............
if (digitalRead(BUTTON)==HIGH) {
if(led_on==false)
digitalWrite(LED,HIGH) ;
led_on = true ;
}  else {
digitalWrite(LED,LOW) ;
led_on = false ;
}  
}
}
   
   
回復

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

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

快速回復 返回頂部 返回列表