2024-01-31|閱讀時間 ‧ 約 27 分鐘

Arduino 01 - 認識Arduino

    什麼是Arduino?

    Arduino是一種被稱為「開發板」的東西,能夠用來做出各式各樣的裝置。而使用的方法是將「模組」接上去,並輸入程式來控制它,製作自己的玩具。這篇文章後面將會陸續介紹硬體及軟體,最後會用一條傳輸線和一片Arduino來做出一個簡單的專案!


    Arduino的本體—開發板

    Arduino其實板子不是只有一種,到他們的網站上看,會有大大小小的板子。本文將會使用Arduino UNO來示範。在模擬起來像這樣:

    在Tinkercad上模擬的樣子

    上面有很多看起來相當複雜的東西,接下來會來解釋這些東西的功用:

    Arduino上的東西

    左上角有個重開機按鈕,按下後可以重新運行一次程式;它底下的銀色大方塊要接上傳輸線,供電和上傳程式都是要靠這裡;板子中間那塊有很多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裡面有很重要的一環——程式,它的程式可以用來控制Arduino,如果什麼都不寫,就什麼都不會發生,所以一定要把程式傳進去。

    首先要到這裡,根據你的作業系統選擇下載的檔案,目前的版本是2.2.1,應該會看起來像這樣子:

    Arduino的IDE

    可以看到畫面上有很多區域,我會大概分成這樣:

    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);
    }

    這樣幾乎就成功了,接下來,最後的步驟就是把傳輸的線接上,並且上傳這個程式,如果看到了閃爍的結果,那就代表成功了,大功告成!

    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.