查看: 321|回复: 3

[已解决] 小白求助 arduino按键切换4个灯

[复制链接]

该用户从未签到

发表于 2019-1-6 21:32 | 显示全部楼层 |阅读模式
小白刚开始玩,想实现的效果是一个按键切换4个灯亮灭
现在情况是按键不松开,灯会一直走,不会停,要怎么修改才能按住不走:(
代码如下
const int LED1=4;
const int LED2=5;
const int LED3=6;
const int LED4=7;
const int KEY=2;
int num=0;
void setup()
{
  pinMode(LED1,OUTPUT);
  pinMode(LED2,OUTPUT);
  pinMode(LED3,OUTPUT);
  pinMode(LED4,OUTPUT);
  pinMode(KEY,INPUT);
  digitalWrite(KEY,HIGH);
  digitalWrite(LED1,0);
  digitalWrite(LED2,0);
  digitalWrite(LED3,0);
  digitalWrite(LED4,0);
}

void loop()
{
    int val=digitalRead(KEY);
    if(val==0)
    {
      delay(50);
      if(val==0)
      {
         num++;
         delay(50);
      }
    }  
     if(num==1)
      {
        digitalWrite(LED1,1);
        digitalWrite(LED2,0);
        digitalWrite(LED3,0);
        digitalWrite(LED4,0);
      }
      if(num==2)
      {
        digitalWrite(LED1,0);
        digitalWrite(LED2,1);
        digitalWrite(LED3,0);
        digitalWrite(LED4,0);
      }
      if(num==3)
      {
        digitalWrite(LED1,0);
        digitalWrite(LED2,0);
        digitalWrite(LED3,1);
        digitalWrite(LED4,0);
      }
      if(num==4)
      {
        num=0;
        digitalWrite(LED1,0);
        digitalWrite(LED2,0);
        digitalWrite(LED3,0);
        digitalWrite(LED4,1);
      }
}
  • TA的每日心情
    奋斗
    2019-3-3 00:05
  • 签到天数: 40 天

    [LV.5]常住居民I

    发表于 2019-1-7 02:48 | 显示全部楼层
    本帖最后由 t3486784401 于 2019-1-7 02:49 编辑

    在检测到按键时,等待至按键释放就行了:

    1.    if(val==0)
    2.    {
    3.      delay(50);
    4.      if(val==0)
    5.      {
    6.         num++;
    7.         while(digitalRead(KEY)==0)
    8.         {
    9.          delay(50);
    10.         }
    11.      }
    12.    }
    复制代码

  • TA的每日心情

    2019-3-6 14:10
  • 签到天数: 32 天

    [LV.5]常住居民I

    发表于 2019-1-7 08:34 | 显示全部楼层
    中断 加上升沿
  • TA的每日心情
    开心
    2019-2-14 16:35
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2019-1-11 10:00 | 显示全部楼层
    二楼的是正解
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    有没人做过把arduino跟生物结合起来做课题的
    有没人做过把arduino跟生
    我想做一些这方面的有没有人做过可以稍微指点一下
    跪求,nano读两个软串口传感器,写入sd卡,一个读不到数
    跪求,nano读两个软串口传
    dfrobot的nano板,两个软串口连接攀藤pm2.5传感器和GPS ublox m8n,SPI连sd卡模块。
    Arduino2560/MegaPi与ROS机器人操作系统的连接
    Arduino2560/MegaPi与ROS
    大家好,我因为需要更多时间维系琐碎平凡的工作和生活,一段时间没有上Arduino论坛。
    atmegu328p开发板怎么做流水灯啊
    atmegu328p开发板怎么做流
    我是白小 求指点
    BuddyBlock 1.0.0 测试版发布,一款面向Arduino的图形化开发工...
    BuddyBlock 1.0.0 测试版
    BuddyBlock是一款面向Arduino图形化编程开发的集成开发工具,开发者可以通过积木模块
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表