|
|
我在用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);
}
} |
|