Arduino开发板实验一:补充

感谢 lifanxigalaxy 两位同学对昨天实验一的讨论。经过补充实验,事实证明galaxy的看法是对的。当PinMode是INPUT时,digitalWrite(pin, HIGH)实际上是用来设置上拉电阻,所以只需要在setup中设置一次即可。

代码如下:

int ledPin=13;
int buttonPin=44;

void setup()
{
 pinMode(ledPin, OUTPUT);
 pinMode(buttonPin, INPUT);
 digitalWrite(buttonPin, HIGH);
}

void loop()
{
 //这一行移到上面的setup中
 //digitalWrite(buttonPin, HIGH);
 digitalWrite(ledPin, digitalRead(buttonPin));
 delay(100);
}

因为我的外部电路连接的GND,所以没法测试下拉电阻。
做完实验我又看了一个教程,发现我的这个实验非常粗暴,“是烧毁单片机的最佳途径”。因为44脚置1后的电压是+5V,我直接用一个开关把它接地了。还好单片机已经有内置的上拉电阻,否则的话这个板子可能就废了(软件开发经常提到的一个术语是“冒烟测试”,看来就是用于检查这种低级错误)。下面这个图是专业人士推荐的接线方式:

接线方式

接线方式

这样接线的好处是,任意两个可能存在电压差的管脚之间,都至少存在一个电阻,就不容易烧板子了。我现在手头没有空的电阻,就不重复这个实验了。有兴趣的同学可以点此看原文教程。



对 “Arduino开发板实验一:补充” 的 7 条 评论

  1. galaxy 说:

    当io处于输入状态时,内部一般处于高阻态,只要不超过电源电压一般不会烧毁芯片
    当处于输出状态时,直接接电源或者地就容易烧芯片了

  2. to galaxy: 多谢,呵呵 :)

  3. 李宙恒 说:

    这个板子有没有原理图?

  4. 有的,Arduino好像是开源项目
    国内卖Arduino板子的,好多都是照着开源PCB生产的,当然也有改进的
    具体的需要去官网上看看

  5. 李宙恒 说:

    嗯 我发现我又买错了一个东西 就是那个ISP下载的板子 其实不需要吧 直接连接就可以下载吧?以前用单片机的时候用过

  6. Nicefiller 说:

    This design is wicked! You definitely know how to keep a reader entertained. Between your wit and your videos, I was almost moved to start my own blog (well, almost…HaHa!) Fantastic job. I really loved what you had to say, and more than that, how you presented it. Too cool!
    Nicefiller http://www.nicefiller.com

发表评论

可以使用下列 XHTML 标签:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>