1. 程式人生 > >【Arduino官方教程第一輯】示例程式 5-1 陣列

【Arduino官方教程第一輯】示例程式 5-1 陣列

陣列

本例中我們使用for迴圈配合一個數組變數向你展示Arduino中陣列的使用。陣列是一個有多個”部分”的變數。如果我們把普通變數看做一個盛裝值的“杯子”,那麼陣列就好像是一個“製冰器”。陣列就好像是一連串“杯子”,每個杯子都可以儲存一個值(不過這些值要為相同型別)。
【譯者注:原文為”…,all of which can hold the same maximum value.”(這些值應該有相同的最大值。)個人覺得他寫的不夠明確和妥當,因而做了修改】

圖片來自官網
PS:本圖是譯者所配。陣列其實是一列有順序的”杯子”,這裡選的圖不是最貼切(只有一列的製冰器圖好難找),大家理解就好。

之前使用for迴圈的例子會對Arduino或Genuino板上2號到7號引腳的LED進行操作,不過有一些限制:LED的引腳必須是連續的,否則就無法完成按照要求一個接一個的亮起。

而在本例中,我們會向你展示如何讓無序的LED燈一個接一個的亮起。為了做到這一點,你需要將引腳的編號放置在一個數組裡,然後再for迴圈中迭代這個陣列。(原來是讓一個變數自加來達到引腳編號的切換,而本例是按照有引腳編號的陣列進行迭代操作。)

本例使用了6個LED,分別通過220Ω電阻連線到板子上的2-7引腳。不過,LED亮起的順序是由陣列中定義的先後順序決定的,因而不一定是2-7(把引腳編號放入陣列其實是很簡單的,下面你就會看到,不過要注意,陣列元素序號是從0開始的,而且陣列的容量是固定的而非可變的)。你可以任意調整引腳順序,不連續的引腳也可以。只要你在陣列中將你連線的LED定義進去就可以了。

完成本例所需的硬體裝置

  • Arduino板或Genuino板
  • 6個LED
  • 6個220Ω電阻
  • 跳線
  • 麵包板
  • 連線線

電路連線

將六個LED用220Ω電阻分別連線到2-7引腳。
圖片來自官網

原理圖

圖片來自官網

例程程式碼

/*
  陣列

 展示讓無序的LED一個接一個按順序亮起的方法。燈會按照順序先從陣列頭 
 的亮到陣列尾,然後反過來由尾到頭。

 和從前例子不同的是,本例的LED不是必須連續的。你可以任意改變LED連
 接的引腳和順序。只要在陣列中定義即可。

 電路連線:
 * LED從2號引腳連線到GND

 程式碼公開
 */

int timer = 100;           // 數字越大間隔時間越長
int ledPins[] = {2, 7, 4, 6, 5, 3}; // LED引腳編號陣列 int pinCount = 6; // 引腳個數(應和LED引腳編號陣列相同) void setup() { // 陣列元素取出時應該是從0開始到pinCount - 1結束。(陣列元素是從0開始編號的) //用for迴圈初始化引腳: for (int thisPin = 0; thisPin < pinCount; thisPin++) { pinMode(ledPins[thisPin], OUTPUT); } } void loop() { // 從第零個到最後一個: for (int thisPin = 0; thisPin < pinCount; thisPin++) { // 給引腳輸出高電平: digitalWrite(ledPins[thisPin], HIGH); delay(timer); // 將引腳輸出低電平: digitalWrite(ledPins[thisPin], LOW); } // 從最後一個到第零個: for (int thisPin = pinCount - 1; thisPin >= 0; thisPin--) { // 給引腳輸出高電平: digitalWrite(ledPins[thisPin], HIGH); delay(timer); // 將引腳輸出低電平: digitalWrite(ledPins[thisPin], LOW); } }

相關資料

更新程序

日期 日誌 譯者
2016年5月23日 建立並翻譯文件 唐家勳

譯者:唐家勳
郵箱:[email protected]
QQ:649196486
轉載請註明出處,一切只因為熱愛。
希望您能指出寶貴意見,謝謝。
我的微信公眾號歡迎關注,2016年6月開始更新

相關推薦

no