請參考家豪教學網 1. led 基本控制模式 2. 矩陣 LED 控制 外觀: 接腳圖 範例一: 請用三用電表,讓左上角第一列第一行 led 發亮。 方法:(使用美規電表(紅棒+)) 1. 將 8x8 led 任意方向,找出 R1、C1。 2. 紅棒接 R1,黑棒接 C1。 3. 若不發亮,將 8x8led 轉 180 度,重新認定 R1、C1,並重複步驟 2。 範例二: 利用 esp32 控制 8x8 led,使得 列2行3、列5行7、列8行2 發亮。 電子電路圖 元件電路圖 演算法:(使用正邏輯) 1. 輸出高電位至 R2,低電位至 C3 2. 休息 0.01 秒。(1/24 約為 0.041秒) 3. 輸出低電位至 R2,高電位至 C3 4. 輸出高電位至 R5,低電位至 C7 5. 休息 0.01 秒。 6. 輸出低電位至 R5,高電位至 C7 7. 輸出高電位至 R8,低電位至 C2 8. 休息 0.01 秒。 9. 輸出低電位至 R8,高電位至 C2 10. 重複步驟 1 程式碼: const char N = 8; const int led[2][N]={{19,18,5,17,16,4,2,15},{13,12,14,27,26,25,33,32}};//led[0]為 R, led[1]為 C void setup() { int i,j; for(i=0;i<2;i++) for(j=0;j<N;j++) pinMode(led[i][j], OUTPUT); for(i=0;i<N;i++) digitalWrite(led[0][i],LOW); for(i=0;i<N;i++) digitalWrite(led[1][i],HIGH);//全滅 } void loop() { digitalWrite(led[0][1], HIGH);//列 2 digitalWrite(led[1][2], LOW);//行 3 順偏亮 delay(10); digitalWrite(led[0][1], LOW);//列 2 digitalWrite(led[1][2], HIGH);//行 3 逆偏滅 digitalWrite(led[0][4], HIGH);//列 5 digitalWrite(led[1][6], LOW);//行 7 delay(10); digitalWrite(led[0][4], LOW);//列 5 digitalWrite(led[1][6], HIGH);//行 7 digitalWrite(led[0][7], HIGH);//列 8 digitalWrite(led[1][1], LOW);//行 2 delay(10); digitalWrite(led[0][7], LOW);//列 8 digitalWrite(led[1][1], HIGH);//行 2 } |