如要加入這場視訊會議,請按一下這個連結:https://meet.google.com/pjm-kyux-osf
Arduino 下載網址 https://www.arduino.cc/en/software
電路版線路 https://www.tinkercad.com/things/dURcHya6Rad
郭老師電子郵件 kuoderan2013@gmail.com 標題請用【壽豐國中同學發問】為開頭。
在這個課程裡,我們將用3個星期6個小時會學習使用單晶片微電腦(Arduino UNO)的基礎控制。
課程目標如下:
1. 學會使用Arduino IDE 文字程式編輯器
2. 學會使用Arduino UNO的數位輸入輸出指令。
3. 學會使用Arduino UNO的類比輸入指令。
4. 學會使用Arduino UNO的模擬類比PWM輸出指令。
5. 學會使用Arduino UNO的音階控制指令。
學會結合科技與藝術呈現作品特色。
課程安排:三次課程總計6小時,可以採用遠端進行。
教具:
1. Arduino UNO控制板一片。
2. 已焊接完成的任務電路板一片,並且已經安裝在Arduino UNO 控制板上面。
3. USB連接線一條。
軟體:
測試:
1. 使用USB將電腦與Arduino UNO板連接。
2. 藍色燈亮起,偵測最大與最小的亮度值,請讓光敏電阻以手指遮住又放開。程式會用0.1秒的間隔時間來偵測亮度差距,為時約2秒。
3. 綠色燈亮起,偵測最大與最小的亮度值,請讓光敏電阻以手指遮住又放開。程式會用0.1秒的間隔時間來偵測亮度差距,為時約1秒。
4. 紅色燈亮起,偵測最大與最小的亮度值,請讓光敏電阻以手指遮住又放開。程式會用0.1秒的間隔時間來偵測亮度差距,為時約1秒。
5. 接下來分別是三色LED以紅、綠、藍三色輪流逐漸亮滅。
6. 蜂鳴器發出聲音。又回到上一個循環。
如果遮住光敏電阻則閃爍LED會開始閃爍,直到方開手指。
第一個程式-漸變亮度LED
1.開啟【Arduino 整合程式編輯器】
2.請再次確認
【開發板】選擇 Arduino UNO
【序列埠】選擇COMX,X不可以是COM1或2
1. 在選單打開【檔案】【範例】【內建範例】【01.Basics】【Fade】
2. 將int led = 9; 改成 int led = 3;
3. 按下圖示列第2個符號【向左箭頭】
4. 觀察Arduino UNO板子上是否有一個_____色LED在閃爍
結果:o成功 o不成功
第二個程式
1. 修正程式裡的int led =?
自己嘗試:
結果:_____色LED發光o成功 o不成功
結果:_____色LED發光o成功 o不成功
結果:_____色LED發光o成功 o不成功
第三個程式
1. 在選單打開【檔案】【範例】【內建範例】【05.Control】【Ifstatement】
這個程式可以變成一個小夜燈程式,試著改改看。
在下課前,請將【test_LED】程式開啟,並且下載至Arduino UNO控制板中。
USB 接頭的分別
請問何者是USB-A?
請問何者是USB-B?
這是光敏電阻,請問在電路板何處可以發現它?
用途:
光敏電阻是利用光電導效應的一種特殊的電阻,它的電阻和入射光的強弱有直接關係。光強度增加,則電阻減小;光強度減小,則電阻增大。
特徵:有四隻接腳,一隻連接電源(依照特性有的接正電、有的接負電),另外三隻腳分別控制紅綠藍三種顏色的光線產生。
1.開啟【Arduino 整合程式編輯器】
2.在選單打開【工具】
【開發板】選擇 Arduino UNO
【序列埠】選擇COMX,X不可以是COM1或2
1. 在選單打開【檔案】【範例】【內建範例】【01.Basics】【Blink】
2. 按下圖示列第2個符號【向左箭頭】
3. 觀察Arduino UNO板子上是否有一個橘色LED在閃爍
結果:o成功 o不成功
1. 將程式裡的 【LED_BUILTIN】全部換成數字【3】
2. 觀察是否為 紅色LED 在發光?
結果:o成功 o不成功
自己嘗試:
l 將程式裡的 【3】全部換成數字【5】
結果:LED發光o成功 o不成功,顏色為:
l 將程式裡的 【5】全部換成數字【6】
結果:LED發光o成功 o不成功,顏色為:
l 將程式裡的 【6】全部換成數字【7】
結果:LED發光o成功 o不成功,顏色為:
在下課前,請將【test_LED】程式開啟,並且下載至Arduino UNO控制板中。
1. 每一行命令後面要加分號;
2. 括號要成對出現,( )、{ }
3. 程式架構
void setup() {
// 在這裡的命令將只被執行一次:
}
void loop() {
//在這裡的命令將被一直執行下去:
}
4. pinMode (LED_BUILTIN, OUTPUT);
5. digitalWrite(LED_BUILTIN, HIGH);
6. delay(1000);