ماژول سنسور جریان 3 کاناله INA3221 CJMCU-3221 رابط I2C
سنسور جریان 3 کاناله CJMCU-3221
ماژول CJMCU-3221 برای اندازه گیری ولتاژ و جریان است که دارای سه کانال CH1, CH2, CH3 است. تراشه ماژول INA3221 است و دارای رابط I2C برای ارتباط با سایر میکروکنترلرها است. ماژول CJMCU-3221 یک ماژول سنسور جریان سه کاناله است که برای اندازهگیری جریان الکتریکی در سیستمها و پروژههای الکترونیکی استفاده میشود.
این ماژول دارای سه کانال جداگانه برای اندازهگیری جریان الکتریکی است، که به شما امکان مانیتور کردن جریان در سه مدار مختلف را میدهد. ماژول CJMCU-3221 با ولتاژ کاری 5 ولت کار میکند.این ماژول دارای محدوده اندازهگیری ±30 آمپر است. این ماژول ارتباط از طریق واسطه SPI (Serial Peripheral Interface) دارد و اطلاعات اندازهگیری شده را به میکروکنترلر یا بورد کنترلی متصل به خود ارسال میکند. CJMCU-3221 دارای قابلیتهای حفاظتی نظیر محافظت در برابر جریان معکوس و اضافهشدن معکوس جریان به اندازهگیریها میباشد.
ویژگی های سنسور جریان 3 کاناله CJMCU-3221
- اندازهگیری ولتاژ از 0 ولت تا 26 ولت
- گزارش ولتاژ شانت و ولتاژ bus
- ولتاژ آفست: ±80 میکروولت (بیشینه)
- خطا در تنظیم گین: 0.25٪ (بیشینه)
- گزینههای میانگینگیری قابل تنظیم
- چهار آدرس قابل برنامهریزی
- خروجیهای هشدار و اخطار قابل برنامهریزی
- عملکرد با تامین توان: 2.7 ولت تا 5.5 ولت
بررسی پایه های سنسور جریان 3 کاناله CJMCU-3221
به همراه سنسور جریان 3 کاناله CJMCU-3221 چه اقلامی باید خریداری شود؟
- برد آردوینو
- کابل فلت
- برد بورد
راه اندازی سنسور جریان 3 کاناله INA3221
این کد برای استفاده از ماژول CJMCU-3221 (بر پایه چیپ INA3221) با برد آردوینو نوشته شده است و از کتابخانه SDL_Arduino_INA3221 برای تسهیل ارتباط با سنسور استفاده میکند. این کد برای اندازهگیری ولتاژ و جریان از سه کانال مختلف (باتری، سلول خورشیدی و خروجی) از ماژول CJMCU-3221 استفاده میشود و نتایج را در Serial Monitor نمایش میدهد.
#include <Wire.h>
#include "SDL_Arduino_INA3221.h"
SDL_Arduino_INA3221 ina3221;
#define LIPO_BATTERY_CHANNEL 1
#define SOLAR_CELL_CHANNEL 2
#define OUTPUT_CHANNEL 3
void setup(void)
{
Serial.begin(115200);
Serial.println("SDA_Arduino_INA3221_Test");
Serial.println("Measuring voltage and current with ina3221 ...");
ina3221.begin();
Serial.print("Manufactures ID=0x");
int MID;
MID = ina3221.getManufID();
Serial.println(MID,HEX);
}
void loop(void)
{
Serial.println("------------------------------");
float shuntvoltage1 = 0;
float busvoltage1 = 0;
float current_mA1 = 0;
float loadvoltage1 = 0;
busvoltage1 = ina3221.getBusVoltage_V(LIPO_BATTERY_CHANNEL);
shuntvoltage1 = ina3221.getShuntVoltage_mV(LIPO_BATTERY_CHANNEL);
current_mA1 = -ina3221.getCurrent_mA(LIPO_BATTERY_CHANNEL);
loadvoltage1 = busvoltage1 + (shuntvoltage1 / 1000);
Serial.print("LIPO_Battery Bus Voltage: "); Serial.print(busvoltage1); Serial.println(" V");
Serial.print("LIPO_Battery Shunt Voltage: "); Serial.print(shuntvoltage1); Serial.println(" mV");
Serial.print("LIPO_Battery Load Voltage: "); Serial.print(loadvoltage1); Serial.println(" V");
Serial.print("LIPO_Battery Current 1: "); Serial.print(current_mA1); Serial.println(" mA");
Serial.println("");
float shuntvoltage2 = 0;
float busvoltage2 = 0;
float current_mA2 = 0;
float loadvoltage2 = 0;
busvoltage2 = ina3221.getBusVoltage_V(SOLAR_CELL_CHANNEL);
shuntvoltage2 = ina3221.getShuntVoltage_mV(SOLAR_CELL_CHANNEL);
current_mA2 = -ina3221.getCurrent_mA(SOLAR_CELL_CHANNEL);
loadvoltage2 = busvoltage2 + (shuntvoltage2 / 1000);
Serial.print("Solar Cell Bus Voltage 2: "); Serial.print(busvoltage2); Serial.println(" V");
Serial.print("Solar Cell Shunt Voltage 2: "); Serial.print(shuntvoltage2); Serial.println(" mV");
Serial.print("Solar Cell Load Voltage 2: "); Serial.print(loadvoltage2); Serial.println(" V");
Serial.print("Solar Cell Current 2: "); Serial.print(current_mA2); Serial.println(" mA");
Serial.println("");
float shuntvoltage3 = 0;
float busvoltage3 = 0;
float current_mA3 = 0;
float loadvoltage3 = 0;
busvoltage3 = ina3221.getBusVoltage_V(OUTPUT_CHANNEL);
shuntvoltage3 = ina3221.getShuntVoltage_mV(OUTPUT_CHANNEL);
current_mA3 = ina3221.getCurrent_mA(OUTPUT_CHANNEL);
loadvoltage3 = busvoltage3 + (shuntvoltage3 / 1000);
Serial.print("Output Bus Voltage 3: "); Serial.print(busvoltage3); Serial.println(" V");
Serial.print("Output Shunt Voltage 3: "); Serial.print(shuntvoltage3); Serial.println(" mV");
Serial.print("Output Load Voltage 3: "); Serial.print(loadvoltage3); Serial.println(" V");
Serial.print("Output Current 3: "); Serial.print(current_mA3); Serial.println(" mA");
Serial.println("");
delay(2000);
}
مشخصات
- نوع ماژول
- جریان
- ولتاژ مورد نياز
- 0 تا 26 ولت
- ولتاژ ورودی
- ولتاژ آفست ±80 µV (max)
- کشور سازنده
- چین
- پردازنده
- INA3221
- نوع مبدل
- پروتکل I2C
چنانچه ماژول کاهنده LM2596 در خروجی هیچ تغییر نداشت. بایستی آنرا کالیبره کنید. کافیست مولتی ترن روی ماژول را به صورت پادساعتگرد بچرخانید. به میزانی این چرخش باید انجام شود که از داخل آن صدای تق تق شنیده شود. سپس در جهت ساعتگرد آنرا بچرخانید، به این روش ماژول کاهنده کالیبره خواهد شد. پس از انجام این کار، در خروجی ماژول شاهد تغییر ولتاژ خواهید بود.
توسط همین ماژول هم میتوانید اقدام به اجرای درخواستتان کنید. البته اگر فقط بخواهید یک سلول باتری لیتیومی را مدیریت شارژ کنید، همان گزینه ماژول TP4056 مناسب خواهد بود.
با سلام
در حال حاضر خیر این مدل مورد نظر شما موجود نیست.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.