// http://coopermaa2nd.blogspot.tw/2010/12/arduino-lab7.html
//http://yehnan.blogspot.tw/2013/08/arduino_26.html (四合一七段顯示器)
#define NUM 7
int pins[NUM] = {D3,D2,D4,D5,D6,D0,D1};
#define t true
#define f false
boolean data[10][NUM] = {
{1,1,1,1,1,1,0}, // 0
{0,1,1,0,0,0,0}, // 1
{1,1,0,1,1,0,1}, // 2
{1,1,1,1,0,0,1}, // 3
{0,1,1,0,0,1,1}, // 4
{1,0,1,1,0,1,1}, // 5
{1,0,1,1,1,1,1}, // 6
{1,1,1,0,0,1,0}, // 7
{1,1,1,1,1,1,1}, // 8
{1,1,1,1,0,1,1}, // 9
};
// 把七段顯示器的顯示函式獨立出來。
// 輸入數字n(從0到9)
// 根據數字n,就可從data[n]找出七段顯示器的點亮、熄滅資料,
// 然後用迴圈,逐一設定8個腳位的HIGH或LOW,
// 也就等於點亮、熄滅那8個部分
void writeNumber(int n){
for(int i = 0; i < NUM; i++){
digitalWrite(pins[i], data[n][i] == t ? HIGH : LOW);
}
}
void setup(){
for(int i = 0; i < NUM; i++){
pinMode(pins[i], OUTPUT);
}
}
// 寫好writeNumber()後,loop()就簡單了。
// 迴圈從0到9,以七段顯示器顯示該數字,中間延遲1秒。
// 也就是說,會從0數到9,然後再從頭從0開始數。
void loop(){
for(int n = 0; n <= 9; n++){
writeNumber(n);
delay(300);
}
}
沒有留言:
張貼留言