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
34 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

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Nạp bootloader cho vi điều khiển trên Arduino

Bài viết này hướng dẫn các bạn nạp bootloader cho vi điều khiển trên mạch Arduino. Trên thực tế, vi điều khiển trên mạch Arduino đã có sẵn bootloader rồi nên bạn không cần thao tác gì cả. Tuy nhiên, với một số trường hợp cần nạp bootloader, bạn sẽ cần đọc bài viết này để biết cách thực hiện.

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

Làm sao để phá hỏng Arduino Uno R3

Có lẽ bạn sẽ ngạc nhiên khi đọc cái tiêu đề này. Thông thường, bạn sẽ đi tìm hiểu cách sử dụng Arduino, nhưng hôm nay, mình sẽ làm ngược lại, đó là tìm hiểu cách phá hủy chúng. Khi ta đã biết cách làm hỏng một thứ gì đó, ta sẽ có thể sử dụng chúng cẩn thận hơn, tránh những trường hợp đáng tiếc xảy ra. 

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