本帖最后由 薛定谔 于 2014-3-10 13:06 编辑
[mw_shl_code=cpp,true]int NUM[3][3] = {
{8,9,10},
{5,6,7},
{2,3,4}
};
int r,c=0;
int value=0;
void setup(){
Serial.begin(9600);
for(int i=1;i<10;i++)
pinMode(i,OUTPUT);
}
digitalWrite(NUM[2][0],HIGH);
delay(10);
void loop(){
while(Serial.available()>0)
{
value=Serial.read();
delay(2);
switch(value)
{
case 'c':Serial.println("Ok");break;//pc端发送字符c,若返回Ok,说明连接正常
case 'w':upgo();break;
case 's':downgo();break;
case 'a':leftgo();break;
case 'd':rightgo();break;
case ' ':;break;
}
for(int i=1;i<11;i++)
digitalWrite(i,LOW);
delay(10);
digitalWrite(NUM[r][c],HIGH);
delay(10);
}
}
void upgo(){
if (r>0)
r=r-1;
else
r=2;
}
void downgo(){
if (r<2)
r=r+1;
else
r=0;
}
void leftgo(){
if (c>0)
c=c-1;
else
c=2;
}
void rightgo(){
if (c<2)
c=c+1;
else
c=0;
}[/mw_shl_code]
每个引脚单独接个LED,再传个1K左右电阻,然后接地
,最后按照这样的顺序排列,如果是点阵屏的话就不能这样 |