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

پروژه ساخت تاکومتر (دورسنج) با استفاده از آردوینو

به نام خدا

پروژه ساخت تاکومتر (دورسنج) با استفاده از آردوینو

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

 

مفهوم وقفه :

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

 

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

بیشتر بخوانید...  10 فایل PDF برای آموزش ساخت کوادکوپتر

 

قطعات مورد نیاز برای پروژه ی ساخت تاکومتر با استفاده از آردوینو

• سنسور Half efect

• آردوینو یونو

 

• آهنربای کوچک

 

• سیم برد بوردی

• جسم دوار مثل یک شفت آرمیچر

 

راه اندازی مدار پروژه ساخت تاکومتر (دورسنج) با استفاده از آردوینو

راه اندازی مدار به ترتیب مراحل زیر است:

در آهنربای کوچک را باید در قسمت شفت آرمیچر یا جسم دواری که می خواهیم تعداد دورش را بشماریم با چسب می چسبانیم.

سنسور half effect دارای یک آشکار ساز در جلوی خود  و سه پین اتصال است . پین های Vcc و GND آن ب ترتیب باید به پین ۵ ولت آردوینو و زمین آن متصل گردند. خروجی نیز به پین ۲ دیجیتال آردوینو متصل است. در شکل زیر تمامیه اتصالات قابل مشاهده اند.

 

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

دانلود فایل
int sensor = 2; // Hall sensor at pin 2

volatile byte counts;

unsigned int rpm; //unsigned gives only positive values

unsigned long previoustime;

void count_function()

{ /*The ISR function

Called on Interrupt

Update counts*/

counts++;

}

void setup() {

Serial.begin(9600);

//Intiates Serial communications

attachInterrupt(0, count_function, RISING); //Interrupts are called on Rise of Input

pinMode(sensor, INPUT); //Sets sensor as input

counts= 0;

rpm = 0;

previoustime = 0; //Initialise the values

}

void loop()

{

delay(1000);//Update RPM every second

detachInterrupt(0); //Interrupts are disabled

rpm = 60*1000/(millis() - previoustime)*counts;

previoustime = millis(); //Resets the clock

counts= 0; //Resets the counter

Serial.print("RPM=");

Serial.println(rpm); //Calculated values are displayed

attachInterrupt(0, count_function, RISING); //Counter restarted

}

 

بیشتر بخوانید...  ارسال دیتا بوسیله آردینو و وای فای به صفحه وب

 

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

*
*