電子學實驗_第26組_實驗八_Arduino 七段顯示器.pdf

12
修課班級:四設二乙 25 實驗八: Arduino 七段顯示器實驗

Transcript of 電子學實驗_第26組_實驗八_Arduino 七段顯示器.pdf

Page 1: 電子學實驗_第26組_實驗八_Arduino 七段顯示器.pdf

修課班級:四設二乙 第 25組

實驗八:

Arduino 七段顯示器實驗

Page 2: 電子學實驗_第26組_實驗八_Arduino 七段顯示器.pdf

修課班級:四設二乙 第 25組

實驗目的:

本次有兩個題目,一是讓七段顯示器產生倒數效果;二是加上按

鈕,按的時候數字不變,不按的時候繼續倒數。

了解程式與電子電路的關係,並透過 I/O來完成這次的實驗。

組員名單:

四設四乙 4992319卓家賢

四設四乙 4992335楊朝欽(組長)

四設四乙 4992350蘇昶安

組員分工:

卓家賢:收集資料、精神支柱

楊朝欽:接電路、並教組員看懂電路圖

蘇昶安:做報告、支援組長

材料表與工具列:

Arduini Uno 1個

Page 3: 電子學實驗_第26組_實驗八_Arduino 七段顯示器.pdf

修課班級:四設二乙 第 25組

220Ω電阻 7個

IC 7447 1個

輕觸開關 1個

Page 4: 電子學實驗_第26組_實驗八_Arduino 七段顯示器.pdf

修課班級:四設二乙 第 25組

實驗步驟:

第一個是直接用電阻連接七段顯示器,及設定輸出腳位

的方式來呈現。

程式碼:

// 七段顯示器製作倒數功能 (v1)

void setup() {

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

pinMode(8, OUTPUT);

}

Page 5: 電子學實驗_第26組_實驗八_Arduino 七段顯示器.pdf

修課班級:四設二乙 第 25組

void loop() {

// 顯示數字 '9'

digitalWrite(2, 0);

digitalWrite(3, 0);

digitalWrite(4, 0);

digitalWrite(5, 1);

digitalWrite(6, 1);

digitalWrite(7, 0);

digitalWrite(8, 0);

delay(1000);

// 顯示數字 '8'

digitalWrite(2, 0);

digitalWrite(3, 0);

digitalWrite(4, 0);

digitalWrite(5, 0);

digitalWrite(6, 0);

digitalWrite(7, 0);

digitalWrite(8, 0);

delay(1000);

// 顯示數字 '7'

digitalWrite(2, 0);

digitalWrite(3, 0);

digitalWrite(4, 0);

digitalWrite(5, 1);

digitalWrite(6, 1);

digitalWrite(7, 1);

digitalWrite(8, 1);

delay(1000);

// 顯示數字 '6'

digitalWrite(2, 0);

digitalWrite(3, 1);

Page 6: 電子學實驗_第26組_實驗八_Arduino 七段顯示器.pdf

修課班級:四設二乙 第 25組

digitalWrite(4, 0);

digitalWrite(5, 0);

digitalWrite(6, 0);

digitalWrite(7, 0);

digitalWrite(8, 0);

delay(1000);

// 顯示數字 '5'

digitalWrite(2, 0);

digitalWrite(3, 1);

digitalWrite(4, 0);

digitalWrite(5, 0);

digitalWrite(6, 1);

digitalWrite(7, 0);

digitalWrite(8, 0);

delay(1000);

// 顯示數字 '4'

digitalWrite(2, 1);

digitalWrite(3, 0);

digitalWrite(4, 0);

digitalWrite(5, 1);

digitalWrite(6, 1);

digitalWrite(7, 0);

digitalWrite(8, 0);

delay(1000);

// 顯示數字 '3'

digitalWrite(2, 0);

digitalWrite(3, 0);

digitalWrite(4, 0);

digitalWrite(5, 0);

digitalWrite(6, 1);

digitalWrite(7, 1);

Page 7: 電子學實驗_第26組_實驗八_Arduino 七段顯示器.pdf

修課班級:四設二乙 第 25組

digitalWrite(8, 0);

delay(1000);

// 顯示數字 '2'

digitalWrite(2, 0);

digitalWrite(3, 0);

digitalWrite(4, 1);

digitalWrite(5, 0);

digitalWrite(6, 0);

digitalWrite(7, 1);

digitalWrite(8, 0);

delay(1000);

// 顯示數字 '1'

digitalWrite(2, 1);

digitalWrite(3, 0);

digitalWrite(4, 0);

digitalWrite(5, 1);

digitalWrite(6, 1);

digitalWrite(7, 1);

digitalWrite(8, 1);

delay(1000);

// 顯示數字 '0'

digitalWrite(2, 0);

digitalWrite(3, 0);

digitalWrite(4, 0);

digitalWrite(5, 0);

digitalWrite(6, 0);

digitalWrite(7, 0);

digitalWrite(8, 1);

// 暫停 4 秒鐘

delay(4000);

}

Page 8: 電子學實驗_第26組_實驗八_Arduino 七段顯示器.pdf

修課班級:四設二乙 第 25組

第二個則是再加上 IC 7447,變成只有 4個輸入,會比較簡潔且

實用。

程式碼:

// 七段顯示器製作倒數功能 (v1)

void setup() {

pinMode(8, OUTPUT);

pinMode(9, OUTPUT);

pinMode(10, OUTPUT);

pinMode(11, OUTPUT);

}

void loop() {

// 顯示數字 '9'

digitalWrite(8, 1);

digitalWrite(9, 0);

digitalWrite(10, 0);

digitalWrite(11, 1);

delay(1000);

// 顯示數字 '8'

Page 9: 電子學實驗_第26組_實驗八_Arduino 七段顯示器.pdf

修課班級:四設二乙 第 25組

digitalWrite(8, 0);

digitalWrite(9, 0);

digitalWrite(10, 0);

digitalWrite(11, 1);

delay(1000);

// 顯示數字 '7'

digitalWrite(8, 1);

digitalWrite(9, 1);

digitalWrite(10, 1);

digitalWrite(11, 0);

delay(1000);

// 顯示數字 '6'

digitalWrite(8, 0);

digitalWrite(9, 1);

digitalWrite(10, 1);

digitalWrite(11, 0);

delay(1000);

// 顯示數字 '5'

digitalWrite(8, 1);

digitalWrite(9, 0);

digitalWrite(10, 1);

digitalWrite(11, 0);

delay(1000);

// 顯示數字 '4'

digitalWrite(8, 0);

digitalWrite(9, 0);

digitalWrite(10, 1);

Page 10: 電子學實驗_第26組_實驗八_Arduino 七段顯示器.pdf

修課班級:四設二乙 第 25組

digitalWrite(11, 0);

delay(1000);

// 顯示數字 '3'

digitalWrite(8, 1);

digitalWrite(9, 1);

digitalWrite(10, 0);

digitalWrite(11, 0);

delay(1000);

// 顯示數字 '2'

digitalWrite(8, 0);

digitalWrite(9, 1);

digitalWrite(10, 0);

digitalWrite(11, 0);

delay(1000);

// 顯示數字 '1'

digitalWrite(8, 1);

digitalWrite(9, 0);

digitalWrite(10, 0);

digitalWrite(11, 0);

delay(1000);

// 顯示數字 '0'

digitalWrite(8, 0);

digitalWrite(9, 0);

digitalWrite(10, 0);

digitalWrite(11, 0);

delay(4000);

}

Page 11: 電子學實驗_第26組_實驗八_Arduino 七段顯示器.pdf

修課班級:四設二乙 第 25組

實驗結果:

如附件 Arduino七段顯示器倒數實驗所示。

小組討論&心得:

這次是利用 Arduino板來做出倒數功能,用程式撰寫的

好處是只要修改程式,就能達到不同的功能,並且用到的電

子零件也比較少,也了解了如何設定 OUTPUT的功能,以及再

加上 7447來簡化其程式。

應用構想:

如果能夠配合蜂鳴器,倒數時能夠產生聲音,並且越接

近 0時響越多次,會更有警示的效果。

Page 12: 電子學實驗_第26組_實驗八_Arduino 七段顯示器.pdf

修課班級:四設二乙 第 25組

參考文獻:

https://www.youtube.com/watch?v=9XFZ8AwCyak

http://coopermaa2nd.blogspot.tw/2011/01/arduino-

lab13-74hc595.html

http://140.130.1.120/teach/index.jsp

http://soundation.blogspot.tw/2012/02/arduino-mini-

bcd-7-segment-display.html

https://www.inkling.com/read/arduino-cookbook-

michael-margolis-2nd/chapter-3/recipe-3-9

http://forum.arduino.cc/index.php/topic,44070.0.html

http://forum.arduino.cc/index.php/topic,43624.0.html

趙英傑(2013)。《超圖解 Arduino互動設計入門》。台灣:

旗標