Chang Chi-Chung 國立大里高級中學 Arduino 程式設計教學 Chang Chi-Chung 國立大里高級中學
設計理念 教學活動採取「數位邏輯實驗」課程的概 念設計。 以「實驗單元」組織,共設計 10 個實驗單 元。 評量方式 學習單或者實驗報告 實驗成果評分
學生依據教師說明進行實驗程式設計,並觀察實驗結果 教學策略 說明實驗目標 教師說明實驗目標 實驗成果檢視 學生撰寫實驗單 教師檢視練習成果 實驗電路說明示範 教師說明實驗電路的安排布局 學生進行程式設計 學生依據教師說明進行實驗程式設計,並觀察實驗結果 學生進行電路組合 學生依據教師說明進行實驗電路組合 程式設計教學 教師進行實驗電路的程式觀念講解
實驗教學工具 Arduino 實驗套件 Arduino 程式設計軟體 電子電路圖繪製軟體 http://arduino.cc/ Fritzing http://fritzing.org
示範教學目標 熟悉10段 LED 的使用 了解 for 迴圈的運用 了解鍵盤控制的方式
實驗目標及時間 主目標 (2 小時) 進階目標 (1 小時) 學生挑戰 (1 小時) 利用 Arduino 及 10段 LED 設計一個霓虹燈 10 段 LED 的燈號,可以依序亮燈,反覆播放 進階目標 (1 小時) 利用鍵盤控制燈號 學生挑戰 (1 小時) 改變霓虹燈形式,例如:隨意亮燈、閃爍等 改變鍵盤控制方式
實驗電路圖
程式設計教學(1) void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); } for (int i = 2; i < 12; i++) { pinMode(i, OUTPUT); }
重點概念解說 A B C D for (int i = 2; i < 12; i++) { pinMode(i, OUTPUT); }
程式設計教學(2) 請同學改寫成 for 迴圈喔! void loop() { digitalWrite(2, HIGH); delay(1000); digitalWrite(3, HIGH); delay(1000); digitalWrite(4, HIGH); delay(1000); digitalWrite(5, HIGH); delay(1000); digitalWrite(6, HIGH); delay(1000); digitalWrite(7, HIGH); delay(1000); digitalWrite(8, HIGH); delay(1000); digitalWrite(9, HIGH); delay(1000); digitalWrite(10, HIGH); delay(1000); digitalWrite(11, HIGH); delay(1000); } 請同學改寫成 for 迴圈喔!
挑戰 程式設計教學(2) 目前只能夠依序亮燈,請加入依序熄燈功能。 void loop() { for (int i=2; i< 12; i++) digitalWrite(i, HIGH); delay(1000); } 挑戰 目前只能夠依序亮燈,請加入依序熄燈功能。
作法不只一種喔!想想看,利用 if 敘述如何完成? 程式設計教學(2) void loop() { for (int i=2; i< 12; i++) digitalWrite(i, HIGH); delay(1000); } digitalWrite(i, LOW); 作法不只一種喔!想想看,利用 if 敘述如何完成?
學生概念難點 利用鍵盤控制燈號開關(1) 布林型別是學生首次接觸,有些學生無法理解。 boolean pinState[10]; void setup() { Serial.begin(9600); for (int i = 2; i < 12; i++) { pinMode(i, OUTPUT); pinState[i-2] = false; } } 學生概念難點 布林型別是學生首次接觸,有些學生無法理解。
學生概念難點 利用鍵盤控制燈號開關(2) 字元編碼運算,涉及數位化概念,學生不易理解。 void loop() { if (Serial.available()) { int inByte = Serial.read(); int pin –= 46; if (pinState[pin]) { digitalWrite(i, LOW); pinState[pin] = false; } else { digitalWrite(i, HIGH); pinState[pin] = true; } } } 學生概念難點 字元編碼運算,涉及數位化概念,學生不易理解。
重要概念 變數 布林變數 全域變數 陣列 字元編碼 ASCII 編碼轉數字
學生挑戰題 製作各種形式的霓虹燈效果! 隨意亮燈 randomSeed random 閃爍