ماژول INA219 یک برد راه انداز چیپ INA219 می باشد که قابلیت اندازه گیری ولتاژ شنت 0 تا 26 ولت را دارد . این ماژول دارای رابط I2C می باشد که می توانید آن را توسط هر میکروکنترلی با قابلیت I2C راه اندازی کنید . از کاربرد های این ماژول می توان از آن در سیستم های مدیریت باتری و شارژ و یا در سیستم های توقف اضطراری الکتروموتور ها استفاده کرد . حتی می توانید در سیستم های دیباگی که بر اساس جریان مصرفی وجود خطا در سیستم را تشخیص می دهند استفاده نمود . INA219 در واقع اختلاف پتانسیل قرار گرفته بر روی پایه های ورودی را اندازه گیری می کند که پین های ورودی این ماژول با یک مقاوت 100 اهمی سری شده اند لذا با عبور جریان از ترمینال های ماژول به دلیل و جود اختلاف پتانسیل بر روی دوسر مقاومت 100 اهمی ، می توان جریان را به دست آورد . در این آموزش قصد داریم این ماژول را به آردوینو متصل کرده و جریان مصرفی یک الکترو متور را مانیتور کنیم .
شماتیک اتصال ماژول به آردوینو :
برنامه راه اندازی آردوینو :
#include <Wire.h> #include <Adafruit_INA219.h> Adafruit_INA219 ina219; void setup(void) { Serial.begin(115200); while (!Serial) { // will pause Zero, Leonardo, etc until serial console opens delay(1); } uint32_t currentFrequency; Serial.println("Hello!"); // Initialize the INA219. // By default the initialization will use the largest range (32V, 2A). However // you can call a setCalibration function to change this range (see comments). if (! ina219.begin()) { Serial.println("Failed to find INA219 chip"); while (1) { delay(10); } } // To use a slightly lower 32V, 1A range (higher precision on amps): //ina219.setCalibration_32V_1A(); // Or to use a lower 16V, 400mA range (higher precision on volts and amps): //ina219.setCalibration_16V_400mA(); Serial.println("Measuring voltage and current with INA219 ..."); } void loop(void) { float shuntvoltage = 0; float busvoltage = 0; float current_mA = 0; float loadvoltage = 0; float power_mW = 0; shuntvoltage = ina219.getShuntVoltage_mV(); busvoltage = ina219.getBusVoltage_V(); current_mA = ina219.getCurrent_mA(); power_mW = ina219.getPower_mW(); loadvoltage = busvoltage + (shuntvoltage / 1000); Serial.print("Bus Voltage: "); Serial.print(busvoltage); Serial.println(" V"); Serial.print("Shunt Voltage: "); Serial.print(shuntvoltage); Serial.println(" mV"); Serial.print("Load Voltage: "); Serial.print(loadvoltage); Serial.println(" V"); Serial.print("Current: "); Serial.print(current_mA); Serial.println(" mA"); Serial.print("Power: "); Serial.print(power_mW); Serial.println(" mW"); Serial.println(""); delay(2000); }
مقدار جریان عبوری از ماژول در