Hướng dẫn sử dụng Cảm Biến Điện Áp 0-25V với Arduino

Cảm Biến Điện Áp là sản phẩm mạch phát hiện điện áp thích hợp sử dụng cho arduino. Thường được sử dụng trong các ứng dụng lập trình hiển thị điện áp, phát hiện điện áp lên LCD

Thông số kĩ thuật:

  • Kích thước: 25 x 13 mm
  • Điện áp đầu vào không lớn hơn 5Vx5 = 25 V (nếu sử dụng 3.3V, điện áp đầu vào không lớn hơn 3.3Vx5 = 16.5 V).
  • Điện áp tối thiểu của đầu vào điện áp module phát hiện là 0.00489Vx5 = 0.02445 V.
  • Dải điện áp đầu vào: 0 - 25 V DC
  • Điện áp phạm vi phát hiện: DC 0.02445V
  • Điện áp analog độ phân giải: 0.00489 V

Tổng quan về cảm biến điện áp:

Về bản chất, Cảm biến điện áp là một mạch chia điện áp đơn giản bao gồm hai điện trở – không có gì lạ mắt.

Sơ đồ của Cảm biến áp điện áp được minh họa trong hình ảnh sau.

Hai điện trở trong mạch. Điện trở (R1) gần với điện áp đầu vào, có giá trị 30 KΩ và điện trở (R2) gần GND (nối đất), có giá trị 7,5 KΩ. Điện áp rơi trên R2 là mạch chia áp. Tín hiệu này được ký hiệu trên cảm biến là chữ S.

Cảm Biến Điện Áp 25VDC dựa trên nguyên tắc thiết kế bộ chia điện trở, nó có thể làm cho điện áp đầu vào của đầu nối đầu đỏ nhỏ hơn 5 lần. Điện áp đầu vào tương tự Arduino lên đến 5 VDC. Điện áp đầu vào của mạch phát hiện điện áp không lớn hơn 5Vx5 = 25V (nếu sử dụng hệ thống 3.3V, điện áp đầu vào không lớn hơn 3.3Vx5 = 16.5V).

Đọc giá trị điện áp từ cảm biến

Để đọc cảm biến điện áp hoặc bất kỳ mạch chia áp nào. Các bạn có thể sử dụng công thức sau.

Công thức mạch chia áp giả sử rằng đã biết ba giá trị của mạch trên: điện áp đầu vào (Vin) và cả hai giá trị điện trở (R1 và R2). Với những giá trị đó, các bạn có thể sử dụng công thức này để tìm điện áp đầu ra (Vout):

Tuy nhiên, trong trường hợp mình sẽ đo điện áp đầu ra (Vout) từ mạch chia áp bằng các chân ADC của Arduino. Do đó, nên mình sẽ không biết giá trị Vin là bao nhiêu.

Hãy sử dụng công thức bên dưới để tìm điện áp đầu vào (Vin).

Sơ đồ chân

VCC Được nối với nguồn điện áp dương bạn cần đo. Dải điện áp là từ 0 đến 25V.

GND Được nối với nguồn điện áp âm.

S là chân đầu ra tín hiệu của module cảm biến. Thường được nối với các chân đầu vào Analog trên Arduino hoặc VDK.

+ NC.

Chân nối đất chung.

Kết nối cảm biến với Arduino

  • Kết nối chân GND của cảm biến với chân GND trên Arduino.
  • Kết nối chân đầu ra (OUT hoặc SIG) của cảm biến với một chân analog trên Arduino (ví dụ: A0).

Lập trình Arduino

void setup() {
  Serial.begin(9600); // Baud rate 9600
}

void loop() {
  int sensorValue = analogRead(A0); // Đọc giá trị analog từ chân A0
  float voltage = sensorValue * (5.0 / 1023.0); // Chuyển giá trị analog sang điện áp (0-5V)
  float actualVoltage = voltage * (25.0 / 5.0); // Chuyển tỉ lệ từ 0-5V sang 0-25V

  Serial.print("Raw Value: ");
  Serial.print(sensorValue);
  Serial.print("   Voltage: ");
  Serial.print(voltage);
  Serial.print("V   Actual Voltage: ");
  Serial.print(actualVoltage);
  Serial.println("V");

  delay(1000); // Đợi 1 giây trước khi đọc lại giá trị
}

Giải thích code

  1. analogRead(A0): Đọc giá trị analog từ chân A0.
  2. sensorValue * (5.0 / 1023.0): Chuyển giá trị analog sang điện áp (0-5V).
  3. voltage * (25.0 / 5.0): Chuyển tỉ lệ từ 0-5V sang 0-25V.
  4. Kết quả được hiển thị qua cổng Serial để bạn có thể theo dõi giá trị trên Serial Monitor trong Arduino IDE.

Lập trình hiển thị điện áp đo được lên LCD

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); 

void setup() {
  Serial.begin(9600); // Baud rate 9600
  lcd.init();                    
  lcd.backlight();
}

void loop() {
  lcd.setCursor(0,0);
  lcd.print("truongcongly.com");

  int sensorValue = analogRead(A0); // Đọc giá trị analog từ chân A0
  float voltage = sensorValue * (5.0 / 1023.0); // Chuyển giá trị analog sang điện áp (0-5V)
  float actualVoltage = voltage * (25.0 / 5.0); // Chuyển tỉ lệ từ 0-5V sang 0-25V

  Serial.print("Raw Value: ");
  Serial.print(sensorValue);
  Serial.print("   Voltage: ");
  Serial.print(voltage);
  Serial.print("V   Actual Voltage: ");
  Serial.print(actualVoltage);
  Serial.println("V");
  lcd.setCursor(4,1);
  lcd.print("V: ");
  lcd.print(actualVoltage,2); // (float)In với 2 chữ số thập phân

  delay(1000); // Đợi 1 giây trước khi đọc lại giá trị
}

Video

Nhận xét

Mới hơn Cũ hơn