极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15792|回复: 6

arduino小白遇到的神奇情况?

[复制链接]
发表于 2016-6-24 23:26:04 | 显示全部楼层 |阅读模式
重做了 “按键控制LED实验”,想温故知新,图1如下:

程序就是这个,简单易懂,没什么说的。

int ledpin=11;//定义数字11 接口
int inpin=7;//定义数字7 接口
int val;//定义变量val
void setup()
{
pinMode(ledpin,OUTPUT);//定义小灯接口为输出接口
pinMode(inpin,INPUT);//定义按键接口为输入接口
}
void loop()
{
val=digitalRead(inpin);//读取数字7 口电平值赋给val
if(val==LOW)//检测按键是否按下,按键按下时小灯亮起
{ digitalWrite(ledpin,LOW);}
else
{ digitalWrite(ledpin,HIGH);}
}

问题来了,无聊中我把电路连接改了一下,如图2,这样,蓝色的线是重新连接的,电阻改用了1M欧姆(原来是10K),上方的圆圈代表金属板,然后用手触摸金属板,LED灯也亮了起来!!
我只修改了电路连接部分,程序我没变,按照原来的程序,7口作为检测输入I/O口,检测如何是高电平,11口的LED灯才会亮;那么为什么我用手触摸与7口连接的金属板,LED灯也会亮呢?
而且我还发现,电路中的电阻(串联7口接地的),电阻越大,这个不知道原理的触摸开关越是敏感,其实用50K左右的电阻就能亮了,但我用了1M电阻后,更加敏感了,带上布手套触摸金属板也会亮,手和金属板中间隔着烟盒也能亮,好神奇?!和我原来做过一个电容触摸开关,有点像,但那个程序很复杂,还用了库文件,这个这么简单就实现了,什么道理?请大神们解答下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2016-6-24 23:44:28 | 显示全部楼层
还有,实际操作中,串联LED的那个200欧姆左右的限流电阻,我是没有接的,LED灯并不会烧坏掉的,我看了《爱上arduino》,就是开发者本人写的那本书上,他就是直接接的LED灯

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2016-6-25 08:37:12 | 显示全部楼层
1)Arduino使用的Avr芯片是CMOS工艺制造的,你知道的,MOS管是电压型器件,输入阻抗很高,你手指头上感应的电压,也足以触发MOS管导通,这就相当于输入一个逻辑1信号。你那个对地的电阻会分压,所以电阻越小,对地分走的电压越多,触摸越迟钝,反之亦然。
通过这个事件,相信有助于你理解电路设计实践中的一条可靠性方面的规则:对于不使用的输入IO口,不能悬空,必须通过一个电阻拉高或者拉低。

2)AVR的单个IO输出电流能力有上限,最大不会超过40mA(具体看datasheet),所以你不接限流电阻,这就是个天花板,只不过让单片机很难受而已。做实验没问题,做产品的话就会使芯片寿命打折了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-25 11:21:44 | 显示全部楼层
本帖最后由 yqfans 于 2016-6-25 11:28 编辑
maidoo 发表于 2016-6-25 08:37
1)Arduino使用的Avr芯片是CMOS工艺制造的,你知道的,MOS管是电压型器件,输入阻抗很高,你手指头上感应的 ...


大神你好,感谢你回答我的问题。

1.关于这个问题,你的回答,让我想到了去年玩595芯片控制8个LED灯,当时,按照教程,却怎么也做不出8个灯交替闪烁,总是不稳定,一会好,一会坏,有时候,手狠狠拍下桌子,都会影响到8个灯的闪烁,我百思不解,问了很多人,也无果。后来,才看到,有人的595芯片中OE (使能)引脚是要接GND的,于是我也接地,问题就解决了,稳定,再没有出现问题(http://www.geek-workshop.com/for ... =74HC595&page=2 当时的帖子)
那么,我这次的问题,是否和上次595芯片OE(使能)引脚未接地而造成的不稳定,一样么?就如同你说的, OE引脚也是一个输入I/O口,不能空着,要么拉高,要么拉低。   我对OE(使能)引脚不懂是干嘛的,这只是我的猜测。
作为输入的I/O口,我测试过,本身是有一点电压的,如这次的7口作为输入的I/O口,我用万用表检测大概是1.7V的电压,我猜他可能就相当于一个检测标尺,5v来了,对于1.7V就是高电平,接GND,1.7V就被降到0V成为低电平,我的理解对么?

2.关于LED灯不接限流电阻,我可以理解为,是实验中一种简单便捷的方法,可以快速知道哪个I/O在工作,但如果电路复杂后(产品化),就会出现问题,影响硬件寿命,或者是出现错误烧掉元器件,是这样么?
回复 支持 反对

使用道具 举报

发表于 2016-6-25 11:29:32 | 显示全部楼层

RE: arduino小白遇到的神奇情况?

yqfans 发表于 2016-6-25 11:21
大神你好,感谢你回答我的问题。

1.关于这个问题,你的回答,让我想到了去年玩595芯片控制8个LED灯,当 ...

3l楼的回答很专业,很详细,从理论上解释了问题的根源,具体操作上只要把接在7脚上的开关和电阻互换位置就可了
回复 支持 反对

使用道具 举报

发表于 2016-6-26 11:45:33 | 显示全部楼层
wxszyg 发表于 2016-6-25 11:29
3l楼的回答很专业,很详细,从理论上解释了问题的根源,具体操作上只要把接在7脚上的开关和电阻互换位置就 ...

是的,我大概知道情况,但说不了那么专业。。
回复 支持 反对

使用道具 举报

发表于 2016-6-29 20:47:32 | 显示全部楼层
我能说的是,用1M电阻的话,跟悬空还有多少区别呢?
虽然有效果,但应该也是会受电磁干扰的吧。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 23:09 , Processed in 0.048620 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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