Tìm Hiểu Mạch Cảm Biến Dòng Điện, Điện Áp INA219 Với Arduino

INA219 Cảm Biến Dòng Điện 3.2A được sử dụng để đo điện áp và dòng điện DC của các thiết bị với độ chính xác cao kết hợp với độ phân giải 12 bit, sai số ± 1%. Bênh cạnh đó, mạch cảm biến này sử dụng giao tiếp I2C giúp chúng ta dễ dàng kết nối với vi điều khiển để lập trình, thích hợp ứng dụng đo dòng, đo áp.

Thông số kỹ thuật

  • INA219 có độ chính xác ± 1% ở -40 độ C, ở nhiệt độ 85oC độ lệch tối đa 100 uV
  • Phạm vi điện áp từ 0 ~ 26 VDC
  • Dòng đo: lên đến 3.2A
  • Điện áp sử dụng: 3 ~ 5 VDC
  • Kích Thước: 25.5×22.3 mm
  • Giao tiếp: I2C 

Sơ đồ chân

INA219 pinout
  • SDA (Serial Data): Dùng để truyền dữ liệu theo giao thức I2C.
  • SCL (Serial Clock): Dùng để đồng bộ hóa truyền dữ liệu I2C.
  • GND (Ground): Nối với đất.
  • VCC (Power): Nguồn cấp điện cho module 3.3 ~ 5V.
  • Vin+ (Positive Voltage): Kết nối đến nguồn điện dương (dương của mạch đo).
  • Vin- (Negative Voltage): Kết nối đến nguồn điện âm (âm của mạch đo).
  • A0, A1, (Address Configuration): Các chân để cấu hình địa chỉ I2C của INA219.

Sơ đồ nguyên lý

Mô-đun INA219 được chế tạo với chip INA219, một số điện trở và tụ điện giúp giảm nhiễu hoặc các tín hiệu điện không mong muốn.

Địa chỉ I2C

INA219 sử dụng giao thức I2C để giao tiếp với bộ vi điều khiển và mỗi thiết bị trên bus I2C phải có một địa chỉ duy nhất. Địa chỉ I2C mặc định cho INA219 là 0x40 (hoặc 1000000 ở dạng nhị phân).

Địa chỉ có thể được thay đổi nếu bạn muốn sử dụng nhiều cảm biến INA219 trên cùng một bus I2C. INA219 cho phép tối đa 16 địa chỉ I2C khác nhau, từ 0x40 đến 0x4F. Điều này đạt được bằng cách định cấu hình trạng thái của hai chân địa chỉ A0 và A1. Trên mô-đun INA219, hai chân A0 và A1 này thường được tìm thấy cùng với điểm hàn hoặc jumper. Theo mặc định, chúng được kết nối với Ground (GND) tương ứng với địa chỉ mặc định 0x40.

A1 A0 Slave Address (Hex)
GND GND 0x40
GND   0x41
GND SDA 0x42
GND SCL 0x43
GND   0x44
    0x45
SDA   0x46
SCL   0x47
SDA GND 0x48
SDA   0x49
SDA SDA 0x4A
SDA SCL 0x4B
SCL GND 0x4C
SCL   0x4D
SCL SDA 0x4E
SCL SCL 0x4F

Bạn có thể thay đổi địa chỉ I2C bằng cách thay đổi kết nối của các chân này thành GND, SDA, SCL hoặc để chúng nổi (không được kết nối). Chẳng hạn, nếu bạn kết nối chân A0 với SDA và A1 với GND, địa chỉ sẽ là 0x48.

Vì vậy, nếu muốn có nhiều mô-đun INA219 trong cùng một hệ thống, bạn chỉ cần đặt một địa chỉ duy nhất cho mỗi mô-đun bằng cách định cấu hình các chân A0 và A1 cho phù hợp. Hãy nhớ rằng, bất cứ khi nào bạn thay đổi địa chỉ I2C, bạn phải cập nhật địa chỉ trong phần mềm của bộ vi điều khiển để nó biết vị trí tìm từng INA219 trên bus I2C.

Địa chỉ Thanh ghi và Tính toán Giá trị

INA219 sử dụng giao tiếp I2C để đọc và ghi dữ liệu. Nó có một số thanh ghi quan trọng lưu trữ thông tin liên quan đến dòng điện, điện áp và hiệu chuẩn. Dưới đây là một số thanh ghi chính và chức năng của chúng trong INA219:

  1. Thanh Ghi Cấu Hình / Configuration Register (Địa chỉ 0x00):
    • Thanh ghi này được sử dụng để cấu hình các thiết lập của INA219 như chế độ hoạt động, dải PGA (khuếch đại có thể lập trình), và dải điện áp bus.
  2. Thanh Ghi Điện Áp Shunt / Shunt Voltage Register (Địa chỉ 0x01):
    • Thanh ghi này lưu trữ dữ liệu điện áp shunt thô.
  3. Thanh Ghi Điện Áp Bus / Bus Voltage Register (Địa chỉ 0x02):
    • Thanh ghi này lưu trữ dữ liệu điện áp bus thô.
  4. Thanh Ghi Công Suất / Power Register (Địa chỉ 0x03):
    • Thanh ghi này lưu trữ dữ liệu công suất thô.
  5. Thanh Ghi Dòng Điện / Current Register (Địa chỉ 0x04):
    • Thanh ghi này lưu trữ dữ liệu dòng điện đã tính toán.
  6. Thanh Ghi Hiệu Chuẩn / Calibration Register (Địa chỉ 0x05):
    • Thanh ghi này được sử dụng để lưu trữ giá trị hiệu chuẩn, cần thiết để chuyển đổi giá trị ADC (Bộ chuyển đổi Tương tự - Analog-to-Digital Converter) thô thành giá trị thực của dòng điện và điện áp.

Để tính toán giá trị dòng điện và điện áp, bạn thường tuân theo các bước sau:

Hiệu Chuẩn:

  1. Đặt thanh ghi hiệu chuẩn (0x05) với giá trị phù hợp.
    • Giá trị hiệu chuẩn được tính dựa trên dòng điện tối đa dự kiến và giá trị điện trở shunt. Công thức thường là:
      Hiệu Chuẩn = 0.04096 / (Dòng_LSB * Điện Trở Shunt)
      Calibration = 0.04096 / (Current_LSB * Shunt Resistance) //EN
      
      Trong đó Dòng_LSB là bit ít có ý nghĩa nhất của thanh ghi dòng điện.

Đọc Dữ Liệu:

  1. Đọc thanh ghi Điện Áp Shunt (0x01) để lấy giá trị điện áp shunt thô.
  2. Đọc thanh ghi Điện Áp Bus (0x02) để lấy giá trị điện áp bus thô.
  3. Đọc thanh ghi Dòng Điện (0x04) để lấy giá trị dòng điện thô.

Tính toán Dòng Điện và Điện Áp:

  1. Tính toán điện áp shunt thực sử dụng công thức:
    Điện Áp Shunt = Giá trị Điện Áp Shunt Thô * Điện Áp Shunt LSB
    Shunt Voltage = Raw Shunt Voltage * Shunt Voltage LSB //EN
    
  2. Tính toán điện áp bus thực sử dụng công thức:
    Điện Áp Bus = Giá trị Điện Áp Bus Thô * Điện Áp Bus LSB
    Bus Voltage = Raw Bus Voltage * Bus Voltage LSB //EN
    
  3. Tính toán dòng điện thực sử dụng công thức:
    Dòng Điện = Giá trị Dòng Điện Thô * Dòng Điện LSB
    Current = Raw Current * Current LSB //EN
    

Ứng dụng

INA219 là một linh kiện hữu ích trong việc đo lường dòng điện và điện áp trong các ứng dụng như:

  1. Đo Dòng và Điện Áp của Thiết Bị Điện Tử:
    • Sử dụng INA219 để đo dòng điện và điện áp của các thiết bị điện tử như Arduino, Raspberry Pi, hoặc các mạch điện tử khác.
  2. Đo Dòng Sạc và Điện Áp Pin:
    • INA219 có thể được sử dụng để đo lường dòng sạc và điện áp của pin trong các dự án di động hoặc IoT.
  3. Quản lý Năng Lượng Tiêu Thụ:
    • Sử dụng INA219 để đo lường năng lượng tiêu thụ của các thiết bị để phân tích và quản lý hiệu suất năng lượng.
  4. Ứng Dụng IoT (Internet of Things):
    • INA219 có thể tích hợp vào các dự án IoT để đo lường dòng và điện áp trong thời gian thực, giúp theo dõi và quản lý thiết bị từ xa.
  5. Dự Án Máy In 3D và CNC:
    • INA219 có thể được tích hợp để đo lường dòng điện và điện áp của các phần tử trong máy in 3D hoặc máy CNC để theo dõi và kiểm soát quá trình làm việc.
  6. Quản Lý Năng Lượng trong Dự Án Solar:
    • Trong các dự án sử dụng nguồn năng lượng mặt trời, INA219 có thể giúp đo lường và quản lý lượng điện năng được sinh ra và tiêu thụ.
  7. Đo Lường Hiệu Suất của Thiết Bị Điện:
    • INA219 có thể được tích hợp vào các hệ thống để đo lường hiệu suất năng lượng và xác định các điểm cải tiến có thể được thực hiện.

Thư viện

Một trong những thư viện INA219 khá phổ biến là thư viện do Adafruit phát hành, bạn có thể tải xuống TẠI ĐÂY.

Giải nén tệp thư viện và sao chép nó vào thư mục thư viện của Cài đặt Arduino IDE.

Bạn cũng có thể thực hiện điều này bằng cách mở Arduino IDE và điều hướng đến "Sketch" -> "Include Library" -> "Manage Libraries". Tìm kiếm "INA219" và cài đặt thư viện được tạo bởi Adafruit.

Sơ đồ mạch

Kết nối Arduino như hình:
Bạn cần một số thành phần khác ngoài Arduino và INA219:
  • Điện trở 200 ohm
  • LED 5mm
  • Pin 9 volt.
Sắp xếp như hình sau:

Code

#include <Adafruit_INA219.h>

Adafruit_INA219 ina219;

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    delay(10);
  }

  if (!ina219.begin()) {
    Serial.println("Không tìm thấy INA219!");
    while (1);
  }
  Serial.println("INA219 đã được kết nối!");
}

void loop() {
  float shuntVoltage = ina219.getShuntVoltage_mV();
  float busVoltage = ina219.getBusVoltage_V();
  float current_mA = ina219.getCurrent_mA();
  float power_mW = ina219.getPower_mW();

  Serial.print("Voltage: ");
  Serial.print(busVoltage);
  Serial.print(" V, ");
  Serial.print("Current: ");
  Serial.print(current_mA);
  Serial.print(" mA, ");
  Serial.print("Power: ");
  Serial.print(power_mW);
  Serial.println(" mW");

  delay(1000);
}

Output

Nhận xét

Mới hơn Cũ hơn