پروژه های آردوینو, پروژه‌ها

راه اندازی سنسور اثر هال از طریق آردوینو

سنسورهای اثر هال

سنسورهای اثر هال با یک میدان مغناطیسی فعال می‌شوند و برای اندازه‌گیری سرعت چرخش میل لنگ ماشین یا چرخ دوچرخه یا برای تشخیص حضور میدان مغناطیسی همانند سیستم هشدار در پنجره یا درب بکاربرده می‌شوند.

وقتی سنسور اثر هال در یک میدان مغناطیسی باشد، میدان نیرویی را بر ماده نیمه هادی سنسور وارد می‌کند و الکترون‌های ماده را از میدان مغناطیسی دور می‌کند. حرکت الکترون‌ها یک تفاوت بالقوه را بین دو طرف ماده نیمه هادی ایجاد می کند که نشان می‌دهد سنسور در یک میدان مغناطیسی قراردارد. سنسور اثرهال به قطبیت میدان مغناطیسی حساس است، وقتی قطب جنوب آهنربا به سمت برچسب‌دار سنسور نزدیک شود، یا وقتی قطب شمال آهنربا به سمت صاف سنسور نزدیک شود، فعال می‌شود. جهت‌گیری آهنربا با یک قطب‌نما تعیین می‌شود.

سنسور اثر هال 3144 به یک مقاومت pull-up نیاز دارد. مقاومت های pull-up داخلی پین‌های ورودی آردوینو می‌توانند بجای اتصال یک مقاومت بین پین‌های VCC و خروجی سنسور بکاربرده شوند. مقاومت pull-up داخلی آردوینو با دستور digitalWrite(pin,INPUT_PULLUP) فعال می‌شود.

کدهای سنسور اثر هال تعداد دور در دقیقه، زمان هر دور و سرعت دوچرخه با لاستیک‌های 700× 32، با محیط 2.16 متر را تعیین می‌کنند. نتایج بر روی مانیتور سریال نمایش داده می‌شوند.

سنسور اثر هال
شکل 1. اتصالات سنسور اثر هال و آردوینو
مقاومت pull-up
مقاومت pull-up

    اتصال به

قطعه

  Arduino VCC (سمت چپ سمت صاف سنسور) Hall VCC
  Arduino GND Hall GND
 پین 8 Arduino (سمت راست سمت صاف سنسور)Hall out

جدول 1. اتصالات برای سنسور اثر هال

کد راه اندازی سنسور هال

				
					int switchPin = 8; // Hall effect sensor pin
int switchState = LOW; // set switch to LOW
int revolution = 0; // number of revolutions
float circum = 2.16; // tyre circumference
unsigned long time = 0; // time (ms) per revolution
float speed, rpm;
int reading;
void setup()
{ // pull-up resistor on hall
pinMode(switchPin, INPUT_PULLUP); // effect sensor pin
Serial.begin(9600); // set baud rate for Serial Monitor
}
void loop()
{
reading = digitalRead(switchPin); // read Hall switch
if(reading != switchState) // switch state changed
{
if (reading == HIGH && switchState == LOW)
{ // start of new revolution
revolution = revolution +1; // increment number of revolutions
time = millis() - time; // time (ms) since last revolution
speed = 3600.0*circum/time; // speed calculationin km/h
rpm = 60000.0/time; // revolutions per minute
Serial.print(revolution); // print number of revolutions
Serial.print("\t"); // and a tab
Serial.print(speed,1); // print speed to 1DP
Serial.print("km/h\t"); // with " km/h" and tab
Serial.print(rpm,0);Serial.println("rpm"); // print rpm, "rpm"
time = millis(); // update revolution time
}
switchState = reading; // update hall switch state
}
}

				
			

 تابع  () time= millis زمان سپری شده از زمان شروع برنامه را برحسب میکرو ثانیه برمی‌گرداند  که از نوع unsigned long است.

 تیم ردرونیک (redronic) مجموعه ای از آموزش ها و پروژه‌های مرتبط با آردوینو را برای شما علاقه‌مندان به الکترونیک و برنامه نویسی فراهم کرده است. جهت مشاهده این پروژه‌ها اینجا کلیک کنید.

نظرتان را درباره این مقاله بگویید 1 نظر

راه اندازی سنسور اثر هال از طریق آردوینو

نوشته های مشابه

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

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