麵包版(免焊電路板)請放置在桌面上使用,
(懸空插麵包板使用時 金屬彈片因雙面膠支撐較低而發生掉落,進而產生故障)。
發光二極體(英語:light-emitting diode,LED)[1]是一種半導體光源,當電流通過它時會發光;即一種電致發光的半導體電子元件,其內電子與電子空穴複合,以光子的形式釋放能量。
發光二極體結構的核心部分是p-n結,周邊部分有環氧樹脂密封其引線與框架以保護內部芯線。當p-n結通以正向電流時,能發射可見或非可見輻射,此輻射為透過三價與五價元素所組成複合光源。
發光二極體只能夠往一個方向導通(通電),叫作正向偏置;當電流流過時,電子與電洞(電子空穴)在其內複合而發出單色光,這叫「電致發光效應」;而光線的波長、顏色跟其所採用的半導體物料種類與故意摻入的元素雜質有關。發光二極體具有效率高、壽命長、不易破損、反應速度快、可靠性高等傳統光源不及的優點。
發光二極體於1962年出現時,只能發出低光度的紅光,被惠普買下專利後當作指示燈利用。其後發展出其他單色光的版本,時至今日,能夠發出的光已經遍及可見光、紅外線及紫外線,光度亦提高到相當高的程度。隨著白光發光二極體的出現,用途已由初期的指示燈及顯示板等指示用途,逐漸發展至近年的照明用途。白光LED的發光效率近期亦有所進步,其每千流明成本,因大量資金投入已使價格下降,近年在照明用途上愈趨普及。
LED 的電路符號,
LED的長腳為正極、短腳為負極
要推動LED就要控制流過LED的電流,基本推動方法就是將LED跟電阻串聯,以電阻限制電流在一定的範圍內。這個方法好處是簡單、成本低,但缺點是不少能量在電阻轉化為熱能而浪費掉,而且LED的光度也隨著溫度、電壓、LED生產時的特性差異而有比較大的變化。
以當多於一枚LED時,最好使用串聯接法,這可使不同的LED都有相同的電流,總順向偏壓在串聯時就等於各LED順向偏壓的總和。LED順向偏壓的總和越接近電源電壓,電流就越不穩定。如果LED的數目多至其所需總順向偏壓接近或高於電源電壓,那就需用多個限流電阻分別對個別LED串作電流控制。
把LED並聯非不可行,一般都盡量避免,因為生產過程做成的特性差異會使每枚LED的順向偏壓有輕微的分別,但並聯時各LED的順向偏壓一樣,流經各LED的電流就會有差異而導致光度、壽命不一致,所以需要把LED作特性配對才能保持光度接近,對零件供應、成本等造成壓力。
LED 為發光二極體,將其排列10個LED排列成LED bar。(有印刷字體為正極)
排組:本次使用10個220歐電阻,最左腳為公用腳(有標記 ● )。
七段顯示的顯示 設定(數位邏輯 解碼器設計) ,以共陽極為例(因七段顯示器設計解碼器時會有BCD碼對應輸入,請省略)
共陽極七段顯示器,要點亮的部份給0=LOW 低電位。
動作分析表 如0~9顯示的LED編號位置與顯示關係。
LED bar與ESP32接線 <檔案位置>
LED bar與ESP32的腳位使用係因使用fritzing繪圖,11腳排組為繪出。
1 棕 >> 32
2 紅 >> 33
3 橙 >> 25
4 黃 >> 26
5 綠 >> 27
6 藍 >> 14
7 紫 >> 04
8 灰 >> 16
9 白 >> 17
0 黑 >> 05
排組共同腳接正極法,LED 負極接0亮。
LED bar的顯示設計(來回閃爍)
LED bar顯示的顯示 設定
由於排組共同腳接+3.3V,要點亮的LED部份給0=LOW 低電位。
動作分析表 如0~9顯示的LED編號位置與顯示關係。
LED Bar顯示控制 與 程式 {簡單程式 直述方式}
// 點亮 1~10~9~1來回循環 //a1031b.ion
#define t 200
#define LED0 32
#define LED1 33
#define LED2 25
#define LED3 26
#define LED4 27
#define LED5 14
#define LED6 04
#define LED7 16
#define LED8 17
#define LED9 05
void setup() {
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED7, OUTPUT);
pinMode(LED8, OUTPUT);
pinMode(LED9, OUTPUT);
}
void loop() {
/*
// LED0 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
*/
// LED0 亮
digitalWrite(LED0, 0);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED1 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, 0);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED2 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, 0);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED3 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, 0);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED4 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, 0);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED5 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, 0);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED6 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, 0);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED7 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, 0);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED8 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, 0);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED9 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, 0);
delay(t); // wait for a second
// 回程LED8 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, 0);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED7 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, 0);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED6 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, 0);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED5 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, 0);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED4 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, 0);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED3 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, 0);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED2 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, 0);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED1 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, 0);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
}
// 點亮 1~10~9~1來回循環 //a0327a.ino
#define t 300
#define LED0 32
#define LED1 33
#define LED2 25
#define LED3 26
#define LED4 27
#define LED5 14
#define LED6 04
#define LED7 16
#define LED8 17
#define LED9 05
void setup() {
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED7, OUTPUT);
pinMode(LED8, OUTPUT);
pinMode(LED9, OUTPUT);
}
void loop() {
/*
// LED0 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
*/
// LED0 亮
digitalWrite(LED0, 0);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED1 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, 0);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED2 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, 0);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED3 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, 0);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED4 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, 0);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED5 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, 0);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED6 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, 0);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED7 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, 0);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED8 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, 0);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED9 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, 0);
delay(t); // wait for a second
// 回程LED8 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, 0);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED7 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, 0);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED6 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, 0);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED5 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, 0);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED4 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, 0);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED3 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, 0);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED2 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, 0);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
// LED1 亮
digitalWrite(LED0, HIGH);
digitalWrite(LED1, 0);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED9, HIGH);
delay(t); // wait for a second
}
// LED Bar來回顯示 a0327b.ino
// LED bar 序 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
char LedBarpin[]={32,33,25,26,27,14,04,16,17,05};
void setup() {
for(int i=0;i<10;i++){
pinMode(LedBarpin[i], OUTPUT);
digitalWrite(LedBarpin[i], 0);
}
delay(2000);//設定LED bar全亮2秒 檢查是否LED bar其中的LED是否有故障
for(int i=0;i<10;i++)
digitalWrite(LedBarpin[i], 1); //關閉LED bar的顯示
}
void loop() {
for (int i = 0; i <=9; i++) { //順序點亮0~9
digitalWrite(LedBarpin[i], 0);
delay(100);
digitalWrite(LedBarpin[i], 1);
}
for (int i = 8; i>=1; i--) { //順序點亮8~1
digitalWrite(LedBarpin[i], 0);
delay(100);
digitalWrite(LedBarpin[i], 1);
}
// delay(4000);// 暫停 4 秒鐘
}
// LED Bar來回顯示 使用狀態表執行 (v2)//a0327c.ino
// LED bar 序 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
char LedBarpin[]={32,33,25,26,27,14,04,16,17,05};
// LED bar 序 0,1,2,3,4,5,6,7,8,9
char seven_seg_digits[][10] = {
{ 1,0,0,0,0,0,0,0,0,0 }, // = 0>>00
{ 0,1,0,0,0,0,0,0,0,0 }, // = 1>>01
{ 0,0,1,0,0,0,0,0,0,0 }, // = 2>>02
{ 0,0,0,1,0,0,0,0,0,0 }, // = 3>>03
{ 0,0,0,0,1,0,0,0,0,0 }, // = 4>>04
{ 0,0,0,0,0,1,0,0,0,0 }, // = 5>>05
{ 0,0,0,0,0,0,1,0,0,0 }, // = 6>>06
{ 0,0,0,0,0,0,0,1,0,0 }, // = 7>>07
{ 0,0,0,0,0,0,0,0,1,0 }, // = 8>>08
{ 0,0,0,0,0,0,0,0,0,1 }, // = 9>>09
{ 0,0,0,0,0,0,0,0,1,0 }, // = 8>>10
{ 0,0,0,0,0,0,0,1,0,0 }, // = 7>>11
{ 0,0,0,0,0,0,1,0,0,0 }, // = 6>>12
{ 0,0,0,0,0,1,0,0,0,0 }, // = 5>>13
{ 0,0,0,0,1,0,0,0,0,0 }, // = 4>>14
{ 0,0,0,1,0,0,0,0,0,0 }, // = 3>>15
{ 0,0,1,0,0,0,0,0,0,0 }, // = 2>>16
{ 0,1,0,0,0,0,0,0,0,0 } // = 1>>17
};
// 執行LED的狀態設定 的函數程式
void sevenSegWrite(int digit) {
for (int seg = 0; seg <10; ++seg)
digitalWrite(LedBarpin[seg],!seven_seg_digits[digit][seg]); // digitalWrite(LedBarpin[seg],!seven_seg_digits[digit][seg]);
}
void setup() {
for(int i=0;i<10;i++){
pinMode(LedBarpin[i], OUTPUT);
digitalWrite(LedBarpin[i], 0);
}
delay(2000);//設定LED bar全亮2秒 檢查是否LED bar其中的LED是否有故障
for(int i=0;i<10;i++)
digitalWrite(LedBarpin[i], 1); //關閉LED bar的顯示
}
void loop() {
for (int digit = 0; digit <=17; digit++) {
delay(300);
sevenSegWrite(digit - 0);
}
// delay(4000);// 暫停 4 秒鐘
}
使用陣列與迴圈的目的
建立顯示陣列值>>直接透過迴圈建立七段顯示器查表法>>顯示對應的結果,如有需修正顯示狀態直接修正內容即可。
建立 七段顯示器使用的函數>>未來使用時只需要呼叫 "sevenSegWrite(顯示);"
}
// LED Bar來回顯示 使用狀態表執行 (v2)//a0327d.ino
// LED bar 序 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
char LedBarpin[]={32,33,25,26,27,14,04,16,17,05};
// LED bar 序 0,1,2,3,4,5,6,7,8,9
char seven_seg_digits[][10] = {
{ 1,1,0,0,0,0,0,0,0,0 }, // = 0>>00
{ 0,1,1,0,0,0,0,0,0,0 }, // = 1>>01
{ 0,0,1,1,0,0,0,0,0,0 }, // = 2>>02
{ 0,0,0,1,1,0,0,0,0,0 }, // = 3>>03
{ 0,0,0,0,1,1,0,0,0,0 }, // = 4>>04
{ 0,0,0,0,0,1,1,0,0,0 }, // = 5>>05
{ 0,0,0,0,0,0,1,1,0,0 }, // = 6>>06
{ 0,0,0,0,0,0,0,1,1,0 }, // = 7>>07
{ 0,0,0,0,0,0,0,0,1,1 }, // = 8>>08
{ 0,0,0,0,0,0,0,0,0,1 }, // = 9>>09
{ 0,0,0,0,0,0,0,0,1,1 }, // = 8>>10
{ 0,0,0,0,0,0,0,1,1,0 }, // = 7>>11
{ 0,0,0,0,0,0,1,1,0,0 }, // = 6>>12
{ 0,0,0,0,0,1,1,0,0,0 }, // = 5>>13
{ 0,0,0,0,1,1,0,0,0,0 }, // = 4>>14
{ 0,0,0,1,1,0,0,0,0,0 }, // = 3>>15
{ 0,0,1,1,0,0,0,0,0,0 }, // = 2>>16
{ 0,1,1,0,0,0,0,0,0,0 }, // = 1>>17
{ 1,1,0,0,0,0,0,0,0,0 }, // = 1>>18
{ 1,0,0,0,0,0,0,0,0,0 } // = 1>>19
};
// 執行LED的狀態設定 的函數程式
void sevenSegWrite(int digit) {
for (int seg = 0; seg <10; ++seg)
digitalWrite(LedBarpin[seg],!seven_seg_digits[digit][seg]); // digitalWrite(LedBarpin[seg],!seven_seg_digits[digit][seg]);
}
void setup() {
for(int i=0;i<10;i++){
pinMode(LedBarpin[i], OUTPUT);
digitalWrite(LedBarpin[i], 0);
}
delay(2000);//設定LED bar全亮2秒 檢查是否LED bar其中的LED是否有故障
for(int i=0;i<10;i++)
digitalWrite(LedBarpin[i], 1); //關閉LED bar的顯示
}
void loop() {
for (int digit = 0; digit <=18; digit++) {
delay(300);
sevenSegWrite(digit - 0);
}
// delay(4000);// 暫停 4 秒鐘
}