# Arduino筆記-1 ## 學習內容 1. 認識Arduino 2. Arduino IDE介紹 3. 練習Arduino基本語法(輸入、輸出、延遲、函式庫) ## 認識Arduino IDE Arduino 是一塊可以連結感測器和其他配件(例如:LED、伺服馬達)的多功能開發板, 可以搭配網路製作物聯網的功能,也可以做一些創意小玩具。 詳細教學[🔗](https://drive.google.com/file/d/1UZwBhvtnEVEHM6ueaplIFm97y0eW6jM1/view) ## IDE介紹 Arduino官方有推出自己的IDE,可以點選此[連結](https://www.arduino.cc/en/software)進行下載 ![Arduino IDE ](https://hackmd.io/_uploads/HkLgDP0IR.png) 也可以使用線上版,不過還是要安裝[ Arduino Create Agent](https://cloud.arduino.cc/download-agent/) 安裝完成後將Arduino IDE開啟並連結你的開發板到電腦 點選左上角的"選擇開發板"連接你的開發板 ![連結開發板](https://hackmd.io/_uploads/SydOPDRUR.png) 如果沒有看見你的開發版, 可以到[CH340驅動](https://sparks.gogo.co.nz/ch340.html)或是[FTDI 驅動](https://ftdichip.com/drivers/vcp-drivers/)尋找你的驅動並安裝 ### 內建LED閃爍測試 接著進行上傳測試,將原有程式碼替換以下程式碼 ```ino= void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW); delay(500); } ``` 接著按下第一顆按鈕進行編譯 ![編譯](https://hackmd.io/_uploads/HyTRFP0UC.png) 再來按下第二顆按鈕上傳編譯後的程式到開發板 ![上傳](https://hackmd.io/_uploads/BkMzqvRLA.png) 如果內建LED向下圖一樣閃爍,代表開發板連接成功且正常 ![內建燈泡閃爍](https://hackmd.io/_uploads/rJjY1_0UC.gif) ## 練習Arduino基本語法(輸入、輸出、函式庫) Arduino使用的程式語言非常類似C++, 但是在輸入和輸出的地方有些差異, 接下來我們來學習一下Arduino專用的程式語言吧! ### 腳位介紹 在學習基本語法之前要先來了解開發板的腳位 將電源放置於左方, 在上方的一排腳位是屬於數位腳位, 右下角的腳位是類比輸入腳位(注意!沒有類比輸出,只有數位模擬類比輸出), 而在類比輸入腳位左邊的則是電源(正極)和接地(負極) 部分要使用PWM (脈衝寬度調變)例如伺服馬達, 所以必須將腳位連接在3、5、6、9、10、11接腳(數字前方有標記 ~ 符號的腳位) ### 輸入 要讀取輸入內容只要先在序列埠輸入資料 接著按照你要讀取的資料型態, 選擇它的讀取方式。 以下是一個讀取序列埠字串的範例: ```ino= void setup() { Serial.begin(9600); } void loop() { if (Serial.available()) { // 檢查序列埠是否有資料可供讀取 String str = Serial.readString(); Serial.println(str); } } ``` #### 讀取字元: 如果要讀取一個字串, 可以使用 Serial.readString() 函式。 ```ino= char ch = Serial.read(); Serial.println(ch); ``` #### 讀取字串: 如果要讀取一個字串, 可以使用 Serial.readString() 函式。 ```ino= String str = Serial.readString(); Serial.println(str); ``` #### 讀取整數: 如果要讀取一個整數, 可以使用 Serial.parseInt() 函式。 ```ino= int num = Serial.parseInt(); Serial.println(num); ``` #### 讀取浮點數: 如果要讀取一個浮點數, 可以使用 Serial.parseFloat() 函式。 ```ino= float f = Serial.parseFloat(); Serial.println(f); ``` ### 輸出 在 Arduino 中, 輸出分為換行輸出與不換行輸出 可以使用`Serial.print()`函式進行輸出。 如果要在輸出字串的結尾添加換行符號, 可以呼叫`Serial.println()`函式。 例如: ```ino= Serial.print("Hello, world!"); // 不換行輸出 Serial.println("Hello, world!"); // 換行輸出 ``` ### 延遲 Delay 為延遲指令, 時間以毫秒(0.001 秒)為單位。 `delay(500)` 表示延遲 0.5 秒。 `delay(1000)` 表示延遲 1 秒。 ### 函式庫 Arduino 函式庫是預先編寫好的程式碼,可以提供特定功能。 例如,可以使用 Servo 函式庫控制伺服馬達,使用 Wire 函式庫進行通訊。 要使用函式庫,首先需要將其安裝到 Arduino IDE 中。安裝方法如下: 在 Arduino IDE 中,點選 工具 > 管理庫 在搜尋欄中輸入函式庫的名稱 > 點選 安裝 安裝函式庫後,就可以在程式中使用該函式庫的功能了。 例如,要使用 Servo 函式庫控制伺服馬達,可以先包含該函式庫的標頭檔: ```ino= #include <Servo.h> ``` 然後,就可以在程式中使用 Servo 函式庫來控制伺服馬達: