【 Arduino 指令】: Arduino常用指令_01

Document
以下先介紹幾個Arduino最基本的使用指令,這些指令是在開發功能時會常常用到的,學會這先指令就像是學英文要先學會單字才能會句子的感覺。所以一定要記熟。 當然說明指令之前,先了解Arduino程式的基本結構, 先了解程式是依照怎樣的邏輯去跑,寫起來也才知道要如何設計

#程式架構

打開Arduino的IDE會先看到他給了你2個部分分別是1.void setup() 2.void loop(){}

看到的畫面如下:

void setup(){}

寫在void setup裡面的東西基本上是要做一次性的設定用的。例如要設定某一個腳位要做為輸出或是輸入,或是設定某個腳位的初始直為LOW等等,這些動作在Arduino開機的時候我們只需要他做一次設定,當設定好後就可以依照這樣的環境設定去執行我們要他去跑的程式(而這些程式就是在void loop裡面的程式)。

void loop(){}

寫在裡面的程式是要Arduino一直去執行的,基本上這邊放的會是你真正要執行的功能,所以你會讓Arduino一直去執行。 簡單說,如果你要做出一個功能是按一個鈕可以讓LED閃5秒,這時按鈕後讓LED閃爍這件事情因為需要被一直重複執行(每次按鈕都要閃LED),所以會寫在void loop裡,而設定哪一個腳位要輸出電壓給LED這樣的設定就只需要一開始設定好就可以,所以會寫在void setup

#基本指令

pinMode()

pinMode(腳位,INPUT/OUTPUT);
這個指令就是在告訴Arduino某一個腳位要做輸出或是輸入使用。例如你要藉由D3這個腳位提供5V特的電壓給LED讓LED發光,那麼你就要告訴Arduino說D3這個腳位是要輸出5V的電壓給某個元件。反之,如果某個腳位是要讀取某個訊號,那你也要告訴他某個腳位是要接受訊號用的。所以這個指令會有2個參數,一個參數就是要告訴Arduino我現在要使用哪個腳位,另一個參數就是說明這個腳位要做輸出或是輸入的功能。

digitalWrite()

digitalWrite(腳位,HIGH/LOW);
當我們設定好哪一隻腳要做輸出或輸入後,我們必須告訴Arduino什麼時候要去執行輸出這件事,什麼時候不要做。在適當的時間輸出或關閉5V的電壓 要控制開啟或是關閉的時候,我們就使用digitalWrite();這個指令。這個指令有2個參數,第一個是告知哪個腳位,第二個是說要執行HIGH或是LOW

digitalRead()

digitalRead(腳位);
要知道在某個時間點某一個腳位的輸出是HIGH或是LOW,就要用digitalRead()這個指令。例如將D3設定為INPUT,準備用來接收某個數位訊號,當我們要判斷D3是不是有接收到電壓時,就可以使用digitalRead()這個指令

analogWrite()

analogWrite(腳位,數值);
這個指令的功能就是輸出類比訊號給支援PWM輸出的腳位(以UNO來說就是D3,D5,D6,D9,D10,D11)。 當需要在某個腳位輸出類比訊號的時候,使用這個指令讓他輸出0~255之間的數值(8位元輸出)

analogRead()

analogRead(腳位);
讀出A0-A5腳位的類比輸入訊號。當設定A0-A5的某個腳位是INPUT的時候,會接收類比訊號,我們就會使用這個指令去讀取這個訊號的數值。而UNO板子的腳位是使用10bit的類比轉數位(A/D)方式來呈現訊號,所以數值會介於0-1023之間。

delay()

delay(毫秒);
停止一段時間後繼續跑下面的程式。例如每次回圈間隔3秒,就可以使用delay(3000);這個指令讓程式先停下3秒後繼續往下走。

map()

map(變數,數值1,數值2,數值3,數值4);
這個指令使用時機就像前面說到的,當要輸出一個接受到的類比訊號,就會使用這個指令。 Arduino接收類比訊號的腳位是A0-A5, 而Arduino會將這個接收到的訊號使用10bit的A/D轉換將類比轉成數位訊號,當要使用這些訊號來輸出時,因為Arduino的輸出腳位會是8bit的類比輸出,這時輸出和輸入2邊的訊號範圍不對稱。因為10bit的數位範圍會是2的10次方(0~1023), 而輸出為2的8次方(0~255)。 這時就需要使用map()這個函數把0~1023的訊號對應到0~255去輸出。 因此map()的參數會有4個,第一個是要做轉換的變數,變數1與變數2是原本變數的範圍(例如變數1=0,變數2=1023),變數3與變數4就是要轉換成什麼範圍(例如變數3=0,變數4=255)。 所以map(var,0,1023,0,255)就是把var這個原本範圍是0-1023的變數,改成範圍是0-255的變數做輸出


以上這些是使用頻率非常高的指令,要開發Arduinou 一定會使用的。就請各位熟記下來,當然還有很多基本指令,會陸續整理成不同文章讓各位參考。

留言

這個網誌中的熱門文章

【Arduino相關】 Arduino基礎介紹~ 腳位,PWM輸出,IDE...

【保險 】外幣收付非投資型商品考試隨筆整理~

【單晶片】單晶片/微控制器/MCU 是什麼?