
به نام خدا
پروژه ی اندازه گیری میدان مغناطیسی با آردوینو به همراه کد برنامه

در این پروژه ما از اصل تبدیل سیگنال آنالوگ به دیجیتال در آردوینو یونو استفاده می کنیم. در اینجا از سنسور hall effect استفاده می کنیم تا مقدار میدان مغناطیسی را محاسبه کنیم. نام سنسوری که از آن استفاده می کنیم UGN3503U می باشد. این سنسور یک سنسور هال می باشد که میدان مغناطیسی را تشخیص می دهد و از خروجی خود با توجه به مقدار نیروی میدان ولتاژ متغییری را ایجاد می کند.
در شکل زیر شماتیک یک سنسور UGN3503U را مشاهده می کنید که سه پایه دارد. هنگامی که میدان مغناطیسی توسط این سنسور اندازه گیری شد مقدار ان بر روی ال س دی نمایش داده می شود.

آردوینو دارای شش کانال انالوگ به دیسی می باشد که ورودی های سیگنال انالوگ می باشد. UNO ADC دارای ۱۰ بیت رزولوشن می باشد که مقادیر ۰ تا ۱۰۲۳ را خواهد داشت. به این معنی ست که ولتاژ بین ۰ تا ۵ ولت را به ۰ تا ۱۰۲۳ قسمت تبدیل می کند. پس هر واحد آن برابر با ۴٫۹ میلی ولت می باشد.
قطعات مورد نیاز پروژه ی اندازه گیری میدان مغناطیسی با آردوینو:
آردوینو یونو
منبع تغذیه ۵ ولتی
ال سی دی ۲ در ۱۶
خازن ۱۰۰ پیکو فارادی دو عدد
سنسور UGn3503U
شماتیک مدار پروژه ی اندازه گیری میدان مغناطیسی با آردوینو :
در شکل زیر شماتیک مدار را مشاهده می کنید دقت کنید که تمامیه اتصالات را به درستی انجام دهید. همچنین در صورت نیاز می توانید از یک پتانسیومتر برای افزایش مقدار کنتراست ال سی دی استفاده کنید.

دانلود کد برنامه پروژه ی اندازه گیری میدان مغناطیسی با آردوینو :
دانلود فایل#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);/// REGISTER SELECT PIN,ENABLE PIN,D4 PIN,D5 PIN, D6 PIN, D7 PIN
char ADCSHOW[5];//initializing a character of size 5 for showing the ADC result
void setup()
{
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
}
void loop()
{
lcd.print("FluxDensity");//showing name
lcd.setCursor(0, 1);//move to second line
lcd.print("(in Gauss):");// showing units
String ADCVALUE = String((analogRead(A0)-515)/3.76);
/* Now since the default reference if 5V and resolution is 10bit so for every 5/1024 = 5mV, we get one increment is count, The sensor provides increment voltage of 1.3V for every 1Gauss increment if field.
So we need to divide ADC value by 3.76 for getting the gauss value, now the 0 gauss output of sensor is 2.5V so we need to subtract that first. To hold a 0V read at 0Gauss field. */
// Convert the reading to a char array
ADCVALUE.toCharArray(ADCSHOW, 5);
lcd.print(ADCSHOW);//showing the field strength value
lcd.print("G ");
lcd.setCursor(0, 0);// set the cursor to column 0, line 0
}
دیدگاهها (0)