arduino小白遇到的神奇情况?
重做了 “按键控制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电阻后,更加敏感了,带上布手套触摸金属板也会亮,手和金属板中间隔着烟盒也能亮,好神奇?!和我原来做过一个电容触摸开关,有点像,但那个程序很复杂,还用了库文件,这个这么简单就实现了,什么道理?请大神们解答下。
还有,实际操作中,串联LED的那个200欧姆左右的限流电阻,我是没有接的,LED灯并不会烧坏掉的,我看了《爱上arduino》,就是开发者本人写的那本书上,他就是直接接的LED灯 1)Arduino使用的Avr芯片是CMOS工艺制造的,你知道的,MOS管是电压型器件,输入阻抗很高,你手指头上感应的电压,也足以触发MOS管导通,这就相当于输入一个逻辑1信号。你那个对地的电阻会分压,所以电阻越小,对地分走的电压越多,触摸越迟钝,反之亦然。
通过这个事件,相信有助于你理解电路设计实践中的一条可靠性方面的规则:对于不使用的输入IO口,不能悬空,必须通过一个电阻拉高或者拉低。
2)AVR的单个IO输出电流能力有上限,最大不会超过40mA(具体看datasheet),所以你不接限流电阻,这就是个天花板,只不过让单片机很难受而已。做实验没问题,做产品的话就会使芯片寿命打折了。
本帖最后由 yqfans 于 2016-6-25 11:28 编辑
maidoo 发表于 2016-6-25 08:37 static/image/common/back.gif
1)Arduino使用的Avr芯片是CMOS工艺制造的,你知道的,MOS管是电压型器件,输入阻抗很高,你手指头上感应的 ...
大神你好,感谢你回答我的问题。
1.关于这个问题,你的回答,让我想到了去年玩595芯片控制8个LED灯,当时,按照教程,却怎么也做不出8个灯交替闪烁,总是不稳定,一会好,一会坏,有时候,手狠狠拍下桌子,都会影响到8个灯的闪烁,我百思不解,问了很多人,也无果。后来,才看到,有人的595芯片中OE (使能)引脚是要接GND的,于是我也接地,问题就解决了,稳定,再没有出现问题(http://www.geek-workshop.com/forum.php?mod=viewthread&tid=12675&extra=&highlight=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在工作,但如果电路复杂后(产品化),就会出现问题,影响硬件寿命,或者是出现错误烧掉元器件,是这样么?
RE: arduino小白遇到的神奇情况?
yqfans 发表于 2016-6-25 11:21 static/image/common/back.gif大神你好,感谢你回答我的问题。
1.关于这个问题,你的回答,让我想到了去年玩595芯片控制8个LED灯,当 ...
3l楼的回答很专业,很详细,从理论上解释了问题的根源,具体操作上只要把接在7脚上的开关和电阻互换位置就可了 wxszyg 发表于 2016-6-25 11:29 static/image/common/back.gif
3l楼的回答很专业,很详细,从理论上解释了问题的根源,具体操作上只要把接在7脚上的开关和电阻互换位置就 ...
是的,我大概知道情况,但说不了那么专业。。 我能说的是,用1M电阻的话,跟悬空还有多少区别呢?
虽然有效果,但应该也是会受电磁干扰的吧。
页:
[1]