قبل از انجام این پروژه میتوانید به مقاله ی راه اندازی ال سی دی کاراکتری با آردوینو مراجعه کنید
تاکومتر یک شمارندهی RPM است که تعداد چرخش در دقیقه را می شمارد. دو نوع تاکومتر وجود دارد – یکی مکانیکی و دیگری دیجیتالی. در اینجا میخواهیم یک تاکومتر دیجیتالی مبتنی بر آردوینو با استفاده از ماژول حسگر IR برای تشخیص جسم با هدف شمارش چرخش هر جسم دورانی طراحی کنیم. سنسور IR اشعه های IR از خود ساطع کرده که به دریافت کننده این اشعه ها بازتاب داده می شود و میکروکنترلر آردوینو با توجه به نوع کدنویسی تعداد این بازتاب ها در دقیقه را محاسبه میکند و توسط ال سی دی به ما نمایش میدهد.
اما در اینجا دیاگرا این پروژه را با استفاده از پنکه سقفی نشان مشاهده میکنید. بنابراین ما تغییراتی را انجام دادیم که در زیر آورده شده است:
بطوری که منظور از شی همان تعداد تیغه در فن است.
قطعات مورد نیاز برای تاکومتر با آردوینو :
- آردوینو نانو
- شیلد آردوینو نانو
- ماژول سنسور IR
- ال سی دی 16×2
- سیم های جامپر و کابل آردوینو نانو
دیاگرام مداری و توضیحات مربوطه:
همانطور که در مدار تاکومتر بالا نشان داده شده است، این مدار حاوی آردوینو نانو، ماژول سنسور اشعه مادون قرمز، و ال سی دی است. آردوینو کل فرآیند ها مانند خواندن پالس هایی که ماژول حسگر IR با توجه به تشخیص شی ارسال میکند، محاسبه چرخش در دقیقه و ارسال مقدار چرخش در دقیقه به ال سی دی را، کنترل می کند. حسگر مادون قرمز برای تشخیص اشیا استفاده می شود. ما می توانیم حساسیت این ماژول حسگر را با پتانسیومتر داخلی که روی ماژول IR قرار دارد تنظیم کنیم. ماژول حسگر IR شامل یک فرستنده مادون قرمز و یک فوتودیود (دیود گیرنده نور) است که پرتوهای مادون قرمز را شناسایی یا دریافت می کند. فرستنده IR پرتوهای مادون قرمز را ارسال می کند، هنگامی که این پرتوها بر روی هر سطحی می افتند، منعکس شده و توسط فوتودیود تشخیص داده می شوند. خروجی فوتودیود به یک مقایسه کننده متصل است که این خروجی را با ولتاژ مرجع مقایسه می کند و نتیجه به عنوان خروجی به آردوینو داده می شود.
پایه خروجی ماژول سنسور IR مستقیماً به پایه 2 متصل می شود. Vcc و GND به Vcc و GND آردوینو متصل هستند. یک ال سی دی ۲x۱۶ به شیلد آردوینو نانو متصل میشود. مراجعه مکنید به راه اندازی ال سی دی کاراکتری با آردوینو.
برای یادگیری بهتر میتوانید ویدیو ی زیر را مشاهده کنید:
توضیحات کد تاکومتر آردوینو:
در کد ما از تابع خواندن دیجیتال برای خواندن خروجی ماژول حسگر مادون قرمز و سپس محاسبه چرخش در دقیقه استفاده کرده ایم.
#include <Wire.h> #include <LiquidCrystal_I2C.h> //کتابخانه های مورد نیاز را فرامیخوانیم LiquidCrystal_I2C lcd(0x27 ,16,2); //عنوانی برای ال سی دی و نوع آن و سیگنال آن را وارد میکنیم float rev=0 ; //تعدادور int rpm ; //دور در دقیقه int oldtime=0; //تایم اولیه int time; //مدت زمان void isr() //interrupt service routine { rev++; } //روتین سرویس وقفه void setup() { lcd.init() ; //راه اندازی ال سی دی lcd.backlight(); //راه اندازی نور پس زمینه ی ال سی دی lcd.begin(16,2) ; digitalWrite(2 ,HIGH);// Instead of using a pull up resistor attachInterrupt(0,isr,RISING); //attaching the interrupt //راه اندازی سرویس وقفه } void loop() { delay(2000);// 2 //دو ثانیه توقف detachInterrupt(0); //detaches the interrupt while calculating //توقف سرویس روتین وقفه time=millis()-oldtime; //finds the time //محاسبه زمان rpm=(rev/time)*60000; //calculates rpm // محاسبه ی دور در دقیقه oldtime=millis(); //saves the current time //آپدیت کردن زمان اولیه rev=0; //ریست کردن تعداد دورها برای اندازه گیری بعدی lcd.clear() ; //پاک کردن صفحه ی ال سی دی lcd.setCursor(0,0); // Vertical, Horizontal. //مشخص کردن محل نوشتار lcd.print("RPM:"); //نوشتن کلمه ی RPM lcd.setCursor(0,25); //مشخص کردن محل نوشتار lcd.print(rpm); //نوشتن تعداد دور در دقیقه ی محاسبه شده توسط الگورینم attachInterrupt(0,isr,RISING); }