圣源电子制作

 找回密码
 立即注册
查看: 6210|回复: 0
打印 上一主题 下一主题

arduino学习笔记19按键实验

[复制链接]
跳转到指定楼层
楼主
发表于 2012-4-26 17:21:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 SYDZ__顺 于 2012-5-15 18:15 编辑

arduino学习笔记19按键实验
按键是一种常用的控制电器元件,常用来接通或断开电路,从而达到控制电机或者其他设备运行的开关。按键的外观多种多样,本次实验使用的是这种微型按键,6mm的,如下图。



此种按键有4个脚,从背面看是这样子的。





在按键没有按下去的时候1,2号脚相连,3,4号脚相连。按键按下去的时候,1,2,3,4号脚就全部接通。

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

本次连接方法如下图。按键开关两段一端连接5V接口,一端连接模拟5号口。LED长针脚串联220Ω电阻连接数字7号口,短针脚连接GND。






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

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

刚开始本实验选用的判断标准是512,也就是2.5V。但是有网友按照教程的方法进行试验发现有问题,有时不需要按按钮灯就会自己亮。根据多次试验与分析后,确定其为各种干扰所致。比如感应电流等等不少都是大于2.5V的,所以为了提高准确度,只能提高判断的电压,本次实验就是提高到10004.88V)。人体自身也带电,早中晚还个不一样。下面的实验就是把模拟5号口判断标准定位512,用手去触摸模拟5号口导线就可以点亮LED

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|联系我们|闽公网安备 35012102000020号|闽ICP备11020110号-1|圣源电子

GMT+8, 2024-11-21 18:36 , Processed in 0.044281 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表