想用按键控制不同灯依次开灭,代码不知道出什么问题了?-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4725|回复: 5

[过期] 想用按键控制不同灯依次开灭,代码不知道出什么问题了?

[复制链接]
发表于 2013-3-16 19:45 | 显示全部楼层 |阅读模式
如题,试了串口,e的值按出来是想要的,但是灯就是没反应啊!!!



#define a 8
#define b 2
#define f 11
int c=0;
int d=0;
int e=0;
void setup()
{
  pinMode(a,OUTPUT);
  pinMode(b,INPUT);
  digitalWrite(b,1);
  Serial.begin(9600);
  
}
void loop()
{
  
    c=digitalRead(b);
    if (c==0&&d==1)
    {   
      e=e++;
   
      if(e==2)
      {
    digitalWrite(a,HIGH);

      }
     if (e==1);
     {
     digitalWrite(f,HIGH);
  
     }
     if(e==0);
     {
     digitalWrite(a,LOW);
     digitalWrite(f,LOW);

   }
     if (e>2)
     e=0;
    }
    d=c;
    Serial.println(e);


}
发表于 2013-3-16 23:58 | 显示全部楼层
本人新手一个想问一下#define 是什么意思
发表于 2013-3-17 00:06 | 显示全部楼层
建议贴程序的时候,把注释写好,方便别人阅读
发表于 2013-3-17 00:10 | 显示全部楼层
坎坷外卖仔 发表于 2013-3-16 23:58
本人新手一个想问一下#define 是什么意思

宏定义,可以用来定义常量
 楼主| 发表于 2013-3-17 08:30 | 显示全部楼层
#define a 8  ---灯a
#define b 2   ---按键b
#define f 11   ----灯f
int c=0;        ---按键b现在的状态
int d=0;        ---按键b之前的状态
int e=0;
void setup()
{
  pinMode(a,OUTPUT);
  pinMode(b,INPUT);
  digitalWrite(b,1);       ---内部上拉按键b
  Serial.begin(9600);
  
}
void loop()
{
  
    c=digitalRead(b);         
    if (c==0&&d==1)    ---如果按键状态之前是关,现在是开
    {   
      e=e++;        ---e累加
   
      if(e==2)           
      {
    digitalWrite(a,HIGH);

      }
     if (e==1);
     {
     digitalWrite(f,HIGH);
  
     }
     if(e==0);
     {
     digitalWrite(a,LOW);
     digitalWrite(f,LOW);

   }
     if (e>2)     ---当e累加超过2时
     e=0;       ---e复位
    }
    d=c;       ---把c值传给d     
    Serial.println(e);   


}
 楼主| 发表于 2013-3-17 08:37 | 显示全部楼层
coloz 发表于 2013-3-17 00:06
建议贴程序的时候,把注释写好,方便别人阅读

刚写了注释,我下次一定写注释
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-3 02:58 , Processed in 0.251654 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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