求助, 新手对Blink的几个疑问

2014-10-191.5万
AI 快速预览详细 收起
本文讨论了新手在使用Arduino Uno进行Blink示例时遇到的问题。通过修改setup代码,解决了板载LED常亮的问题。文章解释了pin13与板载LED的关系,并提供了具体的解决方案。适合初学者学习引脚设置和报错排查。


Arduino uno入门套到了, 开箱以后迫不及待的试了下IDE里带的Blink.ino, 也算是arduino的helloworld了下载到板子一切正常 , 心里比当初写第一个C的helloworld还要激动, 人说不懂硬件的程序猿不是好网管!!
然后看到analogWrite, 立马就开始连线了 , 9pin 接led 串联一个10k电阻再接GND
代码是这样的
void setup(){
pinMode(9, OUTPUT);
}
int i=0;
void loop(){
  for(i=0;i<255;i++){
    analogWrite(9,i);
    delay(10);
  }
  delay(500);
  for(i=255;i>0;i--){
    analogWrite(9,i);
    delay(10);
  }
  delay(500);
}
下载之后还是正常, led渐亮再渐灭, 再仔细一看, 为毛刚才blink的板子上的那个"L" (led) 常亮?!!


尝试改setup
void setup(){
pinMode(9, OUTPUT);
digitalWrite(13, LOW);
}
还是常亮

再改setupvoid setup(){
pinMode(9, OUTPUT);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
}
这回不亮了,
那么问题来了 , 为何会这样 , pin13 和板子上的"L" 到底是何关系?  另外引脚什么都不接也不设置pinMode的话  是否有默认值?




创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(3)
ohmymymy
ohmymymy
作者
感谢楼上大神回复!! , 我还以为论坛里没人了 , 新帖也没有, 回复也没有
analogRead()读空的模拟管脚, 得到的不确定电平!!
用作随机种子的话 同样解决了每次板子通电之后random随机数相同的问题
Youyou
Youyou回复ohmymymy
你说的太对了,我产生随机数,用的就是这种方法:handshake
Youyou
Youyou
程序里面什么都不设,那么管脚默认是高阻状态,管脚上面的电平不确定,因此,如果这个管脚接了个LED灯,有时确实能够点亮的,但亮度没有全点亮时亮,运气好的话,还能实现手接近arduino板子LED就亮起来的现象,这就是高阻状态导致的不确定电平引起的。其实,你用analogRead()去读一个什么都不接的模拟管脚,会出现类似随机的值,这也是刚才所述效果的一个体现。
L的电平跟随D13变化,你可以认为D13上面接了一个LED灯。实际的电路中,是用运放做成电压跟随器实现的。如果不喜欢LED灯亮起,你可以把它设置成输出模式,并且输出高电平,或者是上拉输入模式。
20060606
20060606回复Youyou
感谢分享
Youyou
Youyou回复微笑的rockets
:lol:lol:lol:lol
共3条回复,已加载2条,点击查看更多共3条回复,已加载全部
曹惊博
曹惊博
呵呵,有用不错,点赞阿:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol
:):):):):):):):):):):):):):):):):):)
- 没有更多了 -