Arduino开发板实验一:补充
由 动力老男孩 发表于 2010/01/18 20:54:50感谢 lifanxi 和 galaxy 两位同学对昨天实验一的讨论。经过补充实验,事实证明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,我直接用一个开关把它接地了。还好单片机已经有内置的上拉电阻,否则的话这个板子可能就废了(软件开发经常提到的一个术语是“冒烟测试”,看来就是用于检查这种低级错误)。下面这个图是专业人士推荐的接线方式:
这样接线的好处是,任意两个可能存在电压差的管脚之间,都至少存在一个电阻,就不容易烧板子了。我现在手头没有空的电阻,就不重复这个实验了。有兴趣的同学可以点此看原文教程。