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

Xe điều khiển bằng tay game Dual Shock3 thông qua Bluetooth

Vừa bắt đầu với arduino được hơn 1 tuần, có tham khảo qua các nguồn từ "trung ương đến địa phương", nắm được 1 số kiến thức cơ bản nên mình bắt đầu thực hiện 1 sản phẩm để đúc kết kinh nghiệm. Trong số đó thì xe điều khiển là dễ nhất. Kết hợp với cái tay game ps3 nằm lăn lóc ở góc nhà. Thế là có 1 chiếc xe điều khiển từ xa. Bắt đầu nhé.

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

Làm xe điều khiển từ xa bằng Bluetooth - Điều khiển bằng Android với App Inventor

Mình rất thích điện tử nhưng không học về ngành điện tử. Rất may là có Adruino, rồi có cộng đồng Adruino Việt Nam, đặc biệt là sự nhiệt tình của tất cả các bạn trong cộng đồng, mình đã làm được 1 chiếc xe điều khiển từ xa. Cho con chơi là lí do phụ thôi, còn tìm hiểu, học tập là chính. Hôm nay chia sẻ cùng các bạn, cùng gửi lời cảm ơn đến tất cả các bạn trong cộng đồng. Có bạn thì giúp đỡ trực tiếp, có bạn thì viết bài, rồi có bạn thì bình luận, nêu câu hỏi. Tất cả đều có giá trị đối với mình.

Ngại viết bài nên mình đăng dưới dạng ảnh.

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

[Intel Galileo] Vài mẹo với Intel Galileo và hệ điều hành Linux Yocto (iot-devkit)

Trên đây là một số mẹo nhỏ giúp bạn có thể làm việc hiệu quả hơn với hệ điều hành Linux Yocto (iot-devkit) trên Galileo mà mình đã tìm hiểu được. Bài viết này cũng tổng hợp lại các bài viết trước đó đã được đăng tại Arduino.vn

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

Các rắc rối thường gặp khi làm việc với Arduino

Trong bài viết này, mình sẽ giới thiệu cho các bạn các rắc rối thường gặp khi làm việc với Arduino. Mặc dù tôi đã nghiên cứu Arduino được khá lâu nhưng thỉnh thoảng tôi cũng hay gặp phải chúng. Bài viết có thể sẽ được cập nhật dần để bao quát hết được các xu hướng mắc lỗi thường gặp cũng như những lỗi hay hiện tượng "từ trên trời rơi xuống" của người mới nghiên cứu Arduino.

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