analogRead()

Giới thiệu

Nhiệm vụ của analogRead() là đọc giá trị điện áp từ một chân Analog (ADC). Trên mạch Arduino UNO có 6 chân Analog In, được kí hiệu từ A0 đến A5. Trên các mạch khác cũng có những chân tương tự như vậy với tiền tố "A" đứng đầu, sau đó là số hiệu của chân.

analogRead() luôn trả về 1 số nguyên nằm trong khoảng từ 0 đến 1023 tương ứng với thang điện áp (mặc định) từ 0 đến 5V. Bạn có thể điều chỉnh thang điện áp này bằng hàm analogReference().

Hàm analogRead() cần 100 micro giây để thực hiện.

Khi người ta nói "đọc tín hiệu analog", bạn có thể hiểu đó chính là việc đọc giá trị điện áp.

Cú pháp

analogRead([chân đọc điện áp]);

Ví dụ

int voltage = analogRead(A0);

Trong đó A0 là chân dùng để đọc điện áp.

Nếu bạn chưa kết nối chân đọc điện áp, hàm analogRead() sẽ trả về một giá trị ngẫu nhiên trong khoảng từ 0 đến 1023. Để khắc phục điều này, bạn phải mắc thêm một điện trở có trị số lớn (khoảng 10k ohm trở lên) hoặc một tụ điện 104 từ chân đọc điện áp xuống GND.

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

Bài 2: Attiny13 - Trợ thủ đắc lực của Arduino - Lập trình nó?

Attiny13 là một vi điều khiển cực kỳ nhỏ (chỉ có 8 chân) và 1 KB Flash. Tuy vậy, chúng ta vẫn có thể làm được rất nhiều thứ trên nó. Hôm nay, chúng ta tìm hiểu về con ATTiny13 này, sau đó là tìm hiêu cách lập trình để làm 1 đèn LED nhấp nháy!

Bài viết này cũng không quá khó, bạn chỉ cần tập trung vào các định nghĩa, bookmark bài viết này (để xem cách mắc mạch),...

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

MJPG Streamer vs Intel Galileo - Truyền hình ảnh từ webcam trong mạng LAN với Intel Galileo

Vấn đề truyền hình ảnh từ webcam trong mạng LAN không phải là một vấn đề mới trong việc lập trình nhúng. Ví dụ như trên Raspberry Pi, chúng ta hoàn toàn có thể sử dụng MJPG Streamer để làm được việc này. Tuy nhiên, khác với Raspberry Pi, Intel Galieo không đơn giản như vậy, bởi vì chưa có một bài viết hoàn chỉnh chỉ về vấn đề này trên cộng đồng Intel Galileo thế giới. Vì vậy, mình muốn đóng góp một phần nhỏ để các bạn có thể làm được điều này trên con Intel Galileo của mình (không phân biệt Intel Galileo Gen 1 hay Intel Galileo Gen 2 nhé).

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