Bài 4: Đọc điện áp điều chỉnh bởi biến trở

1. Giới thiệu

Bài ví dụ này sẽ giới thiệu cho các bạn cách đọc giá trị điện áp gây ra bởi một biến trở. Biến trở chỉ đơn giản chỉ là một điện trở có thể thay đổi được trị số. Mạch Arduino không đọc trực tiếp điện trở này mà đọc gián tiếp qua điện áp mà biến trở gây ra.

2. Cấu tạo biến trở

Phần màu vàng là một lớp điện trở. Cây kim màu xanh được đè chặt xuống phần điện trở này. Giả sử có dòng điện đi từ 1 đến 3 thì nó sẽ phải qua phần màu vàng (được tô đỏ) và đó chính là điện trở hiện tại của biến trở. Bạn chỉ việc vặn cây kim để tăng giảm độ dài của vùng màu đỏ, qua đó tăng giảm giá trị điện trở.

Vậy cực thứ 2 dùng để làm gì ? 

Giả sử đặt một hiệu điện thế vào 2 cực 1 và 2, sử dụng công thức định luật Ôm, ta có thể tính được điện áp lấy ra ở cực 3. Khi vặn biến trở, ta sẽ làm thay đổi điện trở ở phần màu đỏ và màu vàng (do điện tích của chúng thay đổi), qua đó làm thay đổi điện áp ở chân 3. Những cái volume vặn âm thanh to / nhỏ cũng có nguyên lí hoạt động tương tự như vậy.

Người ta gọi hệ 2 điện trở này là cầu phân áp, tức là phân chia điện áp nhờ một cầu điện trở.

3. Chuẩn bị

  • Mạch Arduino (trong bài sử dụng Arduino UNO R3).
  • Breadboard.
  • Biến trở (bạn có thể chọn loại bất kì).

4. Lắp mạch

Như bạn đã thấy, ta kết nối chân A0 (dây vàng) của mạch Arduino vào cực thứ 3 của biến trở để đọc điện áp.

Sơ đồ nguyên lí

5. Lập trình

Tham khảo bài viết Hướng dẫn nạp chương trình đơn giản cho Arduino Uno R3 nếu bạn chưa biết cách nạp chương trình.

void setup() {
  Serial.begin(9600);  //Mở cổng Serial để giap tiếp | tham khảo Serial
}

void loop() {
  int value = analogRead(A0);   //đọc giá trị điện áp ở chân A0 
                                //(value luôn nằm trong khoảng 0-1023)
  Serial.println(value);        //xuất ra giá trị vừa đọc
  
  int voltage;
  voltage = map(value,0,1023,0,5000);   //chuyển thang đo của value 
                                        //từ 0-1023 sang 0-5000 (mV)
  Serial.println(voltage);              //xuất ra điện áp (đơn vị là mV)
  
  Serial.println();     //xuống hàng
  delay(200);           //đợi 0.2 giây
}

Nào, bạn hãy bấm Ctrl + Shift + M để mở cửa sổ Serial Monitor và xem kết quả.

Giải thích

  • Dòng đầu tiên là giá trị điện áp đọc được bằng lệnh analogRead();
  • Dòng thứ 2 là giá trị điện áp (tính bằng mV) sau khi dùng hàm map() để chuyển đổi

Giả sử biến trở được sử dụng là loại 10K mắc như sơ đồ trong bài viết, giá trị do hàm analogRead() trả về là 150. Bạn hãy thử tìm cách tính xem biến trở hiện tại đang có giá trị là bao nhiêu Ohm ?

lên
28 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

Cách dùng Module L298N để điều khiển 4 động cơ DC

Trên cộng đồng đã có nhiều bài viết về động cơ, nhưng chưa có bài viết nào nói về cách để điều khiển cùng 1 lúc 4 động cơ mà chỉ dùng 1 module L298N. Nên hôm nay mình sẽ chia sẻ về cách để điều khiển cùng lúc 4 động cơ trên 1 module L298N.

lên
24 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ả

BIT MATH – Các phép toán thao tác trên bit

Với số học thông thường, bạn không thể lưu trữ 2 con số vào trong 1 con số khác. Nhưng với Bit Math, điều đó lại có thể. Đôi khi những con số thông thường như 123456789 lại mang trong đó tên của bạn cũng nên. Tôi có thể nén cả 1 đoạn tin nhắn thành những con số kiểu như 235 46 36 346 34 235,... và đấy chỉ là một phần nhỏ ứng dụng của Bit Math. Và để ứng dụng được nó, trước tiên, bạn phải biết cách sử dụng nó....

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

Bài 4: Cập nhật firmware cho Intel Galileo

Trong Intel Galileo IDE, nhà sản xuất đã cung cấp sẵn firmware. Tùy vào phiên bản IDE, bạn có thể nhận được các bản firmware mới của Intel Galileo qua IDE. Bài viết này sẽ hướng dẫn cho bạn cách cập nhật firmware cho Intel Galileo qua IDE.

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