ماژول اندازه‌گیری جریان و ولتاژ INA219

سنسور مانیتورینگ توان دقیق برای پروژه‌های الکترونیکی

ماژول INA219: راه‌حل هوشمند و دقیق برای مانیتورینگ جریان، ولتاژ و توان الکتریکی

ماژول اندازه‌گیری جریان و ولتاژ INA219 یک راه‌حل یکپارچه و با دقت بالا برای اندازه‌گیری همزمان جریان، ولتاژ و محاسبه توان در مدارهای DC است. این ماژول مبتنی بر تراشه INA219 از Texas Instruments بوده و با رابط I2C امکان نظارت دقیق بر مصرف انرژی در پروژه‌های باتری‌محور، سیستم‌های خورشیدی، رباتیک و الکترونیک قدرت را فراهم می‌کند.


ویژگی‌های حرفه‌ای و قابلیت‌های منحصربه‌فرد

  • اندازه‌گیری همزمان: خواندن ولتاژ باس، ولتاژ شنت و جریان به صورت همزمان.

  • محاسبه خودکار توان: محاسبه توان لحظه‌ای (Power) توسط خود تراشه بدون نیاز به پردازش اضافه.

  • دقت بالا: دقت اندازه‌گیری جریان تا ±0.5% (با کالیبراسیون مناسب).

  • رابط I2C: ارتباط ساده با آردوینو و سایر میکروکنترلرها با تنها دو سیم.

  • گستره وسیع: پشتیبانی از ولتاژهای تا +26V و جریان‌های تا ±3.2A (قابل افزایش).

  • حالت Sleep: قابلیت کاهش مصرف انرژی در حالت استندبای.


مشخصات فنی دقیق

پارامتر مشخصات فنی
تراشه اصلی Texas Instruments INA219
رابط ارتباطی I2C (آدرس پیش‌فرض: ۰x۴۰، قابل تغییر به ۰x۴۱ تا ۰x۴۴)
ولتاژ باس قابل اندازه‌گیری ۰ تا ۲۶ ولت DC
ولتاژ شنت قابل اندازه‌گیری ±۳۲۰ میلی‌ولت
جریان قابل اندازه‌گیری ±۳.۲ آمپر (با شنت ۰.۱ اهم داخلی) – قابل افزایش
دقت جریان ±۰.۵٪ (در دمای ۲۵°C، پس از کالیبراسیون)
رزولوشن ADC ۱۲ بیت (حالت پیش‌فرض) – قابل تنظیم تا ۱۵ بیت
ولتاژ تغذیه ۳ تا ۵.۵ ولت (برای مدار تراشه)
فرکانس I2C تا ۳.۴ مگاهرتز (معمولاً ۱۰۰kHz یا ۴۰۰kHz استفاده می‌شود)
مقاومت شنت داخلی ۰.۱ اهم، ۱٪ دقت، ۲ وات
پین‌های مهم Vin+، Vin- (برای ولتاژ باس)، V+، V- (برای جریان)

کاربردهای تخصصی و صنعتی

  1. مانیتورینگ باتری: اندازه‌گیری ولتاژ، جریان شارژ/دشارژ و ظرفیت باقی‌مانده باتری‌های لیتیوم، سرب اسید.

  2. سیستم‌های خورشیدی: نظارت بر تولید پنل خورشیدی، مصرف بار و راندمان سیستم.

  3. پروژه‌های رباتیک: اندازه‌گیری مصرف موتورها، سرووها و کل سیستم برای بهینه‌سازی.

  4. منبع تغذیه آزمایشگاهی: ساخت پاورساپلای قابل مانیتورینگ.

  5. الکترونیک قدرت: نظارت بر مصرف اینورترها، درایورهای موتور و سیستم‌های LED.

  6. پروژه‌های صرفه‌جویی انرژی: آنالیز مصرف دستگاه‌های مختلف.

  7. شارژرهای هوشمند: کنترل جریان شارژ در شارژرهای باتری.


نحوه اتصال به آردوینو (I2C)

پایه ماژول INA219 اتصال به آردوینو UNO/NANO
VCC 5V
GND GND
SDA A4 (در UNO) یا پین SDA
SCL A5 (در UNO) یا پین SCL
Vin+ به ولتاژ مثبت منبع تحت نظارت (تا ۲۶V)
Vin- به بار مصرفی
V+ و V- به دو سر شنت خارجی (اگر جریان بالا نیاز باشد)

نکته مهم: برای جریان‌های بالای ۳.۲A باید از شنت خارجی با مقاومت مناسب (مثلاً ۰.۰۱ اهم) استفاده کرد.


نصب کتابخانه و کد نمونه سریع

نصب کتابخانه: در Arduino IDE به Tools > Manage Libraries رفته و Adafruit INA219 را جستجو و نصب کنید.

// نمونه کد ساده برای خواندن ولتاژ، جریان و توان
#include <Wire.h>
#include <Adafruit_INA219.h>

Adafruit_INA219 ina219; // ایجاد شیء از کلاس سنسور

void setup() {
  Serial.begin(9600);
  Serial.println("آماده سازی سنسور INA219...");

  if (!ina219.begin()) {
    Serial.println("سنسور INA219 یافت نشد!");
    while (1) { delay(10); }
  }
  Serial.println("سنسور INA219 شناسایی شد.");
  
  // تنظیم کالیبراسیون برای محدوده 32V و 2A (پیش فرض)
  ina219.setCalibration_32V_2A();
}

void loop() {
  float shuntVoltage_mV = ina219.getShuntVoltage_mV();
  float busVoltage_V = ina219.getBusVoltage_V();
  float current_mA = ina219.getCurrent_mA();
  float power_mW = ina219.getPower_mW();
  float loadVoltage_V = busVoltage_V + (shuntVoltage_mV / 1000); // ولتاژ واقعی روی بار

  Serial.println("-----------------------------------");
  Serial.print("ولتاژ باس:       "); Serial.print(busVoltage_V); Serial.println(" V");
  Serial.print("ولتاژ شنت:       "); Serial.print(shuntVoltage_mV); Serial.println(" mV");
  Serial.print("ولتاژ روی بار:   "); Serial.print(loadVoltage_V); Serial.println(" V");
  Serial.print("جریان:           "); Serial.print(current_mA); Serial.println(" mA");
  Serial.print("توان:            "); Serial.print(power_mW); Serial.println(" mW");
  Serial.println("-----------------------------------");

  delay(2000); // تاخیر 2 ثانیه
}

پیکربندی و کالیبراسیون پیشرفته

ماژول INA219 دارای چهار حالت کالیبراسیون پیش‌تنظیم شده در کتابخانه Adafruit است:

// انتخاب یکی از حالت‌های زیر قبل از شروع اندازه‌گیری
ina219.setCalibration_32V_2A();     // پیش‌فرض: تا 32V و 2A
ina219.setCalibration_32V_1A();     // دقت بالاتر برای جریان‌های تا 1A
ina219.setCalibration_16V_400mA();  // دقت بسیار بالا برای جریان‌های کم

برای جریان‌های بالاتر (مثلاً تا ۲۰A):
باید از شنت خارجی (مثلاً ۰.۰۰۱ اهم) استفاده کرده و خودتان کالیبراسیون را تنظیم کنید:

// کالیبراسیون دستی برای 20A با شنت 0.001 اهم
ina219.setCalibration_32V_20A(); // این تابع در کتابخانه وجود دارد

نکات حیاتی برای دقت اندازه‌گیری

⚠️ اتصال صحیح: Vin+ همیشه به سمت منبع تغذیه و Vin- به سمت بار متصل شود.
⚠️ ایزولاسیون: این سنسور ایزوله نوری یا گالوانیک نیست. ولتاژهای بالا یا سیستم‌های ایزوله نیاز به جداسازی دارند.
🔧 کالیبراسیون: برای دقت بالا، حتماً از منبع جریان و ولتاژ کالیبره شده برای تنظیم استفاده کنید.
🌡️ دمای محیط: مقاومت شنت با دما تغییر می‌کند. برای کاربردهای بسیار دقیق، جبرانسازی دما لازم است.
🔌 نویزگیری: از خازن ۱۰۰nF بین پایه‌های Vin+ و Vin- نزدیک به سنسور استفاده کنید.


پروژه عملی: مانیتور باتری لیتیوم ۱۸۶۵۰ با نمایشگر OLED

قطعات مورد نیاز:

  • آردوینو نانو

  • ماژول INA219

  • باتری لیتیوم ۱۸۶۵۰ با Holder

  • نمایشگر OLED 0.96 اینچ I2C

  • بار مصرفی (مثلاً مقاومت ۱۰ اهم ۵ وات)

خروجی: نمایش ولتاژ باتری، جریان تخلیه، توان مصرفی و درصد تخمینی شارژ روی OLED.


مقایسه با روش‌های سنتی اندازه‌گیری جریان

روش INA219 (شنت + ADC) سنسور اثر هال (ACS712) مقاومت شنت + ADC جداگانه
دقت ⭐⭐⭐⭐⭐ (عالی) ⭐⭐⭐ (متوسط) ⭐⭐⭐⭐ (خوب)
قیمت ⭐⭐⭐⭐ (مناسب) ⭐⭐⭐ (متوسط) ⭐⭐⭐⭐⭐ (ارزان)
اتصال ⭐⭐⭐⭐⭐ (ساده – I2C) ⭐⭐⭐⭐ (ساده – آنالوگ) ⭐⭐ (پیچیده)
ایزولاسیون ⭐ (ندارد) ⭐⭐⭐⭐⭐ (دارد) ⭐ (ندارد)
محدوده جریان تا ±۳.۲A (ذاتی) ±۵A تا ±۳۰A بسته به طراحی
توان مصرفی ⭐⭐⭐⭐ (کم) ⭐⭐⭐⭐ (کم) ⭐⭐⭐ (متوسط)

سوالات متداول (FAQ)

✅ آیا می‌توانم جریان متناوب (AC) را اندازه‌گیری کنم؟
خیر. INA219 فقط برای جریان مستقیم (DC) طراحی شده است. برای AC از سنسورهای اثر هال ACS712 (برای شکل موج) یا ترانسفورماتور جریان (CT) استفاده کنید.

✅ چطور محدوده جریان را افزایش دهم؟
با اضافه کردن یک شنت خارجی با مقاومت کمتر (مثلاً ۰.۰۱ اهم یا ۰.۰۰۱ اهم) و تنظیم کالیبراسیون متناسب. دقت فرمول: جریان = ولتاژ شنت / مقاومت شنت.

✅ آیا می‌توانم ولتاژهای بالاتر از ۲۶V اندازه‌گیری کنم؟
خیر. محدوده ذاتی تراشه ۲۶V است. برای ولتاژهای بالاتر باید از تقسیم مقاومت ولتاژ قبل از ورودی Vin+ استفاده کنید.

✅ تفاوت این ماژول با INA226 چیست؟
INA226 قابلیت‌های پیشرفته‌تر مانند ثبت بیشینه/کمینه (Min/Max)، آلارم و انرژی تجمعی دارد. INA219 ساده‌تر و ارزان‌تر است.

✅ چرا جریان منفی نمایش می‌دهد؟
اگر اتصال Vin+ و Vin- معکوس شود یا جریان جهت معکوس داشته باشد (مثلاً در حالت شارژ باتری). این طبیعی است.

✅ چگونه دقت را در جریان‌های کم افزایش دهم؟
از حالت کالیبراسیون setCalibration_16V_400mA() استفاده کنید و میانگین‌گیری نرم‌افزاری از چندین نمونه بگیرید.

✅ آیا نیاز به مدار نمونه‌برداری جداگانه دارم؟
خیر. INA219 تمام مدارهای نمونه‌برداری، تقویت و ADC را به صورت داخلی دارد.


چرا ماژول INA219 را از ما بخرید؟

✅ تراشه اورجینال: استفاده از INA219 اصلی Texas Instruments.
✅ شنت با کیفیت: مقاومت شنت ۱٪ دقت با توان ۲ وات.
✅ تست کالیبراسیون: تست دقت با منابع کالیبره شده آزمایشگاهی.
✅ پشتیبانی فنی: ارائه کدهای پیشرفته، فرمول‌های کالیبراسیون و راهنمای طراحی.


پکیج پیشنهادی برای سیستم مانیتورینگ حرفه‌ای

  1. ماژول INA219 با کیفیت بالا

  2. شنت خارجی ۰.۰۰۱ اهم ۱۰A برای جریان‌های بالا

  3. ترمینال پیچی دوپین برای اتصال راحت

  4. نمایشگر OLED 0.96 اینچ I2C

  5. برد آردوینو نانو با کابل USB

  6. کابل‌های رابط و جامپر