2019年1月6日 星期日

Arduino的快速使用說明

市面上已經有太多書了,我自己買了不下五本,也看了很多網站,但每次要開始寫的時候又要重新看,所以在理解之後以自己的方式整理,重新再看的時候比較快進入狀況。

在連結Arduino之後,電腦有可能無法正確認識到,因為驅動程式不正確

有一個可能性是使用了CH340C的晶片,安裝正確的驅動程式安裝就可以指派一個COM
這個COM號碼就是要在編輯Arduino程式的時候使用的。

電腦可以認識Arduino之後,就要連接Arduino來使用了。
我們要去Arduino的網站下載軟體來安裝,
https://www.arduino.cc/

WIN10的話,要用APP的版本,才有反應
打開程式後,設定好開發版,處理器,序列埠



arduino的程式,是分成兩個區塊來設定
第一塊是對於arduino板子的設定,比如哪個接腳是輸入,哪個接腳是輸出
void setup() //初始化變數,設定接腳模式
{
}

第二個區塊是要執行的程式碼

void loop()
{
}

底下的例子是將接腳13設定成輸出訊號的模式,相對的,也會有輸入的模式,比如使用sensor來接收數據的時候。
第一區塊就是
void setup() {
pinMode(13, OUTPUT);
}

在上面設定好哪個接腳要做輸出之後,再來第二個是動作,比如要輸出開或關,延遲多久,
底下的例子是,開0.001秒之後,關1秒,再開1秒,再關0.001秒
所以,第二區塊就是
void loop() {
digitalWrite(13, HIGH);
delay(1);
digitalWrite(13, LOW);
delay(1000);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1);
}


上面是設定單一接腳的時候,如果要接一個以上,追加就可以,底下是個例子,不過
void setup() {
pinMode(13, OUTPUT);
pinMode(10, OUTPUT);
}

有幾個接腳須注意,13是接到內部的一個LED,所以上面的程式會讓板子上的LED亮,另外,有幾個接腳也跟內部相連,比如D0跟D1,是跟RX跟TX相連,這兩個接腳就不建議使用,A0至A5分別可視為D14至D19


更進一步,在設定板子之前,是可以先宣告變數跟各種條件
這種在設定需要控制多個接腳以及多種狀態時,非常好用

設定全域變數
const int led[ ]={3,9,10,11}; //宣告一個一維陣列,它是一個不能變動的常數,其型態是int,
int varNums; //宣告一個int型態的變數,用來指定有幾種模式
int ledNums; //宣告一個int型態的變數,用來指定各個模式下各led的亮度
const int brightness[7] [4] = //宣告一個二維陣列,有7列(模式),每一列有4個值(led的亮度),
{ {250,0,0,0}, //第一種模式
{100,250,0,0}, //第二種模式
{50,100,250,0}, //第三種模式
{5,50,100,250}, //第四種模式
{0,5,50,100}, //第五種模式
{0,0,5,50}, //第六種模式
{0,0,0,5}, //第七種模式
};


然後在要執行的程式碼裡面,加上這些模式


void loop()
{
 for (varNums=0; varNums<7; varNums++) //從第一種亮燈模式開始,在小於7次之前,每次加一
{
for (ledNums=0;ledNums<4;ledNums++) //從第一個接腳開始,在小於4次之前,每次加一
analogwrite(led[ledNums],brightness[varNums][ledNums]);
//將每個模式下的每個接腳的led狀態讀過一次並輸出
delay(100); //延遲0.1秒
}
}

也可以把另外寫好的函式庫功能給放進來,這些函式庫先寫在某個檔案裏面是,
副檔名是h,比如說****.h,然後在arduino的程式碼一開頭的地方,寫上#include <****.h>就可以了