Tự động hóa

Arduino Bài 6.1 - dữ liệu mảng ARRAY

 Trong bài này chúng ta học về mảng. Mảng sẽ gồm mảng một chiều và mảng 2 chiều. 

Cú pháp khai báo:

Kiểu_dữ_liệu Tên_mảng[] = {giá trị1, giá trị 2 ....};


Truy cập các phẩn tử trong mảng

Chú ý: Phần tử đầu tiên trong mảng luôn được đánh dấu là số 0.

mySensVals[0] == 2, mySensVals[1] == 4, 

Điều này có nghĩa rằng, việc khai báo một mảng có tối đa 10 phần tử, thì phần tử cuối cần (thứ 10) được đánh dấu là số 9

int myArray[10]={9,3,2,4,3,2,7,8,9,11};

     // myArray[9]    có giá trị là 11

     // myArray[10]   sẽ trả về một giá trị "hên xui" nằm trong khoảng giá trị của int

Vì vậy, hãy chú ý trong việc truy cập đến giá trị trong mảng, nếu bạn muốn truy cập đến phần tử cuối cùng thì hãy truy đến đến ô giới hạn của mảng - 1.


Hãy ghi nhớ rằng, trong trình biên dịch ngôn ngữ C, nó không kiểm tra bạn có truy cập đến một ô có nằm trong bộ nhớ hay không! Nên nếu không cẩn thận trong việc truy cập mảng, chương trình của bạn sẽ mắc lỗi logic và rất khó để tìm lỗi đấy!

-----------------------------------------------------------------------------

Chúng ta đi vào ví dụ sau để hiểu rõ. Đầu tiên ví dụ về mảng 1 chiều

1- Mảng một chiều : điều khiển 8 đèn led nhấp nháy. Nếu như bình thường ở hàm void setup chúng ta phải khai báo chân output như sau:

void setup()
{
  pinMode(3OUTPUT);
  pinMode(5OUTPUT);
  pinMode(4OUTPUT);
  pinMode(6OUTPUT);
  pinMode(8OUTPUT);
  pinMode(7OUTPUT);
  pinMode(2OUTPUT);
  pinMode(1OUTPUT);
}

Nhưng khai báo kiểu mảng thì code của ta sẽ rút gọn thành như sau:

  byte i;
  for( i = 0, i <= 7, i++) {
    pinMode(PIN[i], OUTPUT);
  }

Toàn bộ code sẽ là: 

#include "Arduino.h"
byte PIN[8= {35468721}; // mảng 1 chiều gồm 8 chân PIN điều khiển 8 đèn led nhấp nháy

void setup()
{
  Serial.begin(9600);
  byte i;
  for( i = 0; i <= 7; i++) {
    pinMode(PIN[i], OUTPUT);
  }
}

void loop()
{

}

chỉ cần dùng một vòng lặp for là ta có thể khai báo toàn bộ chân pin OUTPUT .

2- Mảng hai chiều : 

https://www.youtube.com/watch?v=6hG4oJ3_40w

About Mr. Facebook

0 nhận xét:

Đăng nhận xét