
به نام خدا
پروژه ی دور سنج با آردوینو به همراه کد برنامه
Tachometer یک دور شمار است که تعداد دور در دقیقه را به ما می دهد. دو دسته دور شمار وجود دارد یکی مکانیکی و دیگری دیجیتال. در اینجا ما به طراحی یک دور سنج دیجیتال با آردوینو می پردازیم که از ماژول مادون قرمز برای تعداد چرخش ها استفاده می کند. هنگامی که اشعه ی مادون قرمز ارسال می شود ، گیرنده اشعه ی بازتاب شده را در یافت می کند در خروجی خود یک پالس ظاهر می کند.
بعد از ۵ ثانیه آردوینو با استفاده فرمول زیر تعداد دور در دقیقه را محاسبه می کند.
تعداد دور در دقیقه= تعداد شمارش x عدد ۱۲ تقسیم بر تعداد پره های در حال چرخش.
این پروژه را ما بر روی ک پنکه ی سقفی پیاده کردیم و که فرمول به حالت زیراست
RPM=count x ۱۲ / objects
object = تعداد پره ها.
قطعات مور نیاز برا پروژه ی دور سنج با آردوینو:
آردوینو
سنسور مادون قرمز
ال سی دی
میکروسوئیچ
بردبورد
باتری ۹ ولتی
سیم برد بورد
شماتیک مدار :
در بالا شماتیک مدار را مشاهده می کنید. تمامیه پروسه را آردوینو تحت کنترل دارد. از خواندن پالس ماژول مادون قرمز تا محاسبه ی تعداد دور و راه اندازی ال سی دی همگی توسط آردوینو انجام می شود.
میتوان با یک پتانسیومتر مقدار حساسیت سنسور را افزایش و یا کاهش داد. به محض فشار دادن میکروسوئیچ ۵ ثانیه طول می کشد تا آردوینو مقدار دور در دقیقه را ازطریق ال سی دی به ما گزارش کند.
خروجی ماژول مادون قرمز به طور مستقیم به پین ۱۸ آردوینو متصل شده است. Vcc و زمین ماژول به ترتیب به Vcc و زمین آردوینو متصل شده است. ال سی دی نیز در مود چهار بیتی متصل شده است.
دانلود کد برنامه دور سنج با آردوینو:
دانلود فایل#include <LiquidCrystal.h> LiquidCrystal lcd(3, 2, 4, 5, 6, 7); #define sensor 18 #define start 10 int delay1() { //unsigned int long k; int i,j; unsigned int count=0; for(i=0;i<1000;i++) { for(j=0;j<1227;j++) { if(digitalRead(sensor)) { count++; while(digitalRead(sensor)); } } } return count; } void setup() { pinMode(sensor, INPUT); pinMode(start, INPUT); pinMode(13, OUTPUT); lcd.begin(16, 2); lcd.print("Techometer"); lcd.setCursor(0,1); lcd.print("Circuit Digest"); delay(2000); digitalWrite(start, HIGH); } void loop() { unsigned int time=0,RPM=0; lcd.clear(); lcd.print(" Please Press "); lcd.setCursor(0,1); lcd.print("Button to Start "); while(digitalRead(start)); lcd.clear(); lcd.print("Reading RPM....."); time=delay1(); lcd.clear(); lcd.print("Please Wait....."); RPM=(time*12)/3; delay(2000); lcd.clear(); lcd.print("RPM="); lcd.print(RPM); delay(5000); }
دیدگاهها (0)