Presentation is loading. Please wait.

Presentation is loading. Please wait.

Arduino Class 1 主講人: 鄧偉華、孫振凱 國家高速網路計算中心.

Similar presentations


Presentation on theme: "Arduino Class 1 主講人: 鄧偉華、孫振凱 國家高速網路計算中心."— Presentation transcript:

1 Arduino Class 1 主講人: 鄧偉華、孫振凱 國家高速網路計算中心

2 Outline 一、Arduino 開發板介紹。 二、感測器介紹。 三、建立開發環境。 四、數位信號輸入、輸出控制。
五、類比信號輸入、輸出控制。 六、透過 UART 與 PC 交換資料。

3 Arduino 開發板介紹 Arduino hardware+ Arduino software + Open Source
platform / forum

4 Arduino 與傳統 MCU 開發差別 傳統開發 Arduino 開發時程 長 短 所需設備 多且貴 便宜(just USB) 語言難度
Debug tool 強大

5 Arduino Starter Kit Price

6 Arduino Duemilanove/UNO Boards
Diecimila Ethernet Boduino Nano LilyPad Mega

7 Arduino Duemilanove/UNO Shields
GSM Ethernet WiFi Motor RS485

8 Arduino Duemilanove / UNO
Digital I / O [0-13] USB SIO [0-1] DC [7-12] [6-20] ATMEGA 328 RESET

9 Arduino Duemilanove/UNO
Analog output [3,5,6,9,10,11] Pin 13 LED TX/RX LED Power LED Analog input [0-5]

10 Arduino 相容板 TX/RX LED 5V Digital 對應腳位 GND Analog 對應腳位

11 Arduino Duemilanove/UNO
Microcontroller ATmega328 Operating Voltage 5V Input Voltage (recommended) 7-12V Input Voltage (limits) V Digital I/O Pins (of which 6 provide PWM output) Analog Input Pins 6 DC Current per I/O Pin mA DC Current for 3.3V Pin 50 mA Flash Memory KB (ATmega168) or 32 KB (ATmega328) of which 0.5 KB used by bootloader SRAM KB (ATmega168) or 2 KB (ATmega328) EEPROM bytes (ATmega168) or 1 KB (ATmega328) Clock Speed 16 MHz

12 感測器介紹 開關:按鍵開關、繼電器、敲擊、傾斜、觸摸。 光電轉換:光敏電組、紅外線、光遮斷、避障、尋線、PIR。
壓電、磁力轉換:壓電元件、麥克風。 氣體偵測元件:CO2/CO 氣體感測器。 溫度轉換:熱敏電組。 位移轉換:3G sensor。 馬達:伺服馬達、步進馬達。 測距:紅外線、超音波

13 建立開發環境 http://arduino.googlecode.com/files/arduino-0022.zip
Step 1:取得 Arduino。 Step 2:下載 Arduino software並解壓縮。 Step 3:插入 USB B-type plug。 Step 4:安裝 FTDI USB driver \arduino-1.0.2\drivers

14 查出 Arduino 使用的 port 「我的電腦」按右鍵,選內容。 選「硬體」標籤。 選「裝置管理員」。

15 查出 Arduino 使用的 port 點開「連接埠(COM 和 LPT)。 尋找「USB Serial Port COMXX」。

16 執行Arduino software 執行arduino.exe。 點兩下

17 選擇你所使用的板子: 「Tools」→「Board」→「Arduino Duemilanvo or Nano w/ ATmega328」

18 選擇你所使用的 Port: 「Tools」→「Serial Port」→「COM7」

19 Arduino software介面 Varify 驗證程式碼 有無錯誤 Serial Monitor 觀察 Serial port
傳輸的資料 Stop 停止驗證或 燒錄程式碼 New 開啟新的程式 Open 開啟舊的程式 Save 將程式存檔 Upload 將程式燒錄至 Arduino

20 Arduino software介面 編輯的檔名 引入的函式庫 程式編輯區 狀態回報 顯示編譯情形 及錯誤訊息

21 第一個程式 讓 PIN 13 的 LED 一閃一閃亮晶晶。

22 載入程式碼 File → Examples → Basics → Blink

23 Verify

24 Upload

25 Uploading Arduino 相容板 TX/RX持續閃爍 Arduino UNO TX/RX持續閃爍

26 Uploading 完成 LED持續閃爍

27 程式解說 只執行一次,初始化 重複執行 int led = 13; // 將LED 腳立設為13 void setup() {
pinMode(led, OUTPUT); // 將 LED 設為 OUTPUT } void loop() { digitalWrite(led, HIGH); // 將 LED 輸出 HIGH(5V) delay(1000); // 等待 1000 ms digitalWrite(led, LOW); // 將 LED 輸出 LOW(0V) 只執行一次,初始化 重複執行

28 麵包板介紹breadboard

29 數位信號介紹(Digital Signal)

30 數位信號輸入、輸出控制 pinMode(pin, mode) digitalWrite(pin, value)
digitalRead(pin)

31 數位信號輸(出)入 pinMode(pin, mode):設定 pin 腳的數位輸出mode 為(OUTPUT) 或數位輸入(INPUT)。
Example: pinMode(2, OUTPUT); pinMode(4, INPUT);

32 數位信號輸(出)入 digitalWrite(pin, value):設定 pin 腳的 value為 HIGH 或 LOW。
Example: digitalWrite(2, HIGH); digitalWrite(4, LOW);

33 數位信號輸(出)入-練習1 一、點亮1顆 LED,1秒後關閉。 ●、○ 二、點亮5顆 LED,1秒後關閉。 ●●●●●、○○○○○
三、讓七段顯示器顯示一個數字。

34 數位信號輸(出)入-練習1 一、材料:使用 LED 及 300歐姆電阻。 二、材料:使用 LED組 及排阻。

35 數位信號輸(出)入-練習2 用最少的指令寫出霹靂車前面的掃描燈。 ●●○○○○、○●●○○○、○○●●○○、○○○●●○、
○○○○●●、○○○●●○、○○●●○○、○●●○○○、 ●●○○○○

36 數位信號輸(出)入-練習2 一、材料:使用 LED 及 300歐姆電阻。 二、材料:使用 8組LED 及排阻。

37 數位信號輸(出)入 digitalRead(pin):讀取 pin 腳的 value為 HIGH 或 LOW。 Example:
int val = digitalRead(2);

38 數位信號輸(出)入-練習3 一、使用按鍵開關,按一下點亮 LED,再按一下關 閉 LED。
二、使用按鍵開關,使七段顯示器輪流顯示0~9位 數。 三、使用指撥開關,讀取開關的狀態,並將結果顯 示在對應的 LED。 四、使用指撥開關,使七段顯示器顯示對應數字。

39 數位信號輸(出)入-練習3 一、材料:使用 LED 及 300歐姆電阻。 二、材料:使用 8組LED 及排阻。

40 類比訊號介紹(Analog Signal)

41 類比信號輸入、輸出控制 analogWrite(pin, value) int analogRead(pin)

42 類比信號輸(出)入 analogWrite(pin, value):設定 pin(3,5,6,9,10,11) 腳的 value為 0 ~255。 Example: analogWrite(3, 100); analogWrite(4, 200);

43 類比信號輸(出)入-練習1 一、使用 LED 顯示紅、綠、藍。 二、使用 LED 顯示出彩虹的彩色。

44 類比信號輸(出)入-練習1 一、材料:使用 RGB LED 。

45 類比信號輸(出)入 AnalogRead( pin ):設取 analog pin(0,1,2,3,4,5) 腳的電壓值(0~ 5V),並回傳整數值(0~1024) Example: analogRead(0); 0V 5V 讀取電壓 1024 回傳值

46 類比信號輸(出)入-練習2 一、讀取溫度感測器的數值,並以10顆LED表示讀取的值 ,精度為100。
二、分別設取X-Y軸搖桿類比資料,並以10顆LED表示讀 取的值,精度為100。 三、使用光敏電阻讀取亮度。 Led 顆數 代表數值 6 501~600 1 0~100 7 601~700 2 101~200 8 701~800 3 201~300 9 801~900 4 301~400 10 901~1023 5 401~500

47 類比信號輸(出)入-練習2 一、材料:使用溫度感測器 。 二、材料:使用X-Y軸搖捍、LED。 三、材料:光敏電阻、15K歐姆電阻。

48 透過 UART 與 PC 交換資料 UART

49 透過 UART 與 PC 傳送資料 void setup() { Serial.begin(9600); // 設定鮑率為9600 }
void loop() Serial.println( analogRead(0) );// 將 analog pin 0 傳至 PC delay(200);

50 讀取 Serial port 資料 設定 Serial port Baud rate

51 透過 UART 接收資料 int led = 13; int val; void setup() {
Serial.begin(9600); // 設定鮑率為9600 } void loop() if (Serial.available() ) // 如果 UART 有資料? val = Serial.read(); // 讀取 UART 資料 Serial.println(val);

52 透過 UART 送收資料 輸入資料 傳送資料 接收資料

53 透過 UART 接收資料-練習1 一、將按鍵開關狀態傳回PC。 二、將指撥開關狀態傳回PC。 三、將光敏電阻狀態傳回 PC
四、將X-Y軸搖捍狀態傳回PC。

54 透過 UART 接收資料-練習2 一、輸入數字1~8,並點亮相同數量之 LED。
二、輸入數字1~8,並點亮相同數量之 LED組,並使 用File → Examples → Digital → toneMelody及蜂鳴 器發出聲音。 三、輸入數字0~9,並將結果顯示在七段顯示器

55 IR 紅外線傳輸 Infrared transfer: 產生 700nm 以上的紅外線波長。

56 IR 紅外線傳輸 Infrared Receiver:Input 37.5KHz~38.5KHz 紅外線脈衝。 10K Ω SINGL
GND 5V

57 練習產生38KHz 脈衝 byte pin = 12; void setup() { pinMode(pin, OUTPUT); }
void loop() digitalWrite(pin, HIGH); // 填入程式碼 digitalWrite(pin, LOW);

58 練習接收紅外線訊號 提示:Infrared Receiver 會將收到的紅外線轉為數 位訊號由 single 傳回。

59 練習 如何使用現有的東西控制 LED 開關。 透過 Arduino 本身的 I/O pin。 透過 PC 控制。

60 透過 Xbee 傳送資料 透過 UART 傳輸 XBee GND 5V OUT IN XBee GND 5V OUT IN USB

61 Reference


Download ppt "Arduino Class 1 主講人: 鄧偉華、孫振凱 國家高速網路計算中心."

Similar presentations


Ads by Google