آموزش راه اندازی ماژول اندازه گیری جریان ZMCT103C با آردوینو

ویژگی های ماژول اندازه گیری جریان ZMCT103C

از ماژول اندازه‌گیری جریان ZMCT103C می­توان برای مانیتور کردن جریان در مصارف مختلف صنعتی استفاده کرد. این ماژول بر پایه‌ی آی سی ZMCT103C ساخته شده است. ساز و کار این آی سی به این صورت است که سیمی که قرار است جریان آن اندازه گیری شود، از داخل حفره ی آی سی رد می‌­شود. سپس بر حسب جریان AC عبور کننده از سیم، ولتاژی در دو سر آی سی القا می­‌شود.

در ماژول اندازه‌گیری جریان ZMCT103C، ولتاژ خروجی آی سی ZMCT103C  توسط یک سری تقویت‌کننده، تقویت شده و به عنوان خروجی ماژول در دسترس قرار می‌گیرد. خروجی ماژول نیز یک ولتاژ آنالوگ AC متناسب با جریان AC سیم عبور کننده از حفره ماژول است.

نکته

بر روی این ماژول یک پتانسیومتر نیز در نظر گرفته شده است که با چرخاندن پیچ آن می­توان ضریب ­تقویت‌کننده ولتاژ را تنظیم کرد.

معرفی پایه های (Pinout) ماژول اندازه گیری جریان ZMCT103C

ماژول اندازه گیری جریان ZMCT103C دارای 4 پایه به شرح زیر است:

  • VCC: تغذیه ماژول – 5 ولت
  • OUT: خروجی ماژول
  • GND: زمین
  • GND: زمین

پین اوت (Pinout) این ماژول را می‌توانید در تصویر زیر مشاهده کنید.

لوازمی که به آن احتیاج دارید

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

آردوینو UNO R3 × 1
ماژول اندازه گیری جریان ZMCT103C تا 5 آمپر AC × 1
سیم جامپر × 1

نرم افزارهای مورد نیاز

آردوینو IDE

راه اندازی ماژول اندازه گیری جریان ZMCT103C

گام اول: سیم بندی

مطابق مدار زیر ماژول را به آردوینو وصل کرده و سیمی را که می خواهید جریان آن را اندازه بگیرید، از داخل حفره ماژول رد کنید.

گام دوم: کد

کد زیر را روی آردوینوی خود آپلود کنید. پس از آپلود کد، پنجره ی Serial Monitor را باز کنید.

 /*
Made on Dec 22, 2020
By MehranMaleki @ Electropeak
Home<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" title="&#8220;Home&#8221; &#8212; Electropeak" src="https://electropeak.com/learn/embed/#?secret=sE9KHXRhxr" data-secret="sE9KHXRhxr" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
*/

#define calibration_const 355.55
int max_val;
int new_val;
int old_val = 0;
float rms;
float IRMS;

void setup() {
  pinMode(A0,INPUT);
  Serial.begin(9600);
}

void loop() {
  new_val = analogRead(A0);
  if(new_val > old_val) {
    old_val = new_val;
  }
  
  else {
    delayMicroseconds(50);
    new_val = analogRead(A0);
    if(new_val < old_val) {
      max_val = old_val;
      old_val = 0;
    }
    
    rms = max_val * 5.00 * 0.707 / 1024;
    IRMS = rms * calibration_const;
    
    Serial.print("  IRMS: ");
    Serial.println(IRMS);
    
    delay(1000);
  }
}
Arduino

برای کالیبراسیون ماژول، لازم است ابتدا ولتاژ خروجی ماژول را برای یک جریان AC که از پیش مقدار آن می‌دانیم حساب کنیم. به این صورت ضریب کالیبراسیون را می توان به سادگی محاسبه کرد. (این ضریب با چرخاندن پیچ پتانسیومتر تغییر می‌کند.) در کد بالا، از پایه A0 آردوینو برای خواندن ولتاژ خروجی ماژول استفاده شده است. سپس با محاسبه ماکزیمم این ولتاژ در بازه‌های مختلف، اندازه جریان rms عبوری از سیم بدست می‌آید. ما برای تست عملکرد کد، جریان عبوری از سیم تغذیه یک هویه را اندازه گرفته‌ایم.

خروجی کد به شکل زیر است. (مقادیر بر حسب mA است.)

آموزش های مشابه

Comments (10)

  • محمد یاسین شاهیان Reply

    سلام . برای برق مصرفی منزل باید سیم فاز داخل سنسور باشه یا نول ؟

    فوریه 21, 2024 at 3:38 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      در اصل فرقی نمیکند و می توانید در هر لاینی قرار بدهید ولی بهتر هست بر روی لاین فاز قرار بدهید.

      فوریه 24, 2024 at 11:01 ق.ظ
  • امیر Reply

    سلام. میشه داده ها رو با نرخ 2 یا 3 کیلوهرتز از پایه آنالوگ خوند و روی رم ذخیره کرد؟
    منظورم اینه که RMS و max نیاز ندارم. داده های زمانی رو لازم دارم.
    همونجا که دارید 50 میکروثانیه تاخیر میدید و بعد داده ها رو از پایه آنالوگ میخونید، همونجا ذخیره کنیم روی رم

    مارس 20, 2024 at 12:07 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      بله می توانید بدون هیچ دیلی ای دیتایی که از analogRead دریافت میکنید را درون SD کارت بریزید.
      2 روش را به شما پیشنهاد میدهم.
      مورد اول این که شما می توانید دستور باز کردن فایل را بدهید و هرچه دیتا در ورودی هست را بر روی SD کارت بریزد و در صورت زدن بر روی یک دکمه همه را سیو کند
      myfile = SD_MMC.open(filename, FILE_APPEND);
      if (!myfile)
      {
      Serial.println("Error opening file for writing");
      return;
      }
      u8x8.drawString(0, 3, "Saving");
      while (true)
      {
      myfile.write(analogRead(A0));
      if (!digitalRead(Button))
      break;
      }
      myfile.close();

      در صورت عدم فشار دادن این دکمه فایل سیو نمی شود !!!!!!!!!!!!!!
      روش دیگر جمع آوری داده ها در بازه های مثلا دقیقه ای یک بار و سیو کردن کل داده ها به صورت یک جا در فایل می باشد.
      باز بسته به نیاز خود روشی که میخواهید را انجام بدهید.

      مارس 24, 2024 at 11:01 ق.ظ
  • امیر عباس خالصی Reply

    سلام من می‌خوام جریان DC تا حدود ۱۰۰ آمپر اندازه گیری کنم پیشنهاد چیه؟

    آگوست 16, 2024 at 11:58 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      این سنسور برای ولتاژ های AC می باشد برای DC باید شنت قرار بدهید و با استفاده از opamp ولتاژ عبوری از شنت را تقویت بکنید و به میکروکنترلر بدهید.
      یا از سنسور های جریان DC که اندازه مورد نظر شما را ساپورت کنند.

      آگوست 17, 2024 at 10:07 ق.ظ
  • ناصر Reply

    بسیار مدار جالبی بود یه سوال آیا عملکرد این سنسور خطی است یعنی قرائت یک آمپر با پنج آمپر دقیق است

    نوامبر 4, 2024 at 6:11 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      همیشه خطا در اندازه گیری های سنسور هایی که از طریق نیرو القایی اندازه گیری را انجام میدهد وجود دارد.
      این موارد به کلفتی و جنس سیم عبوری از این سنسور برمیگردد. از این رو نمیتوان به صورت حتم اعلام کرد خروجی سنسور خطی می باشد. در صورتی که دقت برای شما خیلی مهم می باشد از سنسور های غیر القایی دقت بالا استفاده نمایید. مانند ACS712

      نوامبر 17, 2024 at 12:22 ب.ظ
  • شهروز Reply

    سلام مهندس. خسته نباشید. من حدود ۱۰عدد از این سنسور را خریدم و هرکاری میکنم نمیتوانم خروجی آنالوگ از ماژول بگیرم. خروجی ماژول در حالت بدون جریان حدود ۱.۲ولت نشون میده و ۴آمپر هم همان ۱.۲ولت. فقط لحظه وصل جریان تعغیر ناچیزی حدود ۱۰۰میلی ولت دیده میشه….! میشه راهنماییم کنید؟

    نوامبر 30, 2024 at 9:14 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      با استفاده از پیچ روی ماژول باید ضریب تقویت را عوض بکنید تا خروجی درست بشود.

      دسامبر 7, 2024 at 10:39 ق.ظ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.