friskit 发表于 2012-6-2 14:50:28

Arduino小实验-按钮切换LED

本帖最后由 friskit 于 2012-11-11 17:21 编辑

刚入手了Arduino,发现这玩意真是值得一折腾哈哈
做了个小东西



左右两个按钮分别控制当前亮的灯的位置。

代码如下:
#define LED_NUMBER 5      //定义LED总数量

int Left_Switch = 12;       //向左切换按键引脚编号
int Right_Switch = 11;      //向右切换按键引脚编号
boolean isPressed = false;//表明按钮是否被按下
int LED={3,5,7,8,10}; //每个LED的引脚

int state=0;                      //表示现在点亮的等的编号
void setup(){
for(int i=0;i<LED_NUMBER;i++){
    pinMode(LED,OUTPUT);       //初始化LEG的工作模式,是OUTPUT
}
pinMode(Left_Switch,INPUT);   //初始化左按钮的工作模式,是INPUT
pinMode(Right_Switch,INPUT);    //初始化右按钮的工作模式,是INPUT
digitalWrite(LED,HIGH);//写入初始状态,(编号为state的等亮)
}

void loop(){
int Right=digitalRead(Right_Switch);    //读取左按钮数值
int Left=digitalRead(Left_Switch);      //读取右按钮数值

if(!isPressed&&Left==HIGH){             //如果此时不是按下状态,且左按钮被按下(isPressed是为了防止按住按钮产生连续按动)
    digitalWrite(LED,LOW);         //把现在的灯关掉
    state=(state+1)%LED_NUMBER;         //算算应该哪个灯亮
    digitalWrite(LED,HIGH);      //点亮这个等
    isPressed = true;                     //把现在的状态设置成已经按下状态
}


if(!isPressed&&Right==HIGH){            //这一部分刚好跟上面相反
    digitalWrite(LED,LOW);
    state=(state+4)%LED_NUMBER;
    digitalWrite(LED,HIGH);
    isPressed = true;
}

if(Left==LOW&&Right==LOW){            //如果都是低相当于没有按钮按下
    isPressed=false;                      //置isPressed为假
}
}

海神 发表于 2012-6-4 08:08:42

e,和ardroid有什么关系~~~

friskit 发表于 2012-6-4 21:55:31

海神 发表于 2012-6-4 08:08 static/image/common/back.gif
e,和ardroid有什么关系~~~

呃写错了!arduino。。。。。安卓程序员表示android说顺嘴了。。。。

wasdpkj 发表于 2012-11-11 00:42:04

不错的程序贴啊,问一下,!isPressed这个是什么意义呢?

迷你强 发表于 2012-11-11 09:16:17

程序没注释啊。。。。我等小白看不懂啊。。。

friskit 发表于 2012-11-11 17:21:43

迷你强 发表于 2012-11-11 09:16 static/image/common/back.gif
程序没注释啊。。。。我等小白看不懂啊。。。

加上注释了……

stook 发表于 2013-1-8 19:43:43

请问http://image.geek-workshop.com/forum/201206/02/144945rj1yzmnwymbhbnrr.png这个图什么怎么做的呀?

hi55234 发表于 2013-12-15 14:36:42

小菜鸟拜服大侠
int LED={3,5,7,8,10}; //每个LED的引脚 数组定义一句就完事

if(!isPressed&&Left==HIGH){//探读取防抖一次完成
}

honyfox 发表于 2014-1-9 22:16:09

friskit 发表于 2012-6-4 21:55 static/image/common/back.gif
呃写错了!arduino。。。。。安卓程序员表示android说顺嘴了。。。。

楼主软硬皆施,好强悍!

htctech 发表于 2014-11-16 04:14:11

感谢楼主分享,标记一下
页: [1]
查看完整版本: Arduino小实验-按钮切换LED