analogReference()

Giới thiệu

Hàm analogReference() có nhiệm vụ đặt lại mức (điện áp) tối đa khi đọc tín hiệu analogRead. Ứng dụng như sau, giả sử bạn đọc một tín hiệu dạng analog có hiệu điện thế từ 0-1,1V. Nhưng mà nếu dùng mức điện áp tối đa mặc định của hệ thống (5V) thì khoảng giá trị sẽ ngắn hơn => độ chính xác kém hơn => hàm này ra đời để giải quyết việc đó!

Cú pháp

analogReference(type) 

type: một trong các kiểu giá trị sau: DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2V56, hoặc EXTERNAL

Kiểu Nhiệm vụ đảm nhiệm Ghi chú
DEFAULT

Đặt mức điện áp tối đa là 5V (nếu trên mạch dùng nguồn 5V làm nuôi chính) hoặc là 3,3V (nếu trên mạch dùng nguồn 3,3V làm nguồn nuôi chính)

 
INTERNAL

Đặt lại mức điện áp tối đa  là 1,1 V (nếu sử dụng vi điều khiển ATmega328 hoặc ATmega168)
Đặt lại mức điện áp tối đa là 2,56V (nếu sử dụng vi điều khiển ATmega8)

 
INTERNAL1V1 Đặt lại mức điện áp tối đa là 1,1 V Chỉ có trên Arduino Mega
INTERNAL2V56 Đặt lại mức điện áp tối đa là 2,56 V Chỉ có trên Arduino Mega
EXTERNAL Đặt lại mức điện áp tối đa BẰNG với mức điện áp được cấp vào chân AREF Chỉ được cấp vào chân AREF một điện áp nằm trong khoảng 0-5V

 

Trả về

không

Cảnh báo

NẾU bạn sử dụng kiểu EXTERNAL cho hàm analogReference thì bạn BUỘC phải cấp nó một nguồn nằm trong khoảng từ 0-5V, và nếu bạn đã cấp một nguồn điện thỏa mãn điều kiện trên vào chân AREF thì bạn BUỘC phải gọi dòng lệnh analogReference(EXTERNAL) trước khi sử dụng analogRead() [NẾU KHÔNG MẠCH BẠN SẼ "die"]

Ngoài ra, bạn có thể sử dụng một điện trở 5kΩ đặt trước chân AREF rồi đặt nguồn điện ngoài (điện áp bạn muốn cấp vào chân AREF). Vì sao lại làm như vậy? Bời vì sao chỗ gắn chân AREF có một nội điện trở (điện trở có sẵn trong mạch) khoảng 32kΩ => sẽ tạo ra mạch giảm áp phiên bản dễ nhất => giảm điện thế gắn vào chân AREF => không hư nếu bạn có lỡ gắn nguồn hơn 5V smiley. Nếu bạn chưa hiểu rõ, bạn có thể xem hình sau.

Chân còn lại của điện trở bên phải nối với GND của Arduino bạn nhé! Cảm ơn Thái Sơn đã đóng góp!

Reference Tags: 
lên
15 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ả

Cách lưu trữ các biến số, mảng, chuỗi trong Arduino

Bạn có bao giờ tự hỏi những biến số, biến chuỗi hay biến mảng của mình được lâu ở đâu trên Arduino chưa? Trước kia, mình từng nghĩ rằng, nó được lưu ở vùng nhớ flash, nơi lưu trữ code mà chúng ta tải lên. Nhưng không, bình thường nó được lưu ở RAM!

Vậy RAM (viết tắt từ Random Access Memory) là gì? Nó là chữ viết tắt của một loại bộ nhớ chính của máy tính (Arduino cũng có thể xem là một máy tính). Như vậy nếu hết RAM, chương trình của bạn sẽ crash (hư – đỗ vỡ,…) một cách bất ngờ mà bạn không tài nào debug được (nếu bạn chưa đọc về bài này – hoặc những nội dung tương đương).

Vậy, thiết nghĩ, chúng ta cần nắm rõ hơn bản chất của vấn đề này. Nó thật thú vị phải không nào?

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

Tự làm game Snake - Rắn ăn mồi với Arduino - Ví dụ về việc sử dụng thư viện XỬ LÝ BẤT ĐỒNG BỘ

Nếu là một người theo dõi cộng đồng Arduino Việt Nam trong thời gian dài, bạn sẽ để ý rằng, mảng Game là một mảng nhận đươc khá ít sự quan tâm vì độ khó của nó. Điển hình là chỉ có bài viết hướng dẫn làm game Flappy bird và Cá ăn mồi của bạn nguoimegame. Tuy nhiên, hôm nay, khi mình cảm thấy đã đủ lượng kiến thức và lượng thư viện nền tảng mình đã viết trước đó, mình sẽ hướng dẫn các bạn cách viết một game đơn giản với Arduino.

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