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

دانلود پروژه ی دور سنج با آردوینو به همراه کد برنامه

دور سنج با آردوینو

به نام خدا

پروژه ی دور سنج با آردوینو به همراه کد برنامه

دور سنج با آردوینو

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

 

 

دور سنج با آردوینو

بعد از ۵ ثانیه آردوینو با استفاده فرمول زیر تعداد دور در دقیقه را محاسبه می کند.

تعداد دور در دقیقه= تعداد شمارش x  عدد ۱۲ تقسیم بر تعداد پره های در حال چرخش.

این پروژه را ما بر روی ک پنکه ی سقفی پیاده کردیم و که فرمول به حالت زیراست

RPM=count x ۱۲ / objects

بیشتر بخوانید...  اندازه گیری دما با استفاده از سنسور DS18B20 و رزبری پای

object = تعداد پره ها.

 

قطعات مور نیاز برا پروژه ی دور سنج با آردوینو:

آردوینو

سنسور مادون قرمز

ال سی دی

میکروسوئیچ

بردبورد

باتری ۹ ولتی

سیم برد بورد

شماتیک مدار :

دور سنج با آردوینو

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

میتوان با یک پتانسیومتر مقدار حساسیت سنسور را افزایش و یا کاهش داد. به محض فشار دادن میکروسوئیچ  ۵ ثانیه طول می کشد تا آردوینو مقدار دور در دقیقه را ازطریق ال سی دی به ما گزارش کند.

 

دور سنج با آردوینو

خروجی ماژول مادون قرمز به طور مستقیم به پین ۱۸ آردوینو متصل شده است. Vcc و زمین ماژول به ترتیب به Vcc  و زمین آردوینو متصل شده است. ال سی دی نیز در مود چهار بیتی متصل شده است.

 

 

بیشتر بخوانید...  موقعیت یابی یک ماشین با Google Map به وسیله آردینو، ESP8266 و GPS

دانلود کد برنامه دور سنج با آردوینو:

دانلود فایل
#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)

*
*