Arduino是一種被稱為「開發板」的東西,能夠用來做出各式各樣的裝置。而使用的方法是將「模組」接上去,並輸入程式來控制它,製作自己的玩具。這篇文章後面將會陸續介紹硬體及軟體,最後會用一條傳輸線和一片Arduino來做出一個簡單的專案!
Arduino其實板子不是只有一種,到他們的網站上看,會有大大小小的板子。本文將會使用Arduino UNO來示範。在模擬起來像這樣:
上面有很多看起來相當複雜的東西,接下來會來解釋這些東西的功用:
左上角有個重開機按鈕,按下後可以重新運行一次程式;它底下的銀色大方塊要接上傳輸線,供電和上傳程式都是要靠這裡;板子中間那塊有很多LED燈,有接上電源的時候寫著ON的LED燈會亮起來。寫著L的則是內建的LED燈,待會就會用到它。
最後有個最重要的東西,就是上下兩側的黑色洞洞,可以接上模組。雖然這次不會用到,不過要做出有趣的功能,這些洞洞必不可少。它就是接腳,下面的POWER顧名思義,就是可以幫模組供電的腳位,GND就是負極,有V的則是正極,不過有時候不會用到正極。因為上面出現的DIGITAL PWM(~)那邊,可以控制訊號輸出,會有0和1。1就代表有訊號、有電,0則是相反,什麼都沒有。
在digital這邊,你會發現後面有PWM(~),PWM就是一種能讓數位(0和1)假裝成類比(0到很大)的東西。數字旁邊有~的腳位就可以用PWM,其他的就不行了。
剩下的ANALOG IN就是剛剛提到的類比腳位,可以接上類比的模組。就跟前面提到的一樣,能夠設定大小。如果拿燈來比喻的話,數位就是只能開和關,類比則是能夠調整亮度。
Arduino裡面有很重要的一環——程式,它的程式可以用來控制Arduino,如果什麼都不寫,就什麼都不會發生,所以一定要把程式傳進去。
首先要到這裡,根據你的作業系統選擇下載的檔案,目前的版本是2.2.1,應該會看起來像這樣子:
可以看到畫面上有很多區域,我會大概分成這樣:
1.運行區,從左到右是檢查(看能不能運行,但可以過不代表寫對了)、上傳、除錯、 選擇板板、兩種不同的序列阜監控視窗
2.管理區:檔案、板板管理員、程式庫、偵錯、搜尋
3.可以寫程式的地方。現在有兩堆上面是初始的設定,下面是會重複運行的東西。
接下來會講3個比較基本的程式,分別是:digitalWrite()、delay()、pinMode()。其實有很多的程式都會用到括號,各自代表不同的數值,有些是腳位跟狀態,有些是數值大小。那首先介紹的是digitalWrite,分開來是digital(數位)、write(寫),意思是指會在數位的腳位裡面寫入數值。使用的方法是假設要讓3號腳位變成1(啟動),就要寫digitalWrite(3, HIGH);。括號裡面的3是代表幾號腳,隔了逗號的HIGH是代表啟動。替換腳位只要換數字就好,要關閉的話就要把HIGH變成LOW。最後的分號是代表指令結束了,幾乎每個程式最後都會用到分號。
再來是delay(),是等待的意思。如果要讓程式暫停運行1秒鐘,就要寫delay(1000);,注意括號裡面要寫毫秒,也就是千分之一秒。所以如果要寫1秒鐘,需要寫到1000。
最後是pinMode(),這個通常會寫在初始的地方,用處是決定一個腳位是輸出的,也就是會產生反應的;還是輸入的,可以對它做事讓它感應到的。寫法是pinMode(3, OUTPUT);,意思是3號腳位要設定成輸出腳位,之後才可以用digitalWrite。
接下來是實作!要讓Arduino上的內建LED閃爍!
建議可以手動自己打,讓大腦跟手記起來打下程式的感覺,比較不會那麼容易就忘記了
首先,要先打開一個Arduino的檔案,目前會像這樣:
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
再來,我們要進行初始的設定,要把有//的註解刪掉,寫上兩個斜線是註解,能夠在後面自由的寫字,讓自己理解這是做什麼用的,不過原本的這些現在用不到。接下來在void setup的大括號裡面,寫上
pinMode(LED_BUILTIN, OUTPUT);
這個LED_BUILTIN是內建LED的腳位,OUTPUT是輸出的意思,所以這行程式會讓內建LED可以控制
接下來會像這樣:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
}
然後呢,可以在void loop,也就是循環運行的地方,寫上:
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
這幾行程式能夠讓內建LED閃爍,第1行是讓燈亮起來,第2行是暫停1秒鐘,第3行是讓燈暗下來,第4行也是暫停1秒鐘。這些數值都是可以改變的,像是更改delay裡面的數字可以讓閃爍間隔增加或減少,可以自己試試看喔!
現在看起來像這樣:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
這樣幾乎就成功了,接下來,最後的步驟就是把傳輸的線接上,並且上傳這個程式,如果看到了閃爍的結果,那就代表成功了,大功告成!