Trong bài viết này Điện Tử Tương Lai sẽ giúp bạn tìm hiểu hàm analogRead là gì và dùng để làm gì.
analogRead đọc giá trị từ chân analog được chỉ định. Bo mạch Arduino chứa một bộ chuyển đổi tín hiệu analog sang kỹ thuật số đa kênh 10-bit. Có nghĩa là nó sẽ ánh xạ điện áp đầu vào giữa 0 và điện áp hoạt động (5V hoặc 3,3V) thành các giá trị nguyên từ 0 đến 1023. Ví dụ trên Arduino UNO, độ phân giải giữa các lần đọc là: 5V / 1024 đơn vị hoặc 0,0049V (4,9 mV) trên một đơn vị. Xem bảng bên dưới để biết các chân có thể sử dụng, điện áp hoạt động và độ phân giải tối đa cho một số bo Arduino.
Phạm vi đầu vào có thể được thay đổi bằng cách sử dụng analogReference (), độ phân giải có thể được thay đổi (chỉ đối với bo mạch Zero, Due và MKR) bằng cách sử dụng analogReadResolution ().
Trên các bo mạch dựa trên ATmega (UNO, Nano, Mini, Mega), mất khoảng 100 micro giây (0,0001 giây) để đọc đầu vào analog, do đó tốc độ đọc tối đa là khoảng 10.000 lần một giây.
Bo |
Điện áp hoạt động |
Các chân sử dụng |
Độ phân giải tối đa |
Uno |
5V |
A0 đến A5 |
10 bit |
Mini, Nano |
5V |
A0 đến A7 |
10 bit |
Mega, Mega2560, Mega ADK |
5V |
A0 đến A14 |
10 bit |
Micro |
5V |
A0 to A11* |
10 bit |
Leonardo |
5V |
A0 to A11* |
10 bit |
Zero |
3.3V |
A0 đến A5 |
12 bit** |
Due |
3.3V |
A0 đến A11 |
12 bit** |
Bo dòng MKR |
3.3V |
A0 đến A6 |
12 bit** |
* A0 đến A5 được ghi trên bo, A6 đến A11 tương ứng có trên các chân 4, 6, 8, 9, 10 và 12
** Độ phân giải analogRead () mặc định cho các bo này là 10 bit, để tương thích. Bạn cần sử dụng analogReadResolution () để thay đổi nó thành 12 bit.
Cú pháp
analogRead(pin)
Thông số
pin: tên của chân đầu vào analog để đọc từ A0 đến A5 trên hầu hết các bo, A0 đến A6 trên bo MKR, A0 đến A7 trên Mini và Nano, A0 đến A15 trên Mega.
Return
Kết quả đọc analog trên chân. Nó bị giới hạn ở độ phân giải của bộ chuyển đổi analog sang kỹ thuật số (0-1023 cho 10 bit hoặc 0-4095 cho 12 bit). Kiểu dữ liệu: int.
Code mẫu
Code này sẽ đọc điện áp trên analogPin và hiển thị giá trị điện áp đó.
Chú ý
Nếu chân đầu vào analog không được kết nối với bất kỳ thứ gì, giá trị được trả về bởi analogRead () sẽ dao động dựa trên một số yếu tố (ví dụ: giá trị của các đầu vào analog khác, mức độ gần của bàn tay bạn với bo, ...).
Hotline: 0979 466 469