رباتیک و هوافضا

ولتمتر AC با استفاده از آردوینو

ولتمتر AC با استفاده از آردوینو

به نام خدا

ولتمتر AC با استفاده از آردوینو

ولتمتر AC با استفاده از آردوینو

در این پروژه، ما قصد داریم یک دستگاه اندازه گیری ولتاژ AC با استفاده از آردوینو ایجاد کنیم . ما این ولتاژ را بر روی سریال مانیتور آردوینو چاپ می کنیم و همچنین بر روی مولتی متر نشان می دهیم .

 

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

یک ترانسفورماتور ۱۲-۰-۱۲

دیود N4007

خازن ۱uf

مقاومت ۱۰K و ۴٫۷k
دیود زنر (۵ ولت)
آردوینو UNO
سیم برد بوردی

مدار ولتمتر AC با استفاده از آردوینو:

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

ولتمتر AC با استفاده از آردوینو

 اتصالات:

۱٫ اتصال ولتاژ تغذیه (برق شهر) (۲۲۰V) به ترانسفورماتور و ولتاژ پایین (۱۲V)  را به مدار تقسیم ولتاژ وصل کنید .

۲٫مقاومت ۱۰K را بصورت سری با مقاومت ۴٫۷K متصل کنید. اما مطمئن شوید که ولتاژ آن به عنوان ورودی در مقاومت ۴٫۷K باشد.

۳٫دیود ها را نیز همانطور که در تصویر نشان داده شده است متصل کنید.

۴٫خازن و دیود زنر را بصورت موازی با مقاومت ۴٫۷K ببندید.

۵٫یک سیم از پایه N دیود را به پین ​​آنالوگ A0  آردوینو وصل کنید.

 

چرا به مدار تقسیم ولتاژ نیاز داریم؟

ولتمتر AC با استفاده از آردوینو ولتمتر AC با استفاده از آردوینو

 

 

ولتمتر AC با استفاده از آردوینو

از آنجاییکه که ما از ترانسفورماتور  ۲۲۰/۱۲V   استفاده می کنیم، ۱۲ ولت در سیم پیچ ثانویه دریافت می کنیم. از آنجایی که این ولتاژ به عنوان ورودی برای آردوینو مناسب نیست، ما نیاز به یک مدار تقسیم ولتاژ داریم که می تواند ولتاژ مناسب را به عنوان ورودی به آردوینو فراهم نماید.

چرا دیود زنر و خازن متصل است؟

از آنجا که Arduino مقدار ولتاژ منفی را به عنوان ورودی نمی گیرد، ابتدا باید نیم سیکل منفی ولتاژ AC را حذف کنیم تا فقط مقدار مثبت ولتاژ توسط آردوینو گرفته شود.
این ولتاژ اصلاح شده صاف نیست زیرا حاوی موجهای بزرگ است که نمیتواند هیچ مقدار دقیق آنالوگ را به ما بدهد. از این رو خازن به سیگنال a.c متصل شده است.

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

هدف از قرار دادن دیود زنر چیست؟

اگر ولتاژ تغذیه بیشتر از ۵V باشد، آردوینو صدمه ببیند. از این رو یک دیود ۵ ولت زنر  به منظور اطمینان از امنیت آردوینو متصل شده که در صورتی که این ولتاژ بیش از ۵V باشد، آنرا عبور نمی دهد.

ولتمتر AC با استفاده از آردوینو در عمل :

حداکثر ولتاژ  عبوری که می تواند اندازه گیری شود توسط شبیه سازی این مدار در proteus یافت می شود (در بخش شبیه سازی توضیح داده شده است).
آردوینو این ولتاژ را به عنوان ورودی از پین A0 دریافت می کند در تصویر مقادیر آنالوگ بین ۰ تا ۱۰۲۳ تغییر می کند. ۰ ،۰ ولت و ۱۰۲۳، ۵ ولت است.آردوینو سپس این مقدار آنالوگ را به یک مقدار متناظر آن به وسیله یک فرمول تبدیل می کند (توضیح در بخش کد).
شبیه سازی:

ولتمتر AC با استفاده از آردوینو

مدار دقیق در proteus ساخته شده و سپس شبیه سازی شده است. برای پیدا کردن حداکثر ولتاژ این مدار می توان روش آزمون و خطا استفاده کرد .
ولتاژ پیک ولتاژ ۴۴۰ (۳۱۱rms)، ولتاژ پین A0  برابر  ۵ ولت حداکثر بود. از این رو این مدار می تواند حداکثر ولتاژ موثر۳۱۱ ولت را اندازه گیری کند .
شبیه سازی برای ولتاژهای مختلف بین ۲۲۰ تا ۴۰۰ ولت انجام می شود.

توضیحات کد:

m مقدار ورودی آنالوگ دریافت شده در پین A0 است، یعنی:
m=    pinMode (A0,INPUT) ;  // set pin a0 as input pin
برای اختصاص دادن متغیر n از  فرمول (n = (m * .304177 استفاده می شود. ابتدا برخی از محاسبات با استفاده از داده های به دست آمده در بخش شبیه سازی انجام می شود:
همانطور که در عکس شبیه سازی دیده می شود، مقدار آنالوگ ۵V یا ۱۰۲۳ در پین A0 هنگامی که ولتاژ ورودی a.c 311 ولت است، به دست می آید.
بنابراین هر مقدار آنالوگ تصادفی مربوط به (۳۱۱/۱۰۲۳) * m است که در آن m یعنی مقدار آنالوگ به دست می آید.
از این رو ما به این فرمول می رسیم:
(m = (311/1023 *  ولت یا (n = (m * .304177
 حالا این مقدار ولتاژ با استفاده از دستورات سریال به ترتیب زیر نمایش داده می شود.
مقادیر چاپ شده بر روی صفحه نمایش عبارتند از:
Serial.print("   analog input  ") ; // this gives name which is “analog input”  to the printed analog value 

Serial.print(m);// this simply prints the input analog value
ولتاژ A.C مورد نیاز در کد مشخص شده است:
Serial.print("   ac voltage  ") ; // this gives name  “ac voltage”  to the printed analog value 

 Serial.print(n) ;  // this simply prints the ac voltage value

کد های پروژه ی ولتمتر AC با استفاده از آردوینو :

int m;// initialise variable m
float n;//initialise variable n

void setup()
{
  pinMode(A0,INPUT); // set pin a0 as input pin
  Serial.begin(9600);// begin serial communication between arduino and pc
}

void loop()
{
  m=analogRead(A0);// read analog values from pin A0 across capacitor
   n=(m* .304177);// converts analog value(x) into input ac supply value using this formula ( explained in woeking section)
  
   Serial.print("   analaog input  " ) ; // specify name to the corresponding value to be printed
   Serial.print(m) ; // print input analog value on serial monitor
   Serial.print("   ac voltage  ") ; // specify name to the corresponding value to be printed
   Serial.print(n) ; // prints the ac value on Serial monitor
   Serial.println();
}

دانلود کد های پروژه :

دانلود فایل

 

بیشتر بخوانید...  ساخت برد آردوینو با میکروکنترلر ATmega328

 

دیدگاه‌ها (0)

*
*