这里选用常用的4个脚的按键,其内部结构如图4-1所示。当按下按键时就会接通按键两端,当放开时两端会断开。
图4-1 按键结构
1)所需实验器材
实验所需器材包括MSP430G2 LaunchPad、面包板、1个LED、1个按键、1个220Ω电阻和1个10 kΩ电阻。
2)连接示意图
图4-2为实验连接示意图。
图4-2 按键控制LED实验连接示意
3)电路原理图
图4-3为实验电路原理图。
4)背景知识
电路中使用了两个电阻,在LED的一端使用了220Ω的电阻,在按键一端使用了10 kΩ的电阻,两个电阻的作用分别如下。
(1)限流电路。一般LED最大能承载的电流为20 mA,如果直接把LED连接到电路中,点亮LED时很容易将其烧毁。在LED一端串联一个电阻R2,可以减少通过LED的电流,防止LED损坏。这个电阻称为限流电阻。这里选择R2阻值为220Ω,利用欧姆定理I=U/R,当6号引脚输出高电平时,经过LED的电流等于3 V/220Ω,约等于14 mA。实际上,LED正向工作压降约为1.2 V,通过LED电流会更小一点,(3 V-1.2 V)/220Ω,约为5 mA。
图4-3 按键控制LED实验电路原理图
(2)下拉电阻。在MSP430 MCU的10号引脚到GND之间连接一个阻值很大(10 kΩ)的电阻。如果没有该电阻,当按键没有按下时,10号引脚会一直处于悬空状态,此时使用digitalRead()函数读取10号引脚的状态会得到一个不稳定的值(可能是高,也可能是低),添加电阻R1连接到GND是为了稳定引脚的电平,当按键没有按下时,会被识别为低电平。这种将某节点通过电阻接地的做法称为下拉,因此这个电阻称为下拉电阻。
5)程序解析
当未按下按键时,10号引脚检测到的输入电压为低电平;当按下按键时,VCC导通,此时10号引脚检测到输入电压为高电平。通过判断按键是否被按下来控制LED的亮灭。表4-1为按键控制LED的实验程序清单。
表4-1 按键控制LED实验程序清单
(www.xing528.com)
(续表)
上传并运行程序,当按钮按下时LED点亮;当松开按键时,LED会熄灭。
下面修改以上的项目,把下拉电阻修改为上拉电阻。
6)使用上拉电阻后的连接示意图
修改后的连接示意图如图4-4所示,把下拉电阻原来接GND端连接到VCC上,按键原来接VCC端改接到GND,电阻R1就由下拉电阻变身为上拉电阻。与下拉电阻不同的是上拉电阻连接到VCC上,按键未按下时,10号引脚稳定在高电位,所以称为上拉电阻。当按钮按下时,10号引脚为低电平。
图4-4 使用上拉电阻后的连接示意图
一般尽量选择较大阻值的电阻作为稳定悬空引脚电平所用的电阻,常用10 kΩ电阻。
7)使用上拉电路后的电路原理图
使用上拉电路后的电路原理如图4-5所示。
8)使用上拉电路后的程序
只需要对表4-1所示的按键控制LED实验程序清单做些简单修改就可以了。
图4-5 使用上拉电路后的电路原理图
9)使用引脚上的内部上拉电阻
MSP430G2 LaunchPad的每个引脚上都有内置的上拉电阻。修改图4-4,去掉上拉电阻以及其与VCC的连线。要使用引脚上内置的上拉电阻,只需要在setup()函数中把pin Mode(buttonPin,INPUT);修改为:pin Mode(buttonPin,INPUT_PULLUP);即可。
接下来要对LED控制程序做一个修改,实现一个新的控制效果,即按一下按钮点亮LED,再按一下按键熄灭LED。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。