标题: 编一个Arduino程序,人离开3秒后,灯自动熄灭,现在想再加一个按键开关 [打印本页]

作者: 166864646883    时间: 2018-10-29 17:17
标题: 编一个Arduino程序,人离开3秒后,灯自动熄灭,现在想再加一个按键开关
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灯的程序,可通过手机发送1或2控制LED灯开关,人离开3秒后,灯自动熄灭,现在想再加一个按键开关,同时也能用按键控制LED灯的开关,应该怎么加


作者: phang    时间: 2018-10-30 13:01
好奇怪的问题
按键的话,可以扫描电平,或者通过外部中断来实现控制LED。

不会是直接问代码怎么写吧??这样伸手不好的。
作者: wenzedong    时间: 2018-10-30 16:26
放在loop函数中,与while (Serial.available() > 0)和if(digitalRead(Sensor) == HIGH) 并列,int state = digitalRead(button);  if(state == LOW){digitalWrite(LED,HIGH);}
这样应该就可以了,你试试。
我没写过arduino程序,但是看着语句功能很直观,我手头也有资料,翻了一下
按键另一端接地,当按键按下,灯亮,松开,灯灭
作者: a1596321    时间: 2018-10-30 21:33
这个问题有点古怪,不是不帮你,是感觉没有实际意义
作者: jj449    时间: 2018-11-1 08:46
按键按一次开,再按一次关
loop() {
..................
if (digitalRead(BUTTON) == HIGH) {
  if (digitalRead(LED)==HIGH) {
}
}
作者: jj449    时间: 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 ;
}  
}
}
   
   




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