You are currently viewing Arduino範例講解(一)

Arduino範例講解(一)

LED閃爍(Blink):第一個Arduino代碼

首次插入Arduino時,您會看到綠燈(旁邊寫著“ ON”-這是電源LED)和橙色燈閃爍(旁邊寫有“ L”) 。這是預設的”LED閃爍”程序,它將會讓LED點亮一秒鐘,然後將其熄滅一秒鐘,永遠這樣重複下去。

讓我們看一下代碼:打開Arduino IDE,然後轉到File> Examples> 01.Basics> Blink。

您會注意到的第一件事是前23行比其餘的顏色要淡。放在* / / *符號之間代表是註解,這是多行註解。在第25行,是單行註解,這裏使用//運算符,//後面的所有內容都是註解。//的下一行是普通代碼,與多行註解不同,您不必關閉此單行註解。

註解用於使代碼更具可讀性,因此強烈建議你在自己的程序碼中使用它們。在像Blink(LED閃爍)這樣的小程序中並不一定要這樣做,但是當您編寫超過一千行的代碼時,如果你加了一些註解來幫助您了解特定代碼的作用,這樣對日後再次看程式碼的您將會非常感激,這樣也幫助自己可以快速瞭解此程式碼如何運作。
您還可以使用註解運算符(臨時)禁用一段代碼,而不必將其永久刪除。這是可行的,因為註解不會上載到Arduino。(它們會被編譯器忽略。)這也意味著它們不佔用Arduino記憶體中的任何空間,僅佔用開發電腦的硬體空間。

Arduino參考:註解

程式碼中我們遇到的下一個代碼是’ void setup(){ ‘
這是設定函式,每次Arduino啟動時,它只運行一次。(void是一種資料型態,表示安裝程序不返回任何信息,有關更多信息,請參見稍後說明。在每個函數中使用兩個括號來傳遞數據;安裝程序不需要任何數據,因此括號為空。如果您還不了解,請不要擔心,我們將在其他相關功能的步驟中對其進行詳細介紹。)
“ void setup()”之後兩個大括號或花括號之間的所有內容都是在安裝過程中執行的代碼。確保始終合上括號,否則會出現奇怪的錯誤。如果您選擇一個,則IDE會通過突出顯示另一個括號來幫助您。

Arduino參考:Void

Arduino參考:Setup

Arduino參考:{}

第一個實際執行命令是’ pinMode(13,OUTPUT); ‘。您可能已經猜到了,這與Arduino上的兩排引腳有關:這些引腳既可以用作輸入,也可以用作輸出。第一個數字是我們要用作輸出的引腳,在這種情況下為13,因為所有Arduino板均具有一個連接到引腳13的控制板上的LED。OUTPUT是pinMode函數的第二個變數。這是由軟體本身定義的值,並已被賦予了簡單的名稱。常數將顯示為藍色。
(OUTPUT的值為1,這有點違反直覺,因為它的O看起來像0,而INPUT常數的I看起來像1。pinMode(13,OUTPUT)pinMode(13,1)完全相同。)

在預設的情況下,Arduino的引腳設置為輸入,但是通過使用pinMode函數,我們現在將引腳13設置為輸出。我們還沒有告訴我們要輸出什麼值,所以它將只是0。這意味著,在晶片內部,引腳13連接到0v,也就是接地端。如果現在將5v引腳連接到13引腳,則會造成短路!小心!

Arduino參考:pinMode

Arduino教程:DigitalPins

在Arduino IDE和其他類似C的程式語言中,每個語句都以分號;)結尾,如您在這Blink範例中所見。當您在嘗試上傳時遇到隱秘錯誤時,首先要檢查的是分號。在大多數情況下,您會收到如下錯誤:Blink:16:error:可以預期為’,’或’;’ 之前…
16並不是缺少分號的行,而是具有下一個命令/語句的行。

Arduino參考:分號;

下一個結構元素是’ void loop(){ ‘
弧形括號之間的代碼在安裝完成後執行,並將永久重複(至少直到您重新啟動Arduino或上傳另一個程序為止)。

Arduino參考:loop

下一個函數是“ digitalWrite(13,HIGH) ”。
此引腳將13引腳設為高電位,換句話說,將其內部連接到5v引腳。Arduino上的LED連接在地面和13針之間,所以LED上現在有5v電壓,它會點亮。

注意現在不要將13腳短接地,否則會造成短路!

您還可以看到LOW常數也使用了相同的功能,這會將引腳13接地(晶片內部)。若13引腳設為LOW的話,LED兩端沒有電壓差,LED燈亮將消失。

除了使用HIGH和LOW,還可以使用1和0,或者true和false。

Arduino參考:digitalWrite

最後一個函數是一個非常直覺的函數:delay(1000)
它僅等待一定的時間(以毫秒為單位)。在這種情況下,它將等待1000 ms或1秒,然後執行下一條命令。

Arduino參考:delay

當我們到達第37行時,我們從第33行重新開始,因為我們處於循環中。

摘要:

  1. 在setup中,僅在程序啟動時運行一次,我們將引腳13設置為輸出。
  2. 在loop中,我們使led的輸出為HIGH(5v),等待1,000ms,使其為LOW(0v),再等待一秒鐘。這個循環將永遠重複(至少直到您重新啟動Arduino或上傳另一個程序為止)
  • / *這是註解* /這不是
  • 這不是註解//這是註解
  • 每個語句以分號結尾;
  • void setup(){}是在Arduino啟動時運行一次的函數
  • void loop(){}是在安裝程序運行後永遠重複的功能
  • pinMode(引腳,輸出); pinMode(pin,1); 將給定的引腳設置為輸出
  • digitalWrite(pin,state); 將給定的引腳設置為高電位(5v)或低電位(0v)。狀態可以是HIGH或LOW,1或0,是或否。
  • delay(); 等待指定的時間(以毫秒為單位)。

將程序上傳到Arduino控制板

作為程式碼案例,我們將Blink案例上傳到Arduino,但是由於預設情況下已經安裝了該案例,因此將delay函數的值更改為500而不是1000,否則我們看不到任何區別。

如果尚未將Arduino連接到電腦,請立即將其連接。等電腦識別新的USB設備port,然後到Arduino IDE中的“工具”>”開發板”選單,然後選擇您的主板。然後在“工具”>“序列埠”中,選擇正確的Com port。在Windows中,這可能是COM port。如果有多個可用端口,請拔下Arduino的電源,然後重新插入,然後查看哪個端口消失並重新出現,以了解Arduino的port。
在右下角,你可以看到電路板的名稱以及所連接的port。

現在,點擊左上角的向右箭頭,將Blink上傳到控制板上。您也可以使用快捷鍵CTRL + U。
如果一切正常,則應開始編譯,然後上傳。上傳時,TX和RX指示燈會快速閃爍。
完成後,引腳13上的LED現在應該會比原本兩倍的速度閃爍。

編譯意味你原本寫給人類讀的代碼被“轉換”為Arduino可以理解的一系列二進制數代碼。然後在上傳過程中將此二進製文件複製到Arduino的記憶體上。

發佈留言