8
chapter 1 認識 Arduino 1-13 Arduino 開發環境功能說明 1-2 Arduino 開發環境功能說明 英文名稱 中文功能 快捷鈕 說明 New 新增檔案 新增專案檔。 Open 開啟舊檔 開啟副檔名.pde .ino Arduino 專案檔。 Save 儲存檔案 儲存專案檔。 Verify 驗證 編譯原始碼並且驗證語法是否有錯。 Upload 上傳 將編譯後的可執行檔上傳至 Arduino 板。 Serial Monitor 串列埠監看視窗 又稱為終端機,是電腦與 Arduino 板溝通介面。 1-4-4 執行第一個 Arduino 範例程式 USB 連接埠 外部DC 電源連接埠 電源LED 串列埠 LED P13 LED RESET 按鍵 UNO ON L IOREF RESET 3.3V 5V GND GND Vin ANALOG IN A0 A1 A2 A3 A4 A5 AREF GND 13 12 ~11 ~10 ~9 8 7 ~6 ~5 4 ~3 2 TX 1 RX 0 RX TX RESET DIGITAL (PWM~) POWER SCL SDA 16MHz 數位接腳 類比接腳 電源 USB 連接埠 外部DC 電源連接埠 電源LED 串列埠 LED P13 LED RESET 按鍵 UNO ON L IOREF RESET 3.3V 5V GND GND Vin ANALOG IN A0 A1 A2 A3 A4 A5 AREF GND 13 12 ~11 ~10 ~9 8 7 ~6 ~5 4 ~3 2 TX 1 RX 0 RX TX RESET DIGITAL (PWM~) POWER SCL SDA 16MHz ATMEGA328P UNO ON L IOREF RESET 3.3V 5V GND GND Vin ANALOG IN A0 A1 A2 A3 A4 A5 AREF GND 13 12 ~11 ~10 ~9 8 7 ~6 ~5 4 ~3 2 TX 1 RX 0 RX TX RESET DIGITAL (PWM~) POWER SCL SDA 16MHz 16MHz 數位接腳 類比接腳 電源 USB 線連接 如右圖所示 Arduino UNO USB 連接埠與 電腦 USB 埠,並 LED( 綠色 ) 是否 有亮。 STEP 1

Arduino 開發環境功能說明epaper.gotop.com.tw/pdf/AEH001800.pdfchapter 1 認識Arduino 1-13 Arduino開發環境功能說明 表1-2 Arduino 開發環境功能說明 英文名稱

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

  • chapter 1 認識 Arduino

    1-13

    Arduino 開發環境功能說明

    表1-2 Arduino 開發環境功能說明

    英文名稱 中文功能 快捷鈕 說明

    New 新增檔案 新增專案檔。

    Open 開啟舊檔 開啟副檔名.pde 或.ino 的 Arduino 專案檔。

    Save 儲存檔案 儲存專案檔。

    Verify 驗證 編譯原始碼並且驗證語法是否有錯。

    Upload 上傳 將編譯後的可執行檔上傳至 Arduino 板。

    Serial Monitor 串列埠監看視窗 又稱為終端機,是電腦與Arduino板溝通介面。

    1-4-4 執行第一個 Arduino 範例程式

    USB 連接埠

    外部DC電源連接埠

    電源LED

    串列埠 LED

    P13 LED

    RESET 按鍵

    ATMEGA328P

    UNOONL

    IOR

    EFR

    ESET

    3.3V

    5V GN

    DG

    ND

    Vin

    ANALOG IN

    A0

    A1

    A2

    A3

    A4

    A5

    AR

    EFG

    ND 13 12 ~11

    ~10

    ~9 8 7 ~6 ~5 4 ~3 2TX

    1R

    X 0

    RXTX

    RES

    ET

    DIGITAL (PWM~)

    POWER

    SCL

    SDA

    16MHz

    數位接腳

    類比接腳電源

    USB 連接埠

    外部DC電源連接埠

    電源LED

    串列埠 LED

    P13 LED

    RESET 按鍵

    ATMEGA328P

    UNOONL

    IOR

    EFR

    ESET

    3.3V

    5V GN

    DG

    ND

    Vin

    ANALOG IN

    A0

    A1

    A2

    A3

    A4

    A5

    AR

    EFG

    ND 13 12 ~11

    ~10

    ~9 8 7 ~6 ~5 4 ~3 2TX

    1R

    X 0

    RXTX

    RES

    ET

    DIGITAL (PWM~)

    POWER

    SCL

    SDA

    16MHz

    ATMEGA328P

    UNOONL

    IOR

    EFR

    ESET

    3.3V

    5V GN

    DG

    ND

    Vin

    ANALOG IN

    A0

    A1

    A2

    A3

    A4

    A5

    AR

    EFG

    ND 13 12 ~11

    ~10

    ~9 8 7 ~6 ~5 4 ~3 2TX

    1R

    X 0

    RXTX

    RES

    ET

    DIGITAL (PWM~)

    POWER

    SCL

    SDA

    16MHz16MHz

    數位接腳

    類比接腳電源

    以 USB 線連接

    如 右 圖 所 示

    Arduino UNO 板

    USB 連接埠與

    電腦 USB 埠,並

    檢 查 電 源

    LED(綠色 )是否

    有亮。

    STEP 1

  • 1-14

    Arduino 最佳入門與應用

    打造互動設計輕鬆學

    Arduino 最佳入門與應用

    打造互動設計輕鬆學

    點 選 驗 證 鈕

    ,編 譯 專案

    檔。

    編譯完成後,在

    下 方 的 訊 息 視

    窗 中 會 出 現 草

    稿碼 (sketch) 使

    用的 flashROM

    大 小 及 可 使 用

    的上限,因為使

    用 ATmega328P

    微控制器,所以

    上限為 32KB。

    STEP 1

    STEP 1

    開啟 Arduino 開

    發環境。

    點選【檔案】【範

    例】【01.Basics】

    開啟 Blink 程式

    檔。Blink 程式功

    能為使 LED 亮 1

    秒、暗 1 秒的閃

    爍功能。此處先

    不 用 理 會 程 式

    的內容。

  • chapter 1 認識 Arduino

    1-15

    充電站

    1. 機械語言:現今電腦是由電子電路所構成,其中主動元件如同開關只工作在飽和區與截止區等二值準

    位 0 或 1 來表示開或關。由 0 與 1 組合成指令機械碼,並且由電腦直接執行,不需翻譯。機械語言

    最難學習,現今已不存在而由組合語言或高階語言取代。

    2. 組合語言:又稱為低階語言,是製造商依其生產晶片的特性來開發,可以發揮晶片最高的執行效率、

    程式碼小而且是完全免費,在學習的同時可以了解微控制器的硬體架構。

    3. 高階語言:是以人類的日常語言為基礎的一種編程語言,使用一般人容易接受的文字來表示,使程式

    設計人員在編寫程式更容易。高階語言具有結構化、簡單、易學、可攜性高、硬體升級容易等優點,

    但是高階語言最大的問題是必須負擔較高的軟體費用,而且執行效率不高、程式碼較大。早期電腦業

    的發展主要在美國,因此一般的高階語言都是以英語來設計。

    4. 串列埠:串列埠(Serial port)主要用於資料的串列傳輸,一般電腦常見的串列埠標準協定為 RS-232,

    有 9 針及 25 針兩種 D 型接頭型式,在電腦中的代號為 COM。因為 RS-232 協定的傳輸速率較慢,已

    被傳輸速率較快的 USB 介面所取代,USB 是通用序列匯流排(Universal Serial Bus)的縮寫,是連接

    電腦系統與外部裝置的一種串列埠匯流排標準。USB1.1 的傳輸速率為 12Mbps,USB2.0 的傳輸速率為

    480Mbps,USB3.0 的傳輸速率為 5Gbps。

    點 選 上 傳 鈕

    ,將『可執行

    檔 』 上 傳 至

    Arduino 板。上

    傳過程中,在訊

    息列會出現『上

    傳中…』訊息。

    完 成 後 則 出 現

    『上傳完成』。

    檢視 Arduino 板

    上 P13 LED(橙

    色 )是否正確閃

    爍?

    STEP 1

  •   

    11-10

    Arduino 最佳入門與應用

    打造互動設計輕鬆學

    Arduino 最佳入門與應用

    打造互動設計輕鬆學

    11-3-5 音樂盒實習

    功能說明:

    利用 Arduino 板播放兩首鋼琴入門音樂—小蜜蜂(Little Bee)及小星星(Little Star)。本例使用 1 個 TACK 按鍵開關 SW,開機時預設為靜音,每按一次按鍵開關 SW,可以切換小蜜蜂(Little Bee)、小星星(Little Star)及靜音等三種選擇,演奏速度為每分鐘 180 拍。

    電路圖及麵包板接線圖:

    ATMEGA328P

    UNOONL

    IOR

    EFR

    ESET

    3.3V

    5V GN

    DG

    ND

    Vin

    ANALOG IN

    A0

    A1

    A2

    A3

    A4

    A5

    AR

    EFG

    ND 13 12 ~11

    ~10 ~9 8 7 ~6 ~5 4 ~3 2

    TX 1

    RX

    0

    RXTX

    RES

    ET

    DIGITAL (PWM~)

    POWER

    SCL

    SDA

    16MHz

    + −

    喇叭或蜂鳴器

    100μF/25V

    SW

    ATMEGA328P

    UNOONL

    IOR

    EFR

    ESET

    3.3V

    5V GN

    DG

    ND

    Vin

    ANALOG IN

    A0

    A1

    A2

    A3

    A4

    A5

    AR

    EFG

    ND 13 12 ~11

    ~10 ~9 8 7 ~6 ~5 4 ~3 2

    TX 1

    RX

    0

    RXTX

    RES

    ET

    DIGITAL (PWM~)

    POWER

    SCL

    SDA

    16MHz

    ATMEGA328P

    UNOONL

    IOR

    EFR

    ESET

    3.3V

    5V GN

    DG

    ND

    Vin

    ANALOG IN

    A0

    A1

    A2

    A3

    A4

    A5

    AR

    EFG

    ND 13 12 ~11

    ~10 ~9 8 7 ~6 ~5 4 ~3 2

    TX 1

    RX

    0

    RXTX

    RES

    ET

    DIGITAL (PWM~)

    POWER

    SCL

    SDA

    16MHz16MHz

    + −+ −

    喇叭或蜂鳴器

    100μF/25V

    SW

    圖 11-8 音樂盒實習電路圖

    圖 11-9 音樂盒實習麵包板接線圖

  • chapter 11 聲音控制實習

    11-11

    程式: ch11-5.ino const int speaker=2; //數位接腳2連接至喇叭。

    const int sw[2]={4,5}; //數位接腳4、5連接至S0、S1按鍵。

    char toneName[]="CDEFGAB"; //音符表。

    unsigned int frequency[8]={523,587,659,694,784,880,988};//音符頻率表。

    char beeTone[]="GEEFDDCDEFGGGGEEFDDCEGGEDDDDDEFEEEEEFGGEEFDDCEGGC";

    char starTone[]="CCGGAAGFFEEDDCGGFFEEDGGFFEEDCCGGAAGFFEEDDC";

    byte beeBeat[]={1,1,2,1,1,2,1,1,1,1,1,1,2, //小蜜蜂節拍。

    1,1,2,1,1,2,1,1,1,1,4,

    1,1,1,1,1,1,2,1,1,1,1,1,1,2,

    1,1,2,1,1,2,1,1,1,1,4};

    byte starBeat[]={1,1,1,1,1,1,2,1,1,1,1,1,1,2, //小星星節拍。

    1,1,1,1,1,1,2,1,1,1,1,1,1,2,

    1,1,1,1,1,1,2,1,1,1,1,1,1,2};

    const int beeLen=sizeof(beeTone); //小蜜蜂音符總數。

    const int starLen=sizeof(starTone); //小星星音符總數。

    unsigned long tempo=180; //每分鐘180拍。

    int i,j;

    void setup()

    {

    for(i=0;i

  •   

    11-12

    Arduino 最佳入門與應用

    打造互動設計輕鬆學

    Arduino 最佳入門與應用

    打造互動設計輕鬆學

    delay(3000);

    }

    }

    void playTone(char toneNo,byte beatNo) //播放音符。

    {

    unsigned long duration=beatNo*60000/tempo; //計算一拍時間(毫秒)。

    for(j=0;j

  • 15-8

    Arduino 最佳入門與應用

    打造互動設計輕鬆學

    Arduino 最佳入門與應用

    打造互動設計輕鬆學

    15-3 實作練習

    15-3-1 讀取 RFID 標籤資料實習

    功能說明:

    使用 Arduino 板配合 RFID 讀卡機,讀取 RFID 標籤資料,當正確讀取到資料時,蜂鳴器產生短嗶聲,並且將標籤序號顯示在【Serial Monitor】視窗中。本例使用如圖 15-1 所示 Parallax 公司生產的 RFID 讀卡機(#28140),使用 125kHz 低頻無線載波,提供標準串列通訊介面,輸出 TTL 電位,傳輸速率為 2400bps,通訊距離在 10 公分以內,通信協定為 8 個資料位元、無同位元及 1 個停止位元的8N1 格式。使用者可以不必了解協訂標準及底層的驅動方式,只需利用串列通訊接收,即可實現對卡片的所有操作。因為 RFID 讀卡機使用到 Arduino 板數位接腳 0(RX)接收 RFID 標籤傳回的資料,因此要將程式上傳至 Arduino 板前,必須先將 RFID 讀卡機的 SOUT 腳連線移除,等上傳完成時再將 SOUT 腳接回Arduino 板的數位接腳 0。另外,【Serial Monitor】視窗中的傳輸速率必須設定與RFID 讀卡機相同為 2400 baud,RFID 讀卡機才能收到正確的資料。如果覺得每次在上傳 Arduino 程式都必須移除 RFID 讀卡機的 SOUT 腳得麻煩,也可以使用SoftwareSerial.h( )函式設定 RFID 讀卡機使用軟體串列埠。

    (a) 元件 (b) 符號

    圖 15-1 串列式 RFID 讀卡機

  • chapter 15 通訊實習

    15-9

    電路圖及麵包板接線圖:

    ATMEGA328P

    UNOONL

    IOR

    EFR

    ESET

    3.3V

    5V GN

    DG

    ND

    Vin

    ANALOG IN

    A0

    A1

    A2

    A3

    A4

    A5

    AR

    EFG

    ND 13 12 ~11

    ~10

    ~9 8 7 ~6 ~5 4 ~3 2TX

    1R

    X 0

    RXTX

    RES

    ET

    DIGITAL (PWM~)

    POWER

    SCL

    SDA

    16MHz

    +

    100F/25V

    ATMEGA328P

    UNOONL

    IOR

    EFR

    ESET

    3.3V

    5V GN

    DG

    ND

    Vin

    ANALOG IN

    A0

    A1

    A2

    A3

    A4

    A5

    AR

    EFG

    ND 13 12 ~11

    ~10

    ~9 8 7 ~6 ~5 4 ~3 2TX

    1R

    X 0

    RXTX

    RES

    ET

    DIGITAL (PWM~)

    POWER

    SCL

    SDA

    16MHz

    ATMEGA328P

    UNOONL

    IOR

    EFR

    ESET

    3.3V

    5V GN

    DG

    ND

    Vin

    ANALOG IN

    A0

    A1

    A2

    A3

    A4

    A5

    AR

    EFG

    ND 13 12 ~11

    ~10

    ~9 8 7 ~6 ~5 4 ~3 2TX

    1R

    X 0

    RXTX

    RES

    ET

    DIGITAL (PWM~)

    POWER

    SCL

    SDA

    16MHz16MHz

    +

    100F/25V

    + +

    100F/25V

    圖 15-2 讀取 RFID 標籤資料實習電路圖

    圖 15-3 讀取 RFID 標籤資料實習麵包板接線圖

    程式: ch15-1.ino const int StartByte=10; //RFID tag開始字元。

    const int StopByte=13; //RFID tag結束字元。

    const int tagLength=10; //RFID tag資料長度10個位元組。

    const int enable=2; //RFID讀卡機enable腳接數位腳2。

    const int speaker=13; //蜂鳴器接至數位接腳13。

    char tag[tagLength+1]; //儲存tag資料及字串結束字元。

    /ColorImageDict > /JPEG2000ColorACSImageDict > /JPEG2000ColorImageDict > /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 300 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages true /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.50000 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict > /GrayImageDict > /JPEG2000GrayACSImageDict > /JPEG2000GrayImageDict > /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages true /MonoImageDownsampleType /Bicubic /MonoImageResolution 1200 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.50000 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict > /AllowPSXObjects false /CheckCompliance [ /None ] /PDFX1aCheck false /PDFX3Check false /PDFXCompliantPDFOnly false /PDFXNoTrimBoxError true /PDFXTrimBoxToMediaBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXSetBleedBoxToMediaBox true /PDFXBleedBoxToTrimBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXOutputIntentProfile () /PDFXOutputConditionIdentifier () /PDFXOutputCondition () /PDFXRegistryName () /PDFXTrapped /False

    /CreateJDFFile false /Description > /Namespace [ (Adobe) (Common) (1.0) ] /OtherNamespaces [ > /FormElements false /GenerateStructure false /IncludeBookmarks false /IncludeHyperlinks false /IncludeInteractive false /IncludeLayers false /IncludeProfiles false /MultimediaHandling /UseObjectSettings /Namespace [ (Adobe) (CreativeSuite) (2.0) ] /PDFXOutputIntentProfileSelector /DocumentCMYK /PreserveEditing true /UntaggedCMYKHandling /LeaveUntagged /UntaggedRGBHandling /UseDocumentProfile /UseDocumentBleed false >> ]>> setdistillerparams> setpagedevice