极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 152|回复: 6

[已解决] 当按的按钮的顺序不同时,要如何让不同的灯亮起来?

[复制链接]
发表于 2017-11-13 01:59:58 | 显示全部楼层 |阅读模式
本帖最后由 安洛那基 于 2017-11-17 00:50 编辑

小妹我是最近才开始接触的Arduino的
对于程式或接线真的都很不擅长...
但组员们都有其他的工作要做,所以只好让我来制作
所以想要求助高手们


请问当我现在有“两个按钮”和“两个灯”
当按的顺序不同时,要怎么亮不同的灯呢?

例如:
先按住甲不放,再按乙时,第1个灯亮起,放开时就熄灭
先按住乙不放,再按甲时,第2个灯亮起,放开时就熄灭

有点怕自己解释不清楚
所以我做了一张示意表
希望高手们能够帮帮我
真的很感谢
1.png
回复

使用道具 举报

发表于 2017-11-13 23:28:58 | 显示全部楼层
int m0=2;
int m1=3;
int LEDa=4;
int LEDb=5;

void setup() {
  pinMode(m0,OUTPUT);
  pinMode(m1,OUTPUT);
  pinMode(LEDa,OUTPUT);
  pinMode(LEDb,OUTPUT);

}
void scankey(){
  int A,B;
   pinMode(A,INPUT);
   pinMode(B,INPUT);
  if(A==LOW){
    digitalWrite(m0,HIGH);
    }
    else{
      digitalWrite(m0,LOW);
      }
  
if (digitalRead(m0)==HIGH&&B==LOW){
  digitalWrite(LEDa,HIGH);
  }
else{
  digitalWrite(LEDa,LOW);
  }
     if(B==LOW){
    digitalWrite(m1,HIGH);
    }
    else{
      digitalWrite(m1,LOW);
      }
  
if (digitalRead(m1)==HIGH&&A==LOW){
  digitalWrite(LEDb,HIGH);
  }
else{
  digitalWrite(LEDb,LOW);
  }
}
void loop() {
  scankey();

}


无验证,你试下,AB要接上拉电阻.
回复 支持 反对

使用道具 举报

发表于 2017-11-14 09:53:09 | 显示全部楼层
本帖最后由 迷你强 于 2017-11-14 12:44 编辑


//昨天的未能实现,重定义了一下能通过了。

int m0=9;   //辅助点
int m1=10;  //辅助点
int LEDa=11;
int LEDb=12;

void setup() {
  pinMode(4,INPUT_PULLUP);
  pinMode(5,INPUT_PULLUP);
  pinMode(m0,OUTPUT);
  pinMode(m1,OUTPUT);
  pinMode(LEDa,OUTPUT);
  pinMode(LEDb,OUTPUT);

}
void scankey(){
  int A,B;
  A=digitalRead(4);   
  B=digitalRead(5);

if(A==LOW&&digitalRead(m1)==LOW){
   digitalWrite(m0,HIGH);
    }
  else{
   digitalWrite(m0,LOW);
   }
  
if (digitalRead(m0)==HIGH&&B==LOW){
  digitalWrite(LEDa,HIGH);
  }
else{
  digitalWrite(LEDa,LOW);
  }
   if(B==LOW&&digitalRead(m0)==LOW){
  digitalWrite(m1,HIGH);
   }
  else{
  digitalWrite(m1,LOW);
   }
  
if (digitalRead(m1)==HIGH&&A==LOW){
  digitalWrite(LEDb,HIGH);
  }
else{
  digitalWrite(LEDb,LOW);
  }
}
void loop() {
  scankey();
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-15 00:24:12 | 显示全部楼层
qfdc 发表于 2017-11-14 09:53
[kenrobot_code]
//昨天的未能实现,重定义了一下能通过了。

感谢你的解答,不过我有个疑问
LEDa、b是接灯泡的,然后接角4、5是按钮,那两个辅助点m0、m1需要接东西吗?
回复 支持 反对

使用道具 举报

发表于 2017-11-15 10:43:42 | 显示全部楼层
辅助点m0、m1不需要接东西。我也是刚学。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-15 17:50:25 | 显示全部楼层
qfdc 发表于 2017-11-15 10:43
辅助点m0、m1不需要接东西。我也是刚学。

那我想再问一下设辅助点的用意是什么呢?
回复 支持 反对

使用道具 举报

发表于 2017-11-15 18:55:47 | 显示全部楼层
我也是初学,我用PLC的方法去解与门电路,可能用在这里不合适,但可以用,以后多学看有没更好的办法。m0,M1用于当A按下先变高电平,再加上B按下后灯才能变高电平。
回复 支持 反对

使用道具 举报

高级模式  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2017-11-23 20:45 , Processed in 0.048067 second(s), 7 queries , File On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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