آموزش راه اندازی سنسور ولتاژ ZMPT101B با آردوینو

فهرست مطالب

ماژول ولتاژ ZMPT101B چیست؟

ZMPT101B یک ترنسفورمر (مبدل) ولتاژ است و برای اندازه گیری ولتاژ AC استفاده می شود. با استفاده از این ماژول می توانید ولتاژ های AC تا 250 ولت را اندازه گیری کنید. خروجی این سنسور، ولتاژی آنالوگ است که با تغییر ولتاژ ورودی، تغییر می کند.

توجه
خروجی بدون بار (وقتی چیزی به ورودی وصل نیست) سنسور دارای یک ولتاژ اولیه (Offset) به میزان Vcc/2 است. یعنی اگر به ورودی چیزی متصل نباشد و ولتاژ تغذیه ماژول 5 ولت باشد، خروجی ماژول 2.5 ولت خواهد بود.

دیتاشیت سنسور ولتاژ ZMPT101B را می توانید از اینجا دانلود کنید.

معرفی پایه ها (Pinout) ماژول ولتاژ ZMPT101B

ماژول ZMPT101B دارای 4 پایه به شرح زیر است:

  • VCC: تغذیه ماژول – 5 ولت
  • GND: زمین
  • OUT: خروجی ماژول که به صورت ولتاژی آنالوگ است.

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

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

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

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

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

آردوینو IDE

راه اندازی سنسور ولتاژ ZMPT101B با آردوینو

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

مطابق مدار زیر ماژول را به آردوینو وصل کنید.

هشدار!

در هنگام اتصال ولتاژ ورودی (مثلا 220 ولت)، نکات ایمنی را رعایت کنید.

گام دوم: کد 1

کد زیر را روی آردوینو خود آپلود کرده و سپس از منوی Tools پنجره ی Serial plotter را باز کنید. اگر به ورودی های ماژول چیزی وصل نباشد (ورودی ماژول 0 ولت باشد)، باید نمودار شما عددی حدود 512 (یعنی 2.5 ولت) را نمایش دهد.

اگر ولتاژ 220 ولت AC را به ورودی اعمال کنید، باید نمودار سینوسی ولتاژ را در Serial plotter مشاهده کنید.

/*
  ZMPT101B - AC Voltage sensor
  Show AC wava in serial plotter

  modified on 7 Sep 2020
  by Mohammad Reza Akbari @ Electropeak
  
Home
*/ void setup() { // put your setup code here, to run once: Serial.begin(9600); } void loop() { Serial.println(analogRead(A0)); delay(100);
نکته
دقت کنید که شکل ولتاژ به صورت کامل به شما نمایش داده شود و بالا و پایین آن بریده نشده باشد. اگر شکل ولتاژ شما کامل نبود، باید پتانسیومتر روی ماژول را بچرخانید تا شکل موج به صورت کامل به شما نمایش داده شود. اگر شکل موج از بالا یا پایین بریده شده باشد، باعث ایجاد خطا در اندازه گیری شما در مرحله ی بعدی خواهد شد.

گام سوم: کد 2

این ماژول مقدار پیک تا پیک ولتاژ را اندازه گیری می کند. در این کد ابتدا بیشترین مقدار اندازه گیری شده (پیک ولتاژ) را پیدا کرده و سپس آن را به مقدار RMS تبدیل می کند. نتیجه ی محاسبات را می توانید در پنجره ی سریال ببینید.

/*
  ZMPT101B - AC Voltage sensor
  Calculate Voltage

  modified on 7 Sep 2020
  by Mohammad Reza Akbari @ Electropeak
  
Home
*/ double sensorValue1 = 0; double sensorValue2 = 0; int crosscount = 0; int climb_flag = 0; int val[100]; int max_v = 0; double VmaxD = 0; double VeffD = 0; double Veff = 0; void setup() { Serial.begin(9600); } void loop() { for ( int i = 0; i < 100; i++ ) { sensorValue1 = analogRead(A0); if (analogRead(A0) > 511) { val[i] = sensorValue1; } else { val[i] = 0; } delay(1); } max_v = 0; for ( int i = 0; i < 100; i++ ) { if ( val[i] > max_v ) { max_v = val[i]; } val[i] = 0; } if (max_v != 0) { VmaxD = max_v; VeffD = VmaxD / sqrt(2); Veff = (((VeffD - 420.76) / -90.24) * -210.2) + 210.2; } else { Veff = 0; } Serial.print("Voltage: "); Serial.println(Veff); VmaxD = 0; delay(100); }

نتیجه ی اندازه گیری ولتاژ برق شهر را می توانید در شکل زیر مشاهده کنید.

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

Comments (10)

  • نیما Reply

    سلام
    ممنون از این آموزشی به اشتراک گذاشتید.
    به درستی راه اندازی شد.

    فوریه 14, 2022 at 5:04 ب.ظ
    • مهران ملکی Reply

      سلام.
      ممنون از لطف شما، خوشحالیم که کمک کننده بوده.

      فوریه 20, 2022 at 10:19 ق.ظ
  • الهه Reply

    سلام خسته نباشید میشه خط 53 کد 2 رو توضیح بدید که اعداد مربوط به پارامترهایی هستند؟

    می 8, 2022 at 11:44 ق.ظ
  • سید مجید طاهرزاده Reply

    سلام خسته نباشید
    بنده ماژول رو راه اندازی کردم اما اون کد اولیه رو که وارد کردم موج سینوسی رو به شکلی که شما توی تصویر آوردید نشون نمیده. فرکانس موجی که بنده می بینم خیلی پایینه تقریبا 0.3hz که اصلا با برق شهری نمیخونه

    آگوست 17, 2023 at 11:59 ق.ظ
    • سید مجید طاهرزاده Reply

      حتی پیک هم درست نیست 23 ولته

      آگوست 17, 2023 at 12:07 ب.ظ
    • محمد دمیرچی Reply

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

      آگوست 19, 2023 at 9:12 ق.ظ
  • حسین Reply

    سلام . من این ماژول رو خریدم برای اندازه گیری ولتاژ ولی مشکلی که باهاش دارم اینه که در حالت عادی با وصل vcc خروجی ۲.۵ ولت میشه با وصل ۲۲۰ ولت باز هم خروجی ۲.۵ ولته البته با ولت متر دقیق اندازه گرفتم

    آگوست 30, 2023 at 8:34 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      به این نکته توجه کنید که برق شهری که 220 AC می باشد در واقع بین 220+ و 220- متغییر می باشد و میکروکنتلر آردوینو نیز در بازه 0 الی 5 ولت DC می تواند اندازه گیری کند.
      از این رو برای اینکه شبیه سازی برق شهری را در این بازه ولتاژ داشته باشیم باید 220- را به ولتاژ 0 آردوینو و 220+ را نیز به ولتاژ 5 اختصاص بدهیم.
      با توجه به این مورد ولتاژ 0 برق شهری می شود دقیقا حد وسط 0 الی 5 ولت که می شود 2.5 ولت، پس به عنوان ولتاژ رفرنس 0 برق شهری شما سمت آردوینو 2.5 ولت را مشاهده میکنید.
      حال کد اول را بر روی میکرو آپلود میکنید و سریال پلاتر را باز کرده و در صورتی که مشابه عکس نوسان بین 0 الی 5 ولت را نداشتید، با استفاده از مولتی ترن روی برد ماژول را تنظیم میکنید (توجه داشته باشید که مولتی ترن ها بین 20 الی 40 دور هستند و گاهی وقت ها زیاد باید بچرخانید)

      سپتامبر 2, 2023 at 9:05 ق.ظ
  • محمد یاسین شاهیان Reply

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

    دسامبر 7, 2023 at 12:01 ب.ظ
    • محمد دمیرچی Reply

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

      دسامبر 9, 2023 at 10:48 ق.ظ

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

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