arduino入門教程到第16課遇到些問題.效果一直是混亂的狀態.
琢磨了半天發現一些問題,和大家分享下
1)接線圖,原圖沒有問題,只是比較含糊,線比較多不好看. 我用紅色數字標示數碼管的12個腳,並且用藍色數字標示出對應arduino的腳

2)程序問題(這個問題比較離譜)
剛開始按照示例怎么都沒辦法出效果,突發奇想,將所有的高低電平兌換.然后一切都和諧了,后來查了共陰共陽的原理圖發現原來的代碼可能是共陽的.
下面是我的代碼:
int y[8] = {1,2,3,4,5,6,7,8};
int d[4] = {12,11,10,9};
int digital[10][8] = {{6,y[0],y[1],y[2],y[3],y[4],y[5]},{2,y[1],y[2]},{5,y[0],y[1],y[3],y[4],y[6]},{5,y[0],y[1],y[2],y[3],y[6]},{4,y[1],y[2],y[5],y[6]},{5,y[0],y[2],y[3],y[5],y[6]},{6,y[0],y[2],y[3],y[4],y[5],y[6]},{3,y[0],y[1],y[2]},{7,y[0],y[1],y[2],y[3],y[4],y[5],y[6]},{6,y[0],y[1],y[2],y[3],y[5],y[6]}};
long n=0;
int x=100;
int del=55;
void setup(){
for(int i=0;i<8;i++)
pinMode(y[i],OUTPUT);
for(int i=0;i<4;i++)
pinMode(d[i],OUTPUT);
}
void clearLEDs(){
for(int i=0;i<8;i++)
digitalWrite(y[i],LOW);
}
void pickDigit(int x){
for(int i=0;i<4;i++)
digitalWrite(d[i],HIGH);
if(x>4) x=4;
digitalWrite(d[x-1],LOW);
}
void showDigital(int x){
for(int i=1;i<=digital[x][0];i++)
digitalWrite(digital[x][i], HIGH);
}
void disp(int x){
digitalWrite(y[7],HIGH);
}
void loop(){
clearLEDs();
pickDigit(1);
showDigital((n/x/1000)%10);
delayMicroseconds(del);
clearLEDs();
pickDigit(2);
showDigital((n/x/100)%10);
delayMicroseconds(del);
clearLEDs();
pickDigit(3);
disp(3);
showDigital((n/x/10)%10);
delayMicroseconds(del);
clearLEDs();
pickDigit(4);
showDigital(n/x%10);
delayMicroseconds(del);
n++;
if(digitalRead(13) == LOW){
n=0;
}
}
最后是效果圖和效果視頻

