2012010170 发表于 2014-2-20 22:24:52

关于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);
}
}

2012010170 发表于 2014-2-21 18:41:24

哦哦,我的板卡是arduino Nano w/ATmega328

eddiewwm 发表于 2014-2-21 23:58:20

可否拍個照讓我們開開眼界?

2012010170 发表于 2014-2-22 11:51:48

{:soso_e149:}哎,真尴尬,原来是我的排插第9脚给插下去了,没有接触好,所以没有亮。正巧我昨天换了排插,今天再把代码拷进去时,它正常了。
很抱歉,这个帖子我想删了,咋删啊?另外问一下,为什么13号引脚不写pinMode(13,OUTPUT);也可以用?

2012010170 发表于 2014-2-22 11:52:36

eddiewwm 发表于 2014-2-21 23:58 static/image/common/back.gif
可否拍個照讓我們開開眼界?

哎,不过还是谢谢你。真尴尬,原来是我的排插第9脚给插下去了,没有接触好,所以没有亮。正巧我昨天换了排插,今天再把代码拷进去时,它正常了。
很抱歉,这个帖子我想删了,咋删啊?另外问一下,为什么13号引脚不写pinMode(13,OUTPUT);也可以用?
页: [1]
查看完整版本: 关于D9脚