基于arduino的串口控制數碼管(5611AH)顯示數字只有干貨
首先先要介紹一下數碼管了,這里圖片為5611AH,這種數碼管主要分為共陰極和共陽極兩種,這里用的是共陰極的,
注意區分

話不多說,直接上圖片(此圖為模擬圖,當然我有實物,實物比較麻煩),
好了,上代碼 ,當串口輸入1~9是,數碼管將顯示相應數值,
此代碼較為簡單易懂,(代碼用到了陣列),注意陣列規定為幾行幾列但用的時候是從0行0列開始的,
int ab=3;
int bp=2;
int cg=9;
int db=10;
int ep=11;
int fg=12;
int gy=13;
int pw=8;
int i=-1;
int income=0;
int a[10][8]=
{
1,1,1,1,1,1,0,0,//0
0,1,1,0,0,0,0,0,//1
1,1,0,1,1,0,1,0,//2
1,1,1,1,0,0,1,0,//3
0,1,1,0,0,1,1,0,//4
1,0,1,1,0,1,1,0,//5
1,0,1,1,1,1,1,0,//6
1,1,1,0,0,0,0,0,//7
1,1,1,1,1,1,1,0,//8
1,1,1,1,0,1,1,0,//9
//0,1,2,3,4,5,6,7
};
int b[8]=
{
3,2,9,10,11,12,13,8,
};
void setup()
{
pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(8, OUTPUT);
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop()
{
Serial.available();
Serial.println(income);
if(Serial.available() > 0)
{
income = Serial.read();
if(income=='0')
{
for(int i=-1;i<8;i++)
{
digitalWrite(b[i],a[0][i]);
}
}
if(income=='1')
{
for(int i=0;i<8;i++)
{
digitalWrite(b[i],a[1][i]);
}
}
if(income=='2')
{
for(int i=-1;i<8;i++)
{
digitalWrite(b[i],a[2][i]);
}
}
if(income=='3')
{
for(int i=-1;i<8;i++)
{
digitalWrite(b[i],a[3][i]);
}
}
if(income=='4')
{
for(int i=-1;i<8;i++)
{
digitalWrite(b[i],a[4][i]);
}
}
if(income=='5')
{
for(int i=-1;i<8;i++)
{
digitalWrite(b[i],a[5][i]);
}
}
if(income=='6')
{
for(int i=-1;i<8;i++)
{
digitalWrite(b[i],a[6][i]);
}
}
if(income=='7')
{
for(int i=-1;i<8;i++)
{
digitalWrite(b[i],a[7][i]);
}
}
if(income=='8')
{
for(int i=-1;i<8;i++)
{
digitalWrite(b[i],a[8][i]);
}
}
if(income=='9')
{
for(int i=-1;i<8;i++)
{
digitalWrite(b[i],a[9][i]);
}
}
}
}
親測可用!
點贊拿走不謝,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/237723.html
標籤:其他
