請複習前面單元 雙點控制 LED 方法。 如上圖,紅色線給予高電位,藍色線給予低電位,則對應的 LED 會亮。 程式碼如下: void setup() { for (int i = 2; i<=5; i++) pinMode(i, OUTPUT); for (int i = 8; i<=11; i++) pinMode(i, OUTPUT); for (int i = 8; i<=11; i++) digitalWrite(i, LOW); digitalWrite(8, HIGH); //紅色線 for (int i = 2; i<=5; i++) digitalWrite(i, HIGH); digitalWrite(3, LOW); //藍色線 } void loop() { } 若一排要一次顯示數顆如下圖:(程式碼如下) Tinker Cad 的圖形 void setup() { for (int i = 2; i<=5; i++) pinMode(i, OUTPUT); for (int i = 8; i<=11; i++) pinMode(i, OUTPUT); for (int i = 8; i<=11; i++) digitalWrite(i, LOW); digitalWrite(8, HIGH); //紅色線 for (int i = 2; i<=5; i++) digitalWrite(i, HIGH); digitalWrite(3, LOW); //藍色線 digitalWrite(5, LOW); //藍色線 } void loop() { } 若要控制整面的燈,則需要一排一排控制(稱為掃描),利用視覺暫留,產生整面結果。
同樣的亮燈,另一種寫法: void setup() { //同上 } void loop() { //使用迴圈控制 1 至 4 行 for(int j=8; j<=11; j++){ for (int i = 8; i<=11; i++) digitalWrite(i, 0); digitalWrite(j, HIGH); //橙色線 for (int i = 2; i<=5; i++) digitalWrite(i, 1); switch(j){ case 8://灰色線 digitalWrite(4, LOW);break; case 9://灰色線 digitalWrite(5, LOW); digitalWrite(3, LOW);break; case 10://灰色線 digitalWrite(4, LOW);break; } delay(10); } } 同樣的亮燈,比較常用(標準)用法:(業界使用方式)
| ||||||