Điều chỉnh điện áp đọc được tối đa ở các chân Analog

Lâu nay chúng ta đã quen với việc đọc tín hiệu từ các chân nalog với mức điện áp từ 0V - 5V. Thế nhưng với Arduino ta có thể thay đổi mức điện áp đó bằng cả cách cách lập trình với code và cách phần cứng. HeHe bắt đầu tìm hiểu thôi.

Thay đổi bằng Code

Ta sẽ sử dụng câu lệnh analogReference để thay đổi mức điện áp đọc được tối đa ở các chân analog. Cấu trúc câu lệnh như sau:

analogReference(type);

Trong đó tham số type thiết lập chế độ đọc analog, nó bao gồm các chế độ sau:

  • DEFAULT: Chế độ mặc định, mức điện áp tối đa sẽ là 5V như bình thường đối với bản arduino 5V và 3V3 đối với bản arduino 3v3. Nếu bạn không gọi hàm analogReference, đây sẽ là chế độ đọc.
  • INTERNAL: Chế độ này cho ta mức điện áp đọc tối đa là 1V1 đối với VĐK ATmega168, ATmega328 và là 2.56V đối với vđk ATmega8. (Chế độ này không hỗ trợ cho Arduino Mega).
  • INTERNAL1V1: Thiết lập mức 1V1 cho bản Arduino Mega.
  • INTERNAL2V56: Thiết lập mức 2V56 cho bản Arduino Mega.
  • EXTERNAL: Đặt chế độ này để thay đổi bằng phần cứng.

Code mẫu:

int val;
void setup()
{
  Serial.begin(9600);
  analogReference(INTERNAL);
}

void loop()
{
  val=analogRead(A3);
  Serial.println(val);
  delay(1000);
}

Thay đổi bằng phần cứng

Ta sẽ thay đổi bằng cách đưa vào chân AREF của board arduino một điện áp tương đương với mức điện áp đọc được tối đa. Chúng ta nên đưa vào chân AREF điện áp ổn định (Qua ic nguồn) để tránh tình trạng thay đổi mức tối đa ngoài ý muốn khi đang chạy chương trình.

Mình nối AREF pin với chân 3V3 của Arduino.

Code ví dụ

int val;
void setup()
{
  Serial.begin(9600);
  analogReference(EXTERNAL);
}

void loop()
{
  val=analogRead(A3);
  Serial.println(val);
  delay(1000);
}

Lưu ý

Sau đây là một số lưu ý khi thay đổi điện áp đọc tối đa ở các chân anlog:

  • Sau khi thay đổi điện áp tối đa đọc được, một vài lệnh đọc analog đầu có thể không chính xác.
  • Nếu thay đổi bằng AREF pin thì cần cung cấp cho pin ấy điện áp từ 0V => 5V (Không cao hơn 5V mà cũng không thấp hơn 0V). Và phải khai báo câu lệnh analogReference(EXTERNAL); trước khi đọc tín hiệu analog. Nếu làm sai điều này sẽ gây đoản mạch.

Kết luận

Ngoài ra, nếu bạn không có module điều chỉnh nguồn để cho điện áp vào AREF pin thì bạn cũng có thể thay đổi điện áp vào pin AREF bằng điện trở. Điện áp vào pin AREF được tính theo công thức sau: UAREF = Unguồn*32000/(32000+R). Trong công thức ấy tại sao lại có con số 32000 nhỉ, đó là giá trị nội trở của chân AREF pin ý mà. Ví dụ: Mình nối chân AREF với chân 3V3 và nối với điện trở 5K thì được điện áp vào chân AREF như sau: UAREF = 3.3*32000/(32000+5000) = ~2.85 V. Từ công thức ấy bạn có thể tính được điện trở khi biết điện áp ra chân AREF và điện áp vào.

Chúc các bạn lập trình, sáng tạo vui vẻ và có nhiểu dự án hay để chia sẻ với cộng đồng Arduino VN. Tạm biệt và cảm ơn đã theo dõi. Nếu thấy hay thì cho mình cái Rate Note ủng hộ.

lên
18 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Bộ điều khiển PID - ứng dụng phần 2 - xe dò line dùng thuật toán PID

Tiép nối bài viết về xe dò line cảm ơn Đỗ Hữu Toàn đã viết hộ mình phần 4. hôm nay mình sẽ làm cho chiếc xe dò line đi mượt và có hồn hơn 

lên
34 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Chạy hàm song song với delay

Xin chào các bạn! Trong cuộc sống, đôi khi chúng ta đang làm một việc gì đó và sẽ có lúc chúng ta phải đợi một khoảng thời gian rồi mới làm tiếp công việc ấy, và khi ấy ta sẽ tận dụng khoảng thời gian ấy để làm một việc khác. Vậy trong arduino ta có thể làm tương tự không, trong khi ta cho chương trình delay thì ta lại cho nó thực hiện một việc gì đó. Đáp án là được, bài viết này sẽ chia sẻ thủ thuật khá hay này.

lên
22 thành viên đã đánh giá bài viết này hữu ích.

[Truyền thông] Phát động cuộc thi "Oraichain Hackathon" 2022 - Săn tiền thưởng 100 triệu đồng

    Hiện nay với xu thế phát triển của cách mạng công nghiệp 4.0, AI và Blockchain đang ngày càng được quan tâm, phát triển. Các cuộc thi về AI thì đã có nhiều, còn các cuộc thi về Blockchain thì vẫn còn khá ít và hạn chế. Trước sự quan tâm của các bạn trẻ đam mê công nghệ tại Việt Nam về Blockchain, chiều ngày 19/4/2022, tại Hà Nội, Trung tâm Phát triển khoa học, công nghệ và tài năng trẻ (Trung ương Đoàn) đã phối hợp với các đơn vị chính thức khởi động cuộc thi lập trình Orachain Hackathon năm 2022.

lên
6 thành viên đã đánh giá bài viết này hữu ích.