我们要结合 数字输入输出功能,制作一个可控制的LED。实现按住按键时,点亮LED,放开按键后,熄灭LED的效果。实验中我们将用到按键或者按键模块,常见的有2脚按键和4脚按键,其内部如图1所示。当按下按键时,就会接通按键两端,放开时,两端会再次断开。
图1
所需材料
Arduino、面包板、LED一个、按键一个、220Ω电阻一个、10KΩ电阻一个
连接示意图
原理图
如上图所示,我们使用了两个电阻。LED的一端,我们使用了220Ω的电阻,按键一端,我们使用了10K的电阻,两个电阻的作用分别如下:
限流电阻
一般LED的最大能承受的电流为25mA,如若直接将LED连接到电路中,当其点亮时,如果电流过大,很容易烧毁。我们在LED一端串联了一个电阻R2,这样做可以控制流过LED的电流,防止损坏LED。这个电阻我们称之为限流电阻。
下拉电阻
在Arduino的2号引脚到GND之前,连接了一个阻值10K的电阻。如果没有该电阻,当未按下按键时,2号引脚会一直处于悬空 状态,此时使用digitalRead() 读取2号引脚状态,会得到一个不稳定的值(可能是高,也可能是低)。添加这个R1电阻到地就是为了稳定引脚的电平,当引脚悬空时,就会识别为低电平。而这种将某节点通过电阻接地的做法,叫做下拉,这个电阻叫做下拉电阻。
实现方法分析
当未按下按键时,2号引脚检测到的输入电压为低电平;当按下按键时,会导通2号引脚和VCC,此时2号引脚检测到的输入电压为高电平。通过判断按键是否被按下,来控制LED的亮灭。
示例程序
int buttonPin = 2; //定义2号端口为连接按键的端口
int ledPin =13; //定义13号端口为连接LED灯的端口
void setup() {
//初始化各个端口的输入输出模式
pinMode(buttonPin