AnalogRead()

From MakerLab Wiki
Jump to navigation Jump to search

Chức năng

_ Đọc giá trị từ một chân Analog được chỉ định.

_ Các bo mạch Arduino đều chứa một "bộ chuyển đổi Analog sang Digital" (ADC) cho nhiều chân Analog, với độ phân giải mặc định là 10-bit.

_ Điều này có nghĩa là với điện áp đầu vào (hoạt động từ 5V đến 0V) tại chân được chỉ định, sẽ "ánh xạ" thành các giá trị số nguyên trong khoảng từ 0 đến 1023.

_ Ví dụ, với bo Vietduino UNO, sẽ cho độ phân giải giữa các lần đọc: 5 volts / 1024 units hoặc 0,0049V (4,9mV) cho mỗi đơn vị.

Cú pháp

  • analogRead(pin)

Tham số

  • pin - số thứ tự của chân Analog trên bo Arduino bạn muốn đọc.
    vd: A1, A2, A3, ...

Dữ liệu trả về

  • Với độ phân giải của bộ ADC mặc định là 10-bit, giá trị nhận được là một số nguyên trong khoảng "từ 0 đến 1023".
  • Kiểu dữ liệu int.

Code mẫu

Đọc tín hiệu Analog từ chân A1 (biến trở), cứ cách mỗi 0,5s đọc lại một lần.

Giá trị đọc được sẽ cho hiển thị lên Serial.

#define potPin A1 // Biến trở kết nối chân A1

/* ----------------------------------------------------- */

int val;  // Biến lưu trữ giá trị đọc được

/* ----------------------------------------------------- */

void setup()
{
  Serial.begin(115200); // Mở cổng Serial
}

/* ----------------------------------------------------- */

void loop()
{
  val = analogRead(potPin); // Đọc tín hiệu Analog từ Biến trở
  Serial.println(val);      // In giá trị đọc được
  delay(500);               // Đợi 0,5s và lặp lại
}

Lưu ý

_ Nếu chân không được kết nối với bất cứ thứ gì, tức ở trạng thái "lơ lửng". Hàm analogRead() có thể trả về giá trị dao động dựa trên các yếu tố từ môi trường xung quanh, nhưng vẫn trong khoảng "từ 0 đến 1023".