آردوینو Arduinoپروژه های آردوینو

پروژه اندازه گیری ولتاژ، جریان و توان با آردوینو (وات، ولت و آمپر متر)

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

ما به عنوان مهندسان الکترونیک ، همیشه به ابزاری برای اندازه گیری و تحلیل کار یک مدار نیازداریم. بعضی اوقات ممکن است در شرایطی قرار بگیریم که باید ابزار های اندازه گیری را خودمان را بسازیم. به عنوان مثال در حال کار روی یک پروژه PV خورشیدی هستید و دوست دارید میزان انرژی خود را محاسبه کنید، در چنین شرایطی میتوانیم به راحتی وات متر خود را با آردوینو بسازیم و توان الکتریکی را اندازه گیری کنیم.

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

اندازه گیری ولتاژ، جریان و قدرت با آردوینو

فیلم عملکرد پروژه در انتهای صفحه قرار داده شده است.

برای یادگیری کامل آردوینو (برنامه نویسی حرفه ای، ارتباط با اندروید، ساخت ربات) ، روی دوره آموزش آردوینو کلیک کنید.

همچنین اگر میخواهید الکترونیک را با فیلم های آموزشی یاد بگیرید، روی دوره آموزش الکترونیک کلیک کنید.

توضیحات مدار پروژه وات متر با آردوینو

شماتیک مدار پروژه وات متر با آردوینو در زیر آورده شده است.

مدار پروژه وات متر با آردوینو

برای سهولت درک مدار، وات متر آردوینو به دو واحد تقسیم می شود. قسمت فوقانی مدار واحد اندازه گیری و قسمت پایین مدار واحد محاسبه و نمایش است. برای افرادی که تازه از این نوع مدارها استفاده می کنند ، برچسب ها نوشته شده است. این مدار به گونه ای طراحی شده است که در سیستم هایی که بین 0-24 ولت با دامنه جریان 0-1A کار می کنند ، اندازه گیری انجام میدهد.

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

  1. برد آردوینو نانو
  2. آپ امپ LM358
  3. تنظیم کننده ولتاژ 7805
  4. ال سی دی کاراکتری 16*2
  5. مقاومت شنت 0.22 اهم 2 وات
  6. پتانسیومتر 10k
  7. مقاومت 10k ، 20k ، 2.2k ، 1k
  8. خازن 0.1uF

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

واحد اندازه گیری جریان، وات و ولتاژ

واحد اندازه گیری متشکل از یک تقسیم کننده است که به ما در اندازه گیری ولتاژ کمک می کند و از یک مقاومت با یک آمپ Op-Inverting استفاده می شود تا به ما در اندازه گیری جریان از طریق مدار کمک کند. قسمت تقسیم کننده مدار در زیر نشان داده شده است.

واحد اندازه گیری جریان، وات و ولتاژ

در اینجا ولتاژ ورودی با Vcc نشان داده شده است ، همانطور که در ابتدا گفته شد ما در حال طراحی مدار برای اندازه گیری یک ولتاژ از 0 ولت تا 24 ولت هستیم. اما یک میکروکنترلر مانند آردوینو نمی تواند چنین مقادیر بالای ولتاژ را اندازه گیری کند. آردوینو تنها می تواند ولتاژ را از 0-5 ولت اندازه گیری کند. بنابراین باید محدوده ولتاژ را از 0-24V به 0-5V را تبدیل کنیم. این کار را می توان به راحتی با استفاده از یک مدار تقسیم کننده مطابق شکل زیر انجام داد. مقاومت 10k و 2.2k با هم مدار تقسیم کننده ولتاژ را تشکیل می دهند. ولتاژ خروجی یک تقسیم کننده با استفاده از فرمول های زیر قابل محاسبه است.

Vout = (Vin × R2) / (R1 + R2)

تبدیل 0-5V را می توان از قسمت میانی که دارای ولتاژ است ، بدست آورد. این ولتاژ بعدا به پین ​​آردوینو آنالوگ تغذیه می شود.

مطلب پیشنهادی:  پروژه تستر الکل با آردوینو (تشخیص میزان الکل)

سپس باید جریان را از طریق LOAD بسنجیم. همانطور که می دانیم میکروکنترلر ها فقط می توانند ولتاژ آنالوگ را بخوانند ، بنابراین باید به نوعی مقدار جریان را به ولتاژ تبدیل کنیم. این کار را می توان با افزودن یک مقاومت (مقاومت شنت) در مسیر انجام داد که مطابق قانون اهم ، مقدار ولتاژ را در سرتاسر آن ، متناسب با جریان موجود در آن خارج میکند. مقدار این ولتاژ بسیار کم خواهد بود ، بنابراین برای تقویت آن از op-amp استفاده می کنیم. مدار برای این قسمت در زیر نشان داده شده است.

مدار اندازه گیری جریان با آردوینو

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

در اینجا مقدار مقاومت شنت SR1 0.22 اهم است. همانطور که در ابتدا گفته شد ، ما در حال طراحی مدار برای اندازه گیری جریان 0-1A هستیم تا براساس قانون اهم بتوانیم میزان ولتاژ را در طول این مقاومت محاسبه کنیم که در صورت عبور حداکثر جریان یعنی 1 آمپر، ولتاژ دریافتی حدود 0.2 ولت خواهد بود. این ولتاژ برای خوانده شدن توسط میکروکنترلر بسیار اندک است ، ما از یک آپ امپ LM358 در حالت تقویت کننده غیر معکوس استفاده می کنیم تا ولتاژ را از 0.2 ولت به مقادیر بالاتر برسانیم تا آردوینو بتواند آن را بخواند.

عملکرد Op-Amp در حالت غیر معکوس در بالا نشان داده شده است. تقویت کننده به گونه ای طراحی شده است که از مقدار بهره 21 برخوردار باشد ، به طوری که 0.2*21 = 4.2V باشد. فرمول محاسبه بهره Op-amp در زیر آورده شده است.

Gain = Vout / Vin = 1 + (Rf / Rin)

در اینجا مقدار Rf = 20k و مقدار Rin = 1k است که مقدار بهره 21 را به ما می دهد. ولتاژ تقویت شده از Op-amp سپس به فیلتر RC با مقاومت 1k و خازن 0.1uF داده می شود. اینکار باعث میشود نویز ها و نوسان ها حداقل شوند. سرانجام ولتاژ به پین آنالوگ آردوینو تغذیه می شود.

آخرین بخشی که در واحد اندازه گیری باقی مانده است ، قسمت تنظیم کننده ولتاژ است. از آنجا که ما یک ولتاژ ورودی متغیر خواهیم داشت، برای کارکرد Arduino و Op-amp به یک ولتاژ 5 ولت تنظیم شده نیاز داریم. این ولتاژ تنظیم شده توسط تنظیم کننده ولتاژ 7805 تامین می شود. یک خازن در خروجی اضافه می شود تا نویز را فیلتر کند.

استفاده از تنظیم کننده ولتاژ با Arduino

واحد محاسبه و نمایش آمپر، ولت و وات

در واحد اندازه گیری ما مدار را برای تبدیل پارامترهای ولتاژ و جریان به 0-5 ولت طراحی کرده ایم که می توانند به پین ​​های آنالوگ آردوینو تغذیه شود. اکنون در این بخش از مدار این سیگنال های ولتاژ را به آردوینو متصل خواهیم کرد و همچنین یک صفحه نمایش ال سی دی کاراکتری 16*2 را به آردوینو متصل میکنیم تا بتوانیم نتایج را مشاهده کنیم.

واحد محاسبه و نمایش آمپر، ولت و وات 

همانطور که می بینید پین ولتاژ به پین ​​آنالوگ A3 وصل شده و پین جریان به پین ​​آنالوگ A4 وصل شده است. ال سی دی از +5V از 7805 تغذیه می شود و به پین ​​های دیجیتال آردوینو وصل می شود تا در حالت 4 بیتی کار کند. ما همچنین از پتانسیومتر (10 کیلو اهم) متصل به پین ​​CON برای تغییر در کنتراست LCD استفاده کرده ایم.

مطلب پیشنهادی:  اندازه گیری فاصله بین دو وسیله با آردوینو

برنامه نویسی محاسبه جریان و ولتاژ در آردوینو

حالا که درک خوبی از سخت افزار داریم ، اجازه دهید Arduino را باز کنیم و برنامه نویسی را شروع کنیم. هدف از کد خواندن ولتاژ آنالوگ در پین A3 و A4 و محاسبه مقدار ولتاژ ، جریان و توان و درنهایت نمایش آن بر روی صفحه LCD است. کد کامل در انتهای صفحه در فایل دانلودی قرار داده شده است. در اینجا بعضی از قسمت های کد را بررسی میکنیم.

اول از همه پین های مورد نیاز را تعریف میکنیم. در پروژه از پین A3 و A4 برای اندازه گیری ولتاژ و جریان استفاده می شود و از پین های دیجیتالی 3،4،8،9،10 و 11 برای ارتباط LCD با آردوینو استفاده می شود.

int Read_Voltage  = A3;
int Read_Current  = A4;
const int rs = 3, en = 4, d4 = 8, d5 = 9, d6 = 10, d7 = 11; //پین های LCD
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

در داخل عملکرد viod setup، نمایشگر LCD را فعال می کنیم و متن مقدمه را با عنوان “Arduino Wattmeter” نمایش می دهیم و قبل از پاک کردن آن دو ثانیه صبر می کنیم.

void setup() {
  lcd.begin(16, 2); //شروع کار ال سی دی
  lcd.print(" Arduino Wattmeter"); //نمایش متن
  lcd.setCursor(0, 1); // ردیف دوم ستون اول
  lcd.print("IRENX.IR"); //نمایش متن
  delay(2000); // 2 ثانیه تاخیر
  lcd.clear(); // پاکسازی ال سی دی
}

در داخل تابع void loop ، از تابع analog read برای خواندن مقدار ولتاژ از پین A3 و A4 استفاده می کنیم. همانطور که می دانیم مقدار خروجی آنالوگ به دیجیتال از آردوینو از 0-1203 است زیرا دارای ADC 10 بیتی است (در مورد آنالوگ به دیجیتال در آردوینو بیشتر بدانید). این مقدار باید به 0-5 ولت تبدیل شود که می تواند با ضرب (5/1023) انجام شود. در سخت افزار مقدار واقعی ولتاژ را از 0-24V به 0-5V و مقدار جریان را از 0-1A تا 0-5V تبدیل کردیم. بنابراین اکنون ما مجبور هستیم از ضرب برای بازگرداندن این مقادیر به مقدار واقعی استفاده کنیم. این کار با ضرب کردن آن با یک مقدار انجام می شود. مقدار ضریب را می توان به صورت تئوری با استفاده از فرمول های ارائه شده در عقب تر محاسبه کرد. در اینجا مقدار ضرب 6.46 و 0.239 است. از این رو :

float Voltage_Value = analogRead(Read_Voltage);
 float Current_Value = analogRead(Read_Current);

 Voltage_Value = Voltage_Value * (5.0/1023.0) * 6.46;
 Current_Value = Current_Value * (5.0/1023.0) * 0.239;

چگونه با دقت بیشتری اندازه گیری کنیم؟

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

هنگامی که مقدار ولتاژ و جریان واقعی را از طریق بار محاسبه کردیم ، می توانیم با استفاده از فرمول ها توان را محاسبه کنیم P = V * I. سپس با استفاده از کد زیر ، تمام سه مقدار را روی صفحه نمایش LCD نمایش می دهیم.

lcd.setCursor(0, 0);
 lcd.print("V="); lcd.print(Voltage_Value);
 lcd.print("  ");
 lcd.print("I=");lcd.print(Current_Value);

 float Power_Value = Voltage_Value * Current_Value;

 lcd.setCursor(0, 1);
 lcd.print("Power="); lcd.print(Power_Value);

فیلم عملکرد پروژه وات متر با آردوینو

پس از آماده سازی سخت افزار ، کد Arduino را در برد نانو بارگذاری کنید. پتانسیومتر را تنظیم کنید تا سطح کنتراست LCD را کنترل کنید تا زمانی که متن مقدمه را روشن ببینید. برای کار این پروژه باید ولتاژ منبع بیش از 6 ولت باشد ، زیرا آردوینو برای کار به 5+ ولتاژ نیاز دارد. اگر همه چیز خوب کار کند ، باید مقدار ولتاژ، آمپر و وات را در ال سی دی مشاهده کنید. فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.

مطلب پیشنهادی:  آموزش تبدیل متن به گفتار TTS با برد آردوینو

موارد موجود در فایل : سورس کامل ، شماتیک

دانلود فایل های پروژه

میخواهید برنامه نویسی STM32 را یاد بگیرید؟

دوره آموزش STM32

میخواهید الکترونیک را یاد بگیرید؟

دوره آموزش الکترونیک
دوره آموزش آردوینو

میخواهید آردوینو را به صورت پروژه محور یاد بگیرید؟ برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید

محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

9 نظر

  1. سلام ممنون از آموزش خوبتون
    می خواستم بدونم میشه بجای مقاومت 20k از 22k یا 18k استفاده کرد؟
    چون من هرجا رو گشتم این مقاومت رو پیدا نکردم

    1. سلام جناب، ممکنه مقادیر دقیقی بدست نیارین.

    2. سلام
      خیلی ممنون
      ببخشید یک سوال دیگه داشتم اون لامپی که استفاده کردید برای چی هست؟ و در کجا شماتیک مدار قرار داره؟
      لطفا مدلش رو هم بفرمایید.

      سپاس

    3. در این پروژه ما اندازه گیری توان اون لامپ رو انجام میدیم. در شماتیک با Load+ و Load- مشخص شده. هر چیزی که میخواید توان مصرفیش رو بدست بیارید کافیه به همین قسمت load + و – متصل کنید. حالا میتونه لامپ باشه یا هر چیز دیگه ای.

  2. سلام
    ماژولی رومیشناسید که بتونه جریان (4تا20 میلی آمپر) رو که از یک سنسور صنعتی میاد رو بگیره ومن بتونم در آردیونو ازش استفاده کنم؟؟؟

  3. با سلام خدمت آقای رحیمی و عرض خسته نباشید . ببخشید بنده یک سوال ازتون داشتم . برای ساختن یک پروژه ی سولار که احتیاج داریم به یک صفحه خورشیدی ، ال سی دی کاراکتری، برد آردوینو نانو و نمایش آمپراژ و ولتاژ و دما پنل به صورت حافظه دار باید باشه که بتوانیم مقادیر خواسته شده را مثلا در بازه زمانی هر نیم ساعت به ما نمایش دهد احتیاج داریم به ماژول نگهدارنده زمان مثل tiny rtc 12 c
    شما درباره نقشه ی مدار و نحوه ی اتصالات قطعات راهنمایی میکنید

    1. سلا جناب، ما پروژه سفارشی انجام نمیدیم میتونید از مطالب سایت استفاده کنید.

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

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *