|
本帖最后由 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[LED_NUMBER]={3,5,7,8,10}; //每个LED的引脚
- int state=0; //表示现在点亮的等的编号
- void setup(){
- for(int i=0;i<LED_NUMBER;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+4)%LED_NUMBER;
- digitalWrite(LED[state],HIGH);
- isPressed = true;
- }
-
- if(Left==LOW&&Right==LOW){ //如果都是低相当于没有按钮按下
- isPressed=false; //置isPressed为假
- }
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|