按钮实验

按键是一种常用的控制电器元件,常用来接通或断开电路,从而达到控制电机或者其他设备运行的开关。

未按下时1,2相连,3,4相连;按下时1,2,3,4全部接通。

一般情况是直接把按键开关串联在 led 的电路中来开关,这种应用情况比较单一。这次实验通过逻辑判断的方法间接控制,按键接通后判断按键电路中的输出电压,如果电压大于 4.88V,就使给 LED 电路输出高电平,反之就输出低电平。使用逻辑判断的方法来控制 LED 亮或者灭。

接线

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int key=7;//设置 LED 的数字 IO 脚
void setup()
{
pinMode(key,OUTPUT);//设置数字 IO 引脚为输出模式
}
void loop()
{
int i;//定义变量
while(1)
{
i=analogRead(5);//读取模拟 5 口电压值
if(i>1000)//如果电压值大于 1000(即 4.88V)
digitalWrite(key,HIGH);//设置第七引脚为高电平,点亮 led 灯
else
digitalWrite(key,LOW);//设置第七引脚为低电平,熄灭 led灯
}
}

analogRead()

analogRead()作用是读取模拟口的数值。默认是把 0-5V 的输入电压分成 1024 份,每一份大约为 0.049V,其数值在 0-1023 之间。 在本次程序代码中的读取数值如果大于 512 则给 LED 输出高电平,所对应的电压也就为大于 2.5V。analogRead()命令输入的范围与分辨率可以使用 analogReference()命令进行改动。

有时不需要按按钮灯就会自己亮。 根据多次试验与分析后,确定其为各种干扰所致。比如感应电流等等不少都是大于 2.5V 的,所以为了提高准确度,只能提高判断的电压, 本次实验就是提高到 1000(4.88V)。人体自身也带电,早中晚还不一样。