求助怎么用两个按键控制led亮灭的模式?-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2875|回复: 2

[未解决] 求助怎么用两个按键控制led亮灭的模式?

[复制链接]
发表于 2021-3-28 16:28 | 显示全部楼层 |阅读模式
lz用的是arduino uno,目标是使用二个按钮开关,控制三个LED的亮灭。一个按钮用于选择要控制的LED,按第一下选择控制第一个LED,按第二下选择控制第二个LED,按第三下选择控制第三个LED,按第四下选择控制全部LED;一个按钮用于控制LED开或关,按一下开LED,再按一下关LED。
目前已经做到用2号按键控制灯亮的模式,求问代码怎样写才能让3号按键随时控制所有灯的亮灭


发表于 2021-3-28 22:24 | 显示全部楼层
本帖最后由 topdog 于 2021-3-29 22:30 编辑

1,按钮1选择LED,
2,按钮2闪烁步骤1选择的LED,
3,按钮3全亮或全灭所有LED。

1.jpg

图画好了,才看到附加的第三个按钮,接A2吧,偷懒一下不修改线路图了。

[pre]//https://www.arduino.cn/thread-103433-1-1.html

int buttonpin[] = {A0, A1, A2};
int ledpin[] = {8, 9, 10};

bool allled = false;

void setup()
{
  Serial.begin(9600);
  for (int i = 0; i < 3; i++)
  {
    pinMode(ledpin, OUTPUT);
    pinMode(buttonpin, INPUT);
  }
}

void loop()
{
  int numberled;

  bool status_button1 = digitalRead(buttonpin[0]);
  bool status_button2 = digitalRead(buttonpin[1]);
  bool status_button3 = digitalRead(buttonpin[2]);

  if (status_button1 == true) {
    numberled += 1;
  }

  if (numberled = 3) numberled = 0;

  if (status_button2 == true) {
    digitalWrite(ledpin[numberled], HIGH);
    delay(100);
    digitalWrite(ledpin[numberled], LOW);
    delay(100);
  }

  if (status_button3 == true) {
    for (int j = 0; j < 3; j++)
    {
      digitalWrite(ledpin[j], allled);
      delay(100);
    }
    allled = !allled;
  }
}[/pre]
 楼主| 发表于 2021-3-29 10:12 | 显示全部楼层
topdog 发表于 2021-3-28 22:24
1,按钮1选择LED,
2,按钮2闪烁步骤1选择的LED,
3,按钮3全亮或全灭所有LED。

感谢帮助
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-29 10:58 , Processed in 0.222555 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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