Arduino UNO R4 Potentiometer (Biến Trở)

Hướng dẫn này sẽ chỉ bạn cách sử dụng Arduino Uno R4 với potentiometer (biến trở). Cụ thể, chúng ta sẽ học:

Arduino UNO R4 chiết áp

Phần Cứng Cần Thiết

1×Arduino UNO R4 WiFi hoặc Arduino UNO R4 Minima
1×(Tùy chọn) DIYables STEM V4 IoT, tương thích với Arduino Uno R4 WiFi
1×Arduino UNO R4 Minima (Thay thế)
1×Cáp USB Type-C
1×Potentiometer (Biến Trở)
1×Alternatively, 10k Ohm Trimmer Potentiometer
1×(Thay thế) Bộ Kit Potentiometer
1×(Thay thế) Module Potentiometer với Núm Xoay
1×breadboard
1×Dây Jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4
1×(Khuyến nghị) Breadboard Shield for Arduino UNO R4
1×(Khuyến nghị) Enclosure for Arduino UNO R4
1×(Khuyến nghị) Power Splitter for Arduino UNO R4
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V4 IoT Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Potentiometer

Potentiometer xoay, còn được gọi là cảm biến góc xoay, được sử dụng để thay đổi cài đặt thủ công như âm lượng stereo, độ sáng đèn, hoặc mức zoom của dao động ký.

chiết áp sơ đồ chân

Sơ Đồ Chân

Potentiometer thường có ba chân.

  • Chân GND: kết nối với GND (0V)
  • Chân VCC: kết nối với VCC (5V hoặc 3.3V)
  • Chân Output: gửi điện áp tới chân input của Arduino UNO R4.
chiết áp sơ đồ chân

※ Lưu ý:

Chân GND và chân VCC có thể hoán đổi cho nhau.

Nguyên Lý Hoạt Động

Trục của potentiometer có thể xoay từ 0° (gần nhất với GND) đến góc tối đa (gần nhất với chân VCC), được gọi là ANGLE_MAX.

Điện áp tại chân output thay đổi từ điện áp tại GND đến điện áp tại VCC. Điện áp output thay đổi trực tiếp theo góc mà trục được xoay.

  • Khi góc là 0 độ, điện áp tại chân output là 0 volt.
  • Khi góc bằng ANGLE_MAX, điện áp tại chân output bằng với điện áp VCC.
  • Nếu góc nằm giữa 0° và ANGLE_MAX, output_voltage = angle × VCC / ANGLE_MAX

※ Lưu ý:

Giá trị của ANGLE_MAX thay đổi tùy thuộc vào nhà sản xuất. Thường thì chúng ta không quan tâm nhiều đến giá trị ANGLE_MAX trừ khi cần tính góc xoay (tham khảo phần các trường hợp sử dụng).

how chiết áp works

Arduino UNO R4 - Potentiometer Xoay

Các chân A0 đến A5 trên Arduino UNO R4 có thể được cấu hình làm đầu vào analog. Các chân này chuyển đổi điện áp, dao động từ 0 volt đến VCC, thành số nguyên từ 0 đến 1023. Những số này được gọi là giá trị ADC hoặc giá trị analog.

Bằng cách kết nối chân output của potentiometer với chân đầu vào analog trên Arduino UNO R4, chúng ta có thể lập trình Arduino để đọc giá trị ADC và chuyển đổi thành số hữu dụng.

Giá trị mà Arduino UNO R4 nhận được không phải là góc hay điện áp; mà là số nguyên dao động từ 0 đến 1023.

Chúng ta lấy số từ chân đầu vào analog và chuyển đổi thành số khác. Bây giờ, hãy xem cách sử dụng.

Các Trường Hợp Sử Dụng

  • Chuyển đổi giá trị ADC thành góc.
  • Chuyển đổi giá trị ADC thành điện áp
  • Chuyển đổi giá trị ADC thành giá trị có thể điều khiển (như âm lượng stereo, độ sáng, hoặc tốc độ motor). Đây là trường hợp được sử dụng thường xuyên nhất.

Thay Đổi Phạm Vi

TỪ THÀNH
Gócngười dùng xoayANGLE_MAX
Điện áptừ chân potentiometer 0VVCC
Giá trị ADCArduino UNO R4 đọc 01023
Giá trị khácArduino UNO R4 chuyển đổi VALUE_MINVALUE_MAX

Sơ Đồ Đấu Nối

Arduino UNO R4 chiết áp sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Cách Lập Trình Cho Potentiometer

  • Sử dụng hàm analogRead() để đọc giá trị từ chân được kết nối với chân output của potentiometer.
adc_value = analogRead(A0);
  • Chuyển đổi giá trị ADC thành góc của potentiometer bằng hàm map().
angle = map(adc_value, 0, 1023, 0, ANGLE_MAX);
  • Chuyển đổi giá trị ADC thành điện áp:
voltage = map(adc_value, 0, 1023, 0, VCC);
  • Chuyển đổi giá trị ADC thành mức có thể quản lý (ví dụ, âm lượng stereo, độ sáng, hoặc tốc độ DC motor).
value = map(adc_value, 0, 1023, VALUE_MIN, VALUE_MAX);
  • Ví dụ, điều chỉnh độ sáng của LED. Độ sáng LED có thể được điều khiển bằng giá trị PWM từ 0 (luôn TẮT) đến 255 (luôn BẬT). Do đó, chúng ta có thể ánh xạ giá trị ADC thành độ sáng LED (từ TẮT đến sáng nhất) như sau:
brightness = map(adc_value, 0, 1023, 0, 255);

※ Lưu ý:

Hàm map() được sử dụng để chuyển đổi giá trị analog thành giá trị kiểu int hoặc long. Nếu bạn cần làm việc với giá trị kiểu float, bạn nên sử dụng hàm floatMap().

Hàm floatMap():

float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }

Mã Nguồn Arduino UNO R4

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino-uno-r4/arduino-uno-r4-potentiometer */ float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { // Map a float value from one range to another. return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } void setup() { // Begin serial communication with a baud rate of 9600: Serial.begin(9600); } void loop() { // Retrieve analog value from pin A0: int adc_value = analogRead(A0); // Convert the analog value to a voltage (0-5V range): float voltage = floatMap(adc_value, 0, 1023, 0, 5); // Output the analog value and corresponding voltage to the serial monitor: Serial.print("Analog: "); Serial.print(adc_value); Serial.print(", Voltage: "); Serial.println(voltage); // Wait for a second before repeating the loop: delay(1000); }

Các Bước Thực Hiện

Thực hiện theo các hướng dẫn từng bước sau:

  • Nếu đây là lần đầu bạn sử dụng Arduino Uno R4 WiFi/Minima, hãy tham khảo hướng dẫn về Arduino UNO R4 - Cài Đặt Phần Mềm.
  • Kết nối potentiometer với Arduino Uno R4 theo sơ đồ được cung cấp.
  • Kết nối bo mạch Arduino Uno R4 với máy tính bằng cáp USB.
  • Khởi động Arduino IDE trên máy tính.
  • Chọn bo mạch Arduino Uno R4 phù hợp (ví dụ: Arduino Uno R4 WiFi) và cổng COM.
  • Sao chép mã nguồn ở trên và mở bằng Arduino IDE
  • Nhấn nút Upload trong Arduino IDE để tải mã lên Arduino UNO R4
tải mã lên Arduino IDE
  • Mở Serial Monitor
  • Xoay potentiometer
  • Kiểm tra kết quả trên Serial Monitor
COM6
Send
Analog: 0, Voltage: 0.00 Analog: 0, Voltage: 0.00 Analog: 126, Voltage: 0.62 Analog: 281, Voltage: 1.37 Analog: 517, Voltage: 2.53 Analog: 754, Voltage: 3.69 Analog: 906, Voltage: 4.43 Analog: 1023, Voltage: 5.00 Analog: 1023, Voltage: 5.00
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.

Tham Khảo Hàm

Bình Luận