Arduino Leonardo 按键控制LED亮与灭

按键控制LED亮灭,试用两种方法,一种是最简单的开关,另一种就是用按键的IO来控制LED。


第一种方案:


按键为自锁按键,按键弹起是LED是灭的。


按键按下时LED点亮。


自锁按键的原理。

代码仍用点亮LED那段代码即可,IO给出高电平让LED常亮,自锁按键实现开光。


第二种方案


深蓝色非自锁按钮Free时有上拉电阻1k欧,按下时快速地拉低电平,检测到低电平,LED亮,再按一次,检测到低电平,LED翻转电平,熄灭。



浅蓝色自锁按钮如同方案一的功能,这里只是结合起来。


看看代码,也有三种写法:

第一种:

#define LED 13
#define KEY 2
unsigned char KEY_NUM = 0;
bool Flag_LED = 0;

void setup()
{
	pinMode(LED, OUTPUT); 
	pinMode(KEY, INPUT); 
}

void loop()
{
	Scan_KEY();                        //按键扫描
	if(KEY_NUM == 1)                   //假如按键按下执行该程序
	{
		KEY_NUM = 0;                   //清零标志位
		Flag_LED = !Flag_LED;			
		digitalWrite(LED,Flag_LED);    //LED翻转
	}
}

void Scan_KEY()                             //按键扫描
{
	if( digitalRead(KEY) == 0 )             //查看按键是否按下	
	{
		delay(20);                          //延时20ms,去抖动	
		if( digitalRead(KEY) == 0 )         //查看按键是否按下
		{
			KEY_NUM = 1;			
			while(digitalRead(KEY) == 0);   //松手检测
		}
	}
}

第二种:

#define LED 13
#define KEY 4
int KEY_NUM = 0;		      //按键键值存放变量,不等于1说明有按键按下

void setup()
{
  pinMode(LED,OUTPUT);		   //定义LED为输出引脚
  pinMode(KEY,INPUT_PULLUP);   //定义KEY为带上拉输入引脚
}

void loop()
{
  ScanKey();			       //按键扫描程序,当按键按下时候,该子程序会修改KEY_NUM的值
  if(KEY_NUM == 1)		       //是否按键按下
  {   
    digitalWrite(LED,!digitalRead(LED));    //LED的状态翻转
  }
}

void ScanKey()				     //按键扫描程序
{
  KEY_NUM = 0;				     //清空变量
  if(digitalRead(KEY) == LOW)	//有按键按下
  {
    delay(20);				   //延时去抖动
    if(digitalRead(KEY) == LOW)	//有按键按下
    {
      KEY_NUM = 1;			    //变量设置为1
      while(digitalRead(KEY) == LOW);	//等待按键松手
    }
  }
}

第三种

#define LED 13
#define KEY 4
int KEY_NUM = 0;			//按键键值存放变量,不等于1说明有按键按下

void setup()
{
  pinMode(LED,OUTPUT);	        //定义LED为输出引脚
  pinMode(KEY,INPUT_PULLUP);	//定义KEY为带上拉输入引脚
}

void loop()
{
  if(digitalRead(KEY) == LOW)	//有按键按下
  {
    delay(20);			      //延时去抖动
    if(digitalRead(KEY) == LOW)	   //有按键按下
    {
      
     digitalWrite(LED,!digitalRead(LED));  //LED的状态翻转
       while(digitalRead(KEY) == LOW);      //等待按键松手
     } 
   }
}


### 回答1: Arduino按钮可以通过数字输入引脚连接到Arduino板上。当按钮被按下时,数字输入引脚会接收到高电平信号。我们可以将数字输出引脚连接到LED,以控制LED。 具体步骤如下: 1. 将按钮连接到数字输入引脚,将数字输出引脚连接到LED。 2. 在Arduino IDE中编写代码,读取数字输入引脚的状态,当按钮被按下时,数字输入引脚会接收到高电平信号,此时将数字输出引脚输出高电平,LED就会起来。 3. 当按钮被松开时,数字输入引脚会接收到低电平信号,此时将数字输出引脚输出低电平,LED就会熄。 通过这种方式,我们可以实现Arduino按钮控制LED。 ### 回答2: Arduino按钮控制LED是一种简单而又实用的电路控制方法,既可以帮助初学者了解和掌握基本的硬件电路知识,也可以用于实际应用中的电路控制。下面详细介绍这一方法的步骤和原理。 硬件连接 首先,需要准备以下硬件组件: - Arduino板 - 一个LED - 一个按钮 - 一根杜邦线(可选) 将LED的正极与Arduino的数字口连接(一般来说,我们将LED的正极连接到数字8口)。 将按钮的一端与Arduino的数字口连接(一般来说,我们将按钮的一端连接到数字7口)。 将按钮的另一端连接到GND(即Arduino板的地线)。如果没有杜邦线,可以使用跳线等其他方法进行连接。 软件编程 接下来,需要借助Arduino IDE进行软件编程。我们需要将LED控制和按钮的检测结合起来,并在代码中进行设置。 整个程序的核心就在一个循环语句内,即不停地检查按钮是否被按下,并根据按钮现在的状态来切换LED状态。具体代码如下: int LEDPin = 8; // LED连接的数字口 int buttonPin = 7; // 按钮连接的数字口 int buttonState = 0; // 定义按钮初始状态为未按下 void setup() { pinMode(LEDPin, OUTPUT); pinMode(buttonPin, INPUT); } void loop() { buttonState = digitalRead(buttonPin); // 读取按钮状态 if (buttonState == HIGH) // 如果按钮被按下 { digitalWrite(LEDPin, HIGH); // LED起来 } else // 如果按钮没有被按下 { digitalWrite(LEDPin, LOW); // LED } } 解释一下代码的具体过程: 首先,通过“pinMode()”函数设置LED和按钮的引脚模式,LED的模式设置为输出(即“OUTPUT”),按钮的模式设置为输入(即“INPUT”)。 然后,在“loop()”函数体内,通过“digitalRead()”函数读取按钮的状态,即电位的高低,将状态赋值给“buttonState”变量。 接下来,通过判断“buttonState”的值,来控制LED的状态。“buttonState”的值为“HIGH”时表示按钮被按下,此时LED起来,通过“digitalWrite()”函数写入电位高(即“HIGH”)来控制LED度;“buttonState”的值为“LOW”时表示按钮没有被按下,此时LED,通过“digitalWrite()”函数写入电位低(即“LOW”)来控制LED度。 这样,当我们按下按钮时,LED就会起来,松开按钮时,LED就会熄,实现了按钮控制LED。 总结 Arduino按钮控制LED是一种简单而又实用的硬件控制方法,使我们能够更好地了解Arduino的基本操作和原理。在实际工程应用中,也可以通过这种方法进行电路的控制,并根据需要对硬件组件进行扩展和改进,实现更多功能的实现。 。 (注:以上回答内容由AI实现,仅供参考。) ### 回答3: Arduino按钮控制LED是一种非常基础的电子制作项目。通过使用Arduino板、按钮、LED、电阻器和麻线等电子元件,设计简单电路,使得按下按钮后LED可以。下面我们就来一一介绍这些元件以及具体的实现步骤。 1.元件的介绍: Arduino板:Arduino一个开源软硬件平台,用于开发基于类C语言的电子项目,可以通过编程简单实现很多功能。 按钮:按钮是一种常用的开关电子元件,按下按钮可以连接电路进行控制LEDLED是常用的光电元件,受到电压控制,可以发出红、绿、蓝等不同颜色的光。 电阻器:电阻器是常用的电子元件之一,可以通过调节电阻器的阻值来改变电路中的电流。 麻线:麻线是用于连接电子元件之间的线材,通过颜色区分不同电子元件之间的连接。 2.实现步骤: 第一步:准备好所需要的元件,包括Arduino板、按钮和LED等等。 第二步:用麻线连接Arduino板的数字引脚和按钮中间的引脚,使得按钮可以被控制,同时使用电阻器通过红色线连到按钮的一端,然后再使用黑色线连接到Arduino板的地线。 第三步:使用麻线连接Arduino板的数字引脚和LED的正极引脚,同时再将LED的负极通过一个电阻器连接到Arduino板的地线。 第四步:通过Arduino IDE编写代码,实现按钮按下时,LED,按钮松开时,LED的功能。具体代码如下: void setup() { pinMode(2, INPUT); //按钮引脚 pinMode(8, OUTPUT); //LED引脚 } void loop() { int buttonState = digitalRead(2); //获取按钮状态 if (buttonState == HIGH) { //判断按钮状态 digitalWrite(8, HIGH); //LED } else { digitalWrite(8, LOW); //LED } } 在上述代码中,通过digitalRead函数来获取按钮状态,如果按钮按下,按钮的输入电压为高电平,获取到HIGH,此时LED,否则LED。 3.总结 通过简单的电路连接和代码编写,我们就可以实现Arduino按钮控制LED。这么基础的项目对于初学者来说是必须学习的,通过自己组装和调试电路,可以更好地理解电子基础知识。这种基础的电子项目有利于激发创新思维,加强动手实践能力,在未来的学习或工作中都可以有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值