Arduino 用两个按键分别控制两个LED灯点亮

 

实验简介

使用两个按键,分别控制两个LED灯的 点亮 与 关闭 

按一下,亮,再按一下灭,走起......

 

先说明一下4脚按键开关的工作原理

 

 

示例效果

 

 

BOM表

Arduino Uno         * 1

LED                       *2(各什么颜色你喜欢就好)

4脚按键开关           *2

面包板                   *1

跳线若干

 

接线图

 

程序源码

 

本程序能分别通过按键控制LED灯的亮或者灭,但无法实现同时亮或者灭。

如果有更好的方法,请告知,谢谢
程序打包下载:https://u16460183.ctfile.com/fs/16460183-295923433

 

#define LED 3       //定义 led_1 I/O number is 3     
#define KEY 2       //定义 key_1 I/O number is 2

#define LED2 5      //定义 led_2 I/O number is 5
#define KEY2 4      //定义 key_2 I/O number is 4

int KEY_NUM1 = 0;    //key_1 value (按键键值存放变量,不等于1说明有按键按下)
int KEY_NUM2 = 0;    //key_2 value 

void setup()
{
  pinMode(LED,OUTPUT);			        //定义 led_1 I/O is OUTPUT
  pinMode(KEY,INPUT_PULLUP);        //定义 led_1 I/O is INPUT_PULLUP
  pinMode(LED2,OUTPUT);
  pinMode(KEY2,INPUT_PULLUP);		
  
  Serial.begin(300);
}

void loop()
{
  ScanKey();						//按键扫描程序,当按键按下时候,该子程序会修改KEY_NUM的值
  ScanKey2();
 
}

//按键1扫描程序
void ScanKey()						
{
  KEY_NUM1 = 0;							          //清空变量
  if(digitalRead(KEY) == LOW)			    //有按键按下
  {
    delay(20);						            //延时去抖动
    if(digitalRead(KEY) == LOW)		    //有按键按下
    {
      KEY_NUM1 = 1;				            //变量设置为1
      while(digitalRead(KEY) == LOW);	//等待按键松手
    }
    Serial.println(digitalRead(LED));//串口输出当前LED灯的状态
  }

  if(KEY_NUM1 == 1)              //是否按键按下
  {   
    digitalWrite(LED,!digitalRead(LED));    //LED的状态翻转
  }
  
}

//按键2扫描程序
void ScanKey2()					
{
  KEY_NUM2 = 0;						
  if(digitalRead(KEY2) == LOW)			
  {
    delay(20);					
    if(digitalRead(KEY2) == LOW)		
    {
      KEY_NUM2 = 1;				
      while(digitalRead(KEY2) == LOW);	
    }
      Serial.println(digitalRead(LED2));
  }

  if(KEY_NUM2 == 1)
  {
    digitalWrite(LED2, !digitalRead(LED2)); 
  }
}

 

  • 9
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
好的,我可以为你提供一个简单的 Arduino 代码示例,来演示如何使用两个按钮分别控制两个 LED 的开与关。 首先,你需要准备以下材料: - 1个 Arduino UNO 开发板 - 2个按钮开关 - 2个 220 Ω 电阻 - 2个 LED - 面包板 - 连接线若干 然后,按照以下步骤进行连接: 1. 将一个按钮开关的一端连接到 Arduino 开发板的数字引脚 2,另一端连接到地。使用 220 Ω 电阻将按钮与地之间相连。 2. 将另一个按钮开关的一端连接到 Arduino 开发板的数字引脚 3,另一端连接到地。同样使用 220 Ω 电阻将按钮与地之间相连。 3. 将第一个 LED 的正极连接到 Arduino 开发板的数字引脚 4,将第一个 LED 的负极连接到地。使用 220 Ω 电阻将第一个 LED 的正极与数字引脚 4 之间相连。 4. 将第二个 LED 的正极连接到 Arduino 开发板的数字引脚 5,将第二个 LED 的负极连接到地。使用 220 Ω 电阻将第二个 LED 的正极与数字引脚 5 之间相连。 接下来,你可以使用以下代码示例来控制两个 LED: ``` int button1 = 2; // 第一个按钮连接的数字引脚 int button2 = 3; // 第二个按钮连接的数字引脚 int led1 = 4; // 第一个 LED 连接的数字引脚 int led2 = 5; // 第二个 LED 连接的数字引脚 void setup() { pinMode(button1, INPUT_PULLUP); // 设置第一个按钮为输入模式 pinMode(button2, INPUT_PULLUP); // 设置第二个按钮为输入模式 pinMode(led1, OUTPUT); // 设置第一个 LED 为输出模式 pinMode(led2, OUTPUT); // 设置第二个 LED 为输出模式 } void loop() { if (digitalRead(button1) == LOW) { // 当第一个按钮被按下时 digitalWrite(led1, HIGH); // 点亮第一个 LED } else { digitalWrite(led1, LOW); // 关闭第一个 LED } if (digitalRead(button2) == LOW) { // 当第二个按钮被按下时 digitalWrite(led2, HIGH); // 点亮第二个 LED } else { digitalWrite(led2, LOW); // 关闭第二个 LED } } ``` 这段代码首先定义了四个变量 `button1`、`button2`、`led1` 和 `led2`,分别表示两个按钮连接的数字引脚和两个 LED 连接的数字引脚。 在 `setup()` 函数中,我们将两个按钮设置为输入模式,两个 LED 设置为输出模式。 在 `loop()` 函数中,我们使用 `digitalRead()` 函数来读取两个按钮的状态,当第一个按钮被按下时,我们通过 `digitalWrite()` 函数将第一个 LED 点亮;当第二个按钮被按下时,我们通过 `digitalWrite()` 函数将第二个 LED 点亮。 希望这个代码示例能够帮助你实现两个按钮分别控制两个 LED 的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值