ماژول ولتاژ ZMPT101B چیست؟
ZMPT101B یک ترنسفورمر (مبدل) ولتاژ است و برای اندازه گیری ولتاژ AC استفاده می شود. با استفاده از این ماژول می توانید ولتاژ های AC تا 250 ولت را اندازه گیری کنید. خروجی این سنسور، ولتاژی آنالوگ است که با تغییر ولتاژ ورودی، تغییر می کند.
توجه
معرفی پایه ها (Pinout) ماژول ولتاژ ZMPT101B
ماژول ZMPT101B دارای 4 پایه به شرح زیر است:
- VCC: تغذیه ماژول – 5 ولت
- GND: زمین
- OUT: خروجی ماژول که به صورت ولتاژی آنالوگ است.
پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرمافزارهای مورد نیاز
راه اندازی سنسور ولتاژ 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 (11)
سلام
ممنون از این آموزشی به اشتراک گذاشتید.
به درستی راه اندازی شد.
سلام.
ممنون از لطف شما، خوشحالیم که کمک کننده بوده.
سلام خسته نباشید میشه خط 53 کد 2 رو توضیح بدید که اعداد مربوط به پارامترهایی هستند؟
سلام . من رشته ام قدرت هست. یه چیزی متوجه شدم . اینجا جهت راهنمایی خدمتون عرض میکنم. لطفا اساتید نظر بدن.
(با در نظر گرفتن بایاس 2.5 ولت DC و فرض اینکه خروجی برد ماژول Vpeak=5 باشد. نه RMS)
رابطه به نظرم اشتباه میاد. (احتمالا).
0 تا 5 ولت میشه 0 تا 1024 دیجیتال…..
شما عدد بدست اومده 0 تا 1024 رو به 0 تا 5 ولت تبدیل کنید. (با فرض اینکه 5 ولت پیک باشد…قله)
از طرف دیگه شما زمانی که 250 ولت AC (با فرض RMS بدین ) در خروجی سیگنال سینوسی با دامنه حداکثر 5 میگیرید. (5 پیک ..قله)…
Vin=250VAC…Voutrms=(5-2.5)/1.41=1.773
پس الان شما باید عدد ی که رو میکرو رو خوندی به 0 تا 5 تبدیل کنید. بعد از 2.5 کم کنی (حذف بایاس )….بعد اون عدد رو ضرب در 250/1.773 بکنید.
این برداشت ناچیز و شاید اشتباه باشد.
لطفا دوستان راهنمایی کنند.
سلام خسته نباشید
بنده ماژول رو راه اندازی کردم اما اون کد اولیه رو که وارد کردم موج سینوسی رو به شکلی که شما توی تصویر آوردید نشون نمیده. فرکانس موجی که بنده می بینم خیلی پایینه تقریبا 0.3hz که اصلا با برق شهری نمیخونه
حتی پیک هم درست نیست 23 ولته
با سلام
لطف کنید مشکل خود را در انجمن مطرح کنید و عکسی نیز از خروجی خود نیز در آنجا قرار بدهید تا مشکل شما را حل نماییم.
سلام . من این ماژول رو خریدم برای اندازه گیری ولتاژ ولی مشکلی که باهاش دارم اینه که در حالت عادی با وصل vcc خروجی ۲.۵ ولت میشه با وصل ۲۲۰ ولت باز هم خروجی ۲.۵ ولته البته با ولت متر دقیق اندازه گرفتم
با سلام
به این نکته توجه کنید که برق شهری که 220 AC می باشد در واقع بین 220+ و 220- متغییر می باشد و میکروکنتلر آردوینو نیز در بازه 0 الی 5 ولت DC می تواند اندازه گیری کند.
از این رو برای اینکه شبیه سازی برق شهری را در این بازه ولتاژ داشته باشیم باید 220- را به ولتاژ 0 آردوینو و 220+ را نیز به ولتاژ 5 اختصاص بدهیم.
با توجه به این مورد ولتاژ 0 برق شهری می شود دقیقا حد وسط 0 الی 5 ولت که می شود 2.5 ولت، پس به عنوان ولتاژ رفرنس 0 برق شهری شما سمت آردوینو 2.5 ولت را مشاهده میکنید.
حال کد اول را بر روی میکرو آپلود میکنید و سریال پلاتر را باز کرده و در صورتی که مشابه عکس نوسان بین 0 الی 5 ولت را نداشتید، با استفاده از مولتی ترن روی برد ماژول را تنظیم میکنید (توجه داشته باشید که مولتی ترن ها بین 20 الی 40 دور هستند و گاهی وقت ها زیاد باید بچرخانید)
سلام. این ماژول را میتونه برق مصرفی خانه را اندازه بگیره یا خیر ؟
با سلام
این سنسور نوسانات برق را اندازه گیری میکند.
برای محاسبه جریان مصرفی باید از سنسور های اندازه گیر جریان استفاده کنید.