关于D9脚
我在用arduino来控制数码管显示时发现一个问题,还请大神们帮忙解答。当我用D2~D9来控制数码管时,D9输出无效,刚开始我以为我的D9脚坏了,但我用D9单独控制LEd闪烁,是正常的。
然后我有用别人的arduino来试,也是同样地问题。因此我不得不用2~8和10脚来控制。
代码:
int i;
char ch;
///////////////////显示部分////////////////////////
//0
void s0()
{
digitalWrite(2,1);
digitalWrite(3,1);
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,0);
digitalWrite(8,0);
digitalWrite(10,0);
Serial.print(0);
}
// 1
void s1()
{
digitalWrite(2,1);
digitalWrite(3,1);
digitalWrite(4,1);
digitalWrite(5,1);
digitalWrite(6,1);
digitalWrite(7,0);
digitalWrite(8,0);
digitalWrite(10,1);
Serial.print(1);
}
//2
void s2()
{
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,1);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,1);
digitalWrite(8,0);
digitalWrite(10,0);
Serial.print(2);
}
// 3
void s3()
{
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,1);
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(7,0);
digitalWrite(8,0);
digitalWrite(10,0);
Serial.print(3);
}
//4
void s4()
{
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,1);
digitalWrite(6,1);
digitalWrite(7,0);
digitalWrite(8,0);
digitalWrite(10,1);
Serial.print(4);
}
//5
void s5()
{
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(7,0);
digitalWrite(8,1);
digitalWrite(10,0);
Serial.print(5);
}
//6
void s6()
{
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,0);
digitalWrite(8,1);
digitalWrite(10,0);
Serial.print(6);
}
// 7
void s7()
{
digitalWrite(2,1);
digitalWrite(3,1);
digitalWrite(4,1);
digitalWrite(5,1);
digitalWrite(6,1);
digitalWrite(7,0);
digitalWrite(8,0);
digitalWrite(10,0);
Serial.print(7);
}
//8
void s8()
{
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,0);
digitalWrite(8,0);
digitalWrite(10,0);
Serial.print(8);
}
// 9
void s9()
{
digitalWrite(2,1);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(7,0);
digitalWrite(8,0);
digitalWrite(10,0);
Serial.print(9);
}
void setup()
{
Serial.begin(9600);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(10,OUTPUT);
digitalWrite(2,1);
digitalWrite(3,1);
digitalWrite(4,1);
digitalWrite(5,1);
digitalWrite(6,1);
digitalWrite(7,1);
digitalWrite(8,1);
digitalWrite(10,1);
}
/////////////////主程序部分//////////////////
void loop()
{
while(Serial.available())
{
ch=Serial.read();
switch(ch)
{
case '0': s0();break;
case '1': s1();break;
case '2': s2();break;
case '3': s3();break;
case '4': s4();break;
case '5': s5();break;
case '6': s6();break;
case '7': s7();break;
case '8': s8();break;
case '9': s9();break;
default : break;
}
Serial.println(ch);
}
} 哦哦,我的板卡是arduino Nano w/ATmega328 可否拍個照讓我們開開眼界? {:soso_e149:}哎,真尴尬,原来是我的排插第9脚给插下去了,没有接触好,所以没有亮。正巧我昨天换了排插,今天再把代码拷进去时,它正常了。
很抱歉,这个帖子我想删了,咋删啊?另外问一下,为什么13号引脚不写pinMode(13,OUTPUT);也可以用? eddiewwm 发表于 2014-2-21 23:58 static/image/common/back.gif
可否拍個照讓我們開開眼界?
哎,不过还是谢谢你。真尴尬,原来是我的排插第9脚给插下去了,没有接触好,所以没有亮。正巧我昨天换了排插,今天再把代码拷进去时,它正常了。
很抱歉,这个帖子我想删了,咋删啊?另外问一下,为什么13号引脚不写pinMode(13,OUTPUT);也可以用?
页:
[1]