以下為Arduino Uno板的Start_SevenSegments實驗,使用boolean指令,顯示0到9的數字
需要材料:
Wire: n個
330Ω Resistor: 八個
L-Seven-segment display: 一個
Arduino Uno: 一個
Breadboard: 一個
電路圖(Circuit diagram)
程式碼(Code)
//使用共陰極七段顯示器,也可用於LED排列發光 const int NUM = 8; //也可用#define NUM 8,但不能只打int NUM = 8; //使用到的腳位 int pins[NUM] = {2, 3, 4, 5, 10, 11, 12, 13}; //2為右上 3為上 4為點 5為右下 10為左上 11為中 12為下 13為左下 //代表腳位顯示的位置 #define t true //true等於HIHG,另一種寫法 #define f false //false等於LOW,另一種寫法 boolean data[10][NUM] = { //有十種變化(代表數字0~9),腳位有NUM個(8個輸出) {t, t, f, t, t, f, t, t}, // 顯示的號碼0 {t, f, f, t, f, f, f, f}, // 1 {t, t, f, f, f, t, t, t}, // 2 {t, t, f, t, f, t, t, f}, // 3 {t, f, f, t, t, t, f, f}, // 4 {f, t, f, t, t, t, t, f}, // 5 {f, t, f, t, t, t, t, t}, // 6 {t, t, f, t, t, f, f, f}, // 7 {t, t, f, t, t, t, t, t}, // 8 {t, t, f, t, t, t, t, f}, // 9 }; void setup() { for(int i = 0; i < NUM; i++){ //i大於NUM時結束for迴圈,因i < NUM pinMode(pins[i], OUTPUT); //i為0時pins為2,最多到7(i < NUM),也就是pins = (2~5,10~13) } } void writeNumber(int n){ //建立一個名稱為writeNumber(n)的公式 for(int i = 0; i < NUM; i++){ digitalWrite(pins[i], data[n][i] == t ? HIGH : LOW); //n在下方,data[幾種][輸出]一種內有8個輸出 //這一種的輸出,有t(true)的為HIGH不是為LOW } } void loop() { for(int n = 0; n <= 9; n++){ writeNumber(n); //將建立的writeNumber(n)放到這 delay(1000); } }
參考網站:
Lab7 Seven_Segments:
http://yehnan.blogspot.tw/2012/02/arduinoseven-segment-display.html
參考對象: