Arduino đo điện áp

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách sử dụng Arduino để đo điện áp từ 0V đến 25V bằng cảm biến điện áp. Cụ thể, chúng ta sẽ trình bày:

cảm biến điện áp Arduino

Phần cứng cần chuẩn bị

1×Arduino Uno R3
1×USB 2.0 cable type A/B (for USB-A PC)
1×USB 2.0 cable type C/B (for USB-C PC)
1×Voltage Sensor
1×dây jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino Uno
1×(Khuyến nghị) Breadboard Shield for Arduino Uno
1×(Khuyến nghị) Enclosure for Arduino Uno
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

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

Về Cảm Biến Điện Áp

Một cảm biến điện áp là một mạch chia điện áp được lắp ráp sẵn, sử dụng các điện trở có độ chính xác cao để đo điện áp một cách đơn giản. Nó bao gồm hai điện trở: 30 kΩ và 7,5 kΩ. Với điện áp tham chiếu 5 V cho ADC, cảm biến có thể đo các điện áp từ 0 đến 25 V một chiều. Khi điện áp tham chiếu của ADC là 3,3 V, cảm biến có thể đo các điện áp từ 0 đến 16,5 V một chiều.

Sơ đồ chân

Một cảm biến điện áp có hai bộ chân:

  • Giao diện đầu vào (kết nối với các điểm bạn muốn đo điện áp):
    • Chân VCC: Đây là chân dương. Nối nó với điểm có điện áp cao hơn.
    • Chân GND: Đây là chân âm. Nối nó với điểm có điện áp thấp hơn.
  • Giao diện đầu ra (kết nối với Arduino):
    • Chân Vout (S): Đây là chân tín hiệu. Nối nó với một chân analog trên Arduino.
    • Chân NC (+): Không được sử dụng. Để nó không được kết nối.
    • Chân GND (-): Đây là chân đất. Nối nó với GND (0V) trên Arduino.
    bố trí chân điện áp
    image source: diyables.io

Sơ đồ đấu dây

sơ đồ nối dây cảm biến điện áp Arduino

This image is created using Fritzing. Click to enlarge image

Mã Arduino

/* * Mã Arduino này được phát triển bởi newbiely.vn * Mã Arduino 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/arduino-measure-voltage */ // define analog input #define ANALOG_IN_PIN A0 #define REF_VOLTAGE 5.0 #define ADC_RESOLUTION 1024.0 #define R1 30000.0 // resistor values in voltage sensor (in ohms) #define R2 7500.0 // resistor values in voltage sensor (in ohms) void setup() { Serial.begin(9600); } void loop() { // read the analog input int adc_value = analogRead(ANALOG_IN_PIN); // determine voltage at adc input float voltage_adc = ((float)adc_value * REF_VOLTAGE) / ADC_RESOLUTION; // calculate voltage at the sensor input float voltage_in = voltage_adc * (R1 + R2) / R2; // print results to serial monitor to 2 decimal places Serial.print("Measured Voltage = "); Serial.println(voltage_in, 2); delay(500); }

Hướng dẫn từng bước

  • Kết nối Arduino với cảm biến điện áp
  • Kết nối Arduino với PC bằng cáp USB
  • Mở Arduino IDE, chọn board và cổng đúng
  • Sao chép mã ở trên và mở bằng Arduino IDE
  • Nhấp vào nút Tải lên trên Arduino IDE để tải mã lên Arduino
  • Kiểm tra bằng cách đo 5V và 3,3V trên Arduino
  • Xem kết quả trên Serial Monitor.
COM6
Send
Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 3.39 Measured Voltage = 3.39 Measured Voltage = 3.39 Measured Voltage = 3.39
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Bạn có thể nhận thấy kết quả đo không chính xác hoặc khác biệt đáng kể so với giá trị thực tế. Đừng đổ lỗi cho mô-đun cảm biến điện áp về điều này. Giá trị đo được có thể bị lệch do tham chiếu điện áp mặc định là 5V, vốn có thể không ổn định và phụ thuộc vào nguồn cấp điện. Dưới đây là một số giải pháp cho vấn đề này:

  • Sử dụng nguồn cấp có điện áp đủ cho Arduino. Bạn có thể xác nhận điều này bằng cách sử dụng đồng hồ đo điện áp để kiểm tra xem chân 5V trên Arduino có cho ra 5V hay không.
  • Sử dụng tham chiếu điện áp ngoài 3,3V. Tuy nhiên, với phương pháp này, bạn chỉ có thể đo được các điện áp từ 0 đến 16,5V DC.

Đo điện áp với tham chiếu 3,3 V

Để sử dụng phương pháp này, bạn cần thiết lập cả phần cứng và mã nguồn. Đối với phần cứng, kết nối pin AREF của Arduino với 3.3V như được thể hiện trong sơ đồ bên dưới.

Arduino đo điện áp - sơ đồ nối dây

This image is created using Fritzing. Click to enlarge image

Sau đó, hãy sử dụng mã sau:

/* * Mã Arduino này được phát triển bởi newbiely.vn * Mã Arduino 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/arduino-measure-voltage */ #define ANALOG_IN_PIN A0 #define REF_VOLTAGE 3.3 #define ADC_RESOLUTION 1024.0 #define R1 30000.0 // resistor values in voltage sensor (in ohms) #define R2 7500.0 // resistor values in voltage sensor (in ohms) void setup() { Serial.begin(9600); analogReference(EXTERNAL); } void loop() { // read the analog input int adc_value = analogRead(ANALOG_IN_PIN); // determine voltage at adc input float voltage_adc = ((float)adc_value * REF_VOLTAGE) / ADC_RESOLUTION; // calculate voltage at the sensor input float voltage_in = voltage_adc * (R1 + R2) / R2; // print results to serial monitor to 2 decimal places Serial.print("Measured Voltage = "); Serial.println(voltage_in, 2); delay(500); }

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ài hướng dẫn liên quan