加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

arduino学习笔记2-按钮切换LED

(2013-01-01 18:51:49)
标签:

学习笔记

数值

工作模式

向右

状态

分类: 学习

连接图示:
http://s13/mw690/96f94f71gd2376816ed9c&690
实现代码如下:

#define LED_NUMBER 3        //定义LED总数量
 
int Left_Switch = 12;       //向左切换按键引脚编号
int Right_Switch = 11;      //向右切换按键引脚编号
boolean isPressed = false;  //表明按钮是否被按下
int LED[LED_NUMBER]={3,5,7}; //每个LED的引脚
 
int state=0;                      //表示现在点亮的等的编号
void setup(){
  for(int i=0;i
    pinMode(LED[i],OUTPUT);       //初始化LEG的工作模式,是OUTPUT
  }
  pinMode(Left_Switch,INPUT);     //初始化左按钮的工作模式,是INPUT
  pinMode(Right_Switch,INPUT);    //初始化右按钮的工作模式,是INPUT
  digitalWrite(LED[state],HIGH);  //写入初始状态,(编号为state的等亮)
}
 
void loop(){
  int Right=digitalRead(Right_Switch);    //读取左按钮数值
  int Left=digitalRead(Left_Switch);      //读取右按钮数值
 
  if(!isPressed&&Left==HIGH){             //如果此时不是按下状态,且左按钮被按下(isPressed是为了防止按住按钮产生连续按动)
    digitalWrite(LED[state],LOW);         //把现在的灯关掉
    state=(state+1)%LED_NUMBER;           //算算应该哪个灯亮
    digitalWrite(LED[state],HIGH);        //点亮这个等
    isPressed = true;                     //把现在的状态设置成已经按下状态
  }
 
 
  if(!isPressed&&Right==HIGH){            //这一部分刚好跟上面相反
    digitalWrite(LED[state],LOW);
    state=(state+2)%LED_NUMBER;
    digitalWrite(LED[state],HIGH);
    isPressed = true;
  }
 
  if(Left==LOW&&Right==LOW){              //如果都是低相当于没有按钮按下
    isPressed=false;                      //置isPressed为假
  }
}

实现图:http://s10/mw690/96f94f71gd237894eb6f9&690

资料来源:http://www.geek-workshop.com/forum.php?mod=viewthread&tid=1092

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有