همواره اندازه گیری سرعت موتور به عنوان یکی از پارامترهای طراحی مدار در نظر گرفته می شود. در اینجا ما با استفاده از یک سنسور ارزان قیمت و پرکاربرد، سرعت موتورهای الکتریکی را اندازه گیری می کنیم.
ماژول اندازه گیری سرعت
از این سنسور عموما در رباتیک، کنترل سرعت موتور(برای اندازهگیری سرعت موتورهای الکتریکی ) و … استفاده میشود. این ماژول کاربردی بسیار فراوان و ساختمانی ساده برای اتصال به برد آردوینو و راه اندازی دارد و با دقت 5% می تواند سرعت موتور را اندازه گیری کند همچنین این ماژول در سرعت های نزدیک به 10000 تست شده است که کاربردی عالی دارد.
این ماژول برپایه رمزگذاری ساخته شده و عملکردی شبیه به انکودر دارد. هنگامی که یک شفت شروع به چرخش می کند بعد از یک دور کامل مجددا به موقیعت اصلی خود بر می گردد که برای انجام این کار زمانی صرف می شود. با اندازه گیری زمان بین چرخش دور اول و دوم می توان زمان چرخش در یک دور کامل را به دست بیاوریم. با تکرار شدن این عمل در هر ثانیه و ضرب آن در عدد 60 می توانیم تعداد دور را در هر دقیقه به دست بیاوریم.
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
ماژول مادون قرمز TCRT5000 | 1 عدد |
LCD کاراکتری مدل 16×2 با Backlighting آبی | 1 عدد |
ماژول درایور موتورهای استپر مدل A4988 | 1 عدد |
LCD کاراکتری مدل 16×2 با Backlighting آبی | 1 عدد |
ولوم 10kΩ | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
نحوه اتصال ماژول و قطعات به برد آردوینو
در صورتی که LCD کارکتری تهیه نکرده اید می توانید این مدار را بدون LCD راه اندازی کنید به طوری که برای اتصال کافیست پایه وسطی ماژول را به پین شماره 2 آردوینو، VCC را به پین 5 ولت آردوینو و زمین ماژول را به GND آردوینو اتصال دهید. در این صورت برای نمایش تعداد دور موتور کافیست از سریال مانیتور نرم افزار آردوینو استفاده کنید.
و اما اگر بخواهید، سرعت موتور را از طریق LCD به نمایش بگذارید، برای این کار باید کمی بیشتر از حالت قبل سیم کشی کنید. نحوه اتصال ماژول، LCD و سایر قطعات به برد آردوینو در نقشه شماتیک زیر آمده است.
نحوه اتصال LCD به برد آردوینو
1. پین Vss را به GND متصل کنید.
2. پین Vcc ال. سی. دی را به پایه 5 ولت آردوینو اتصال دهید.
3. VEE را به پایه وسطی پتانسیومتر وصل نمائید.
4. RS و RW ال. سی.دی را به ترتیب به پین 4 و زمین آردوینو متصل کنید.
5. پین های DB4, DB5,DB6,DB7 ال. سی.دی را به ترتیب به پین های 4،5،6،7 برد آردوینو وصل نمائید.
6. پایه های LED+ و LED- را به ترتیب به پین های 5ولت و زمین آردوینو اتصال دهید.
شماتیک زیر نحوه آزمایش مدار برای اندازه گیری دور موتور توسط سنسور را نشان می دهد.
برنامه نویسی پروژه
بعد از اتصال قطعات به یکدیگر، کدهای زیر را در نرم افزار آردوینو کپی نموده سپس به برد آردوینو آپلود کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
#include <LiquidCrystal.h> LiquidCrystal lcd(8,9,4,5,6,7); //defining lcd pins const int dataIN = 2; //IR sensor INPUT unsigned long prevmillis; // To store time unsigned long duration; // To store time difference unsigned long lcdrefresh; // To store time for lcd to refresh int rpm; // RPM value boolean currentstate; // Current state of IR input scan boolean prevstate; // State of IR sensor in previous scan void setup() { pinMode(dataIN,INPUT); lcd.begin(16,2); prevmillis = 0; prevstate = LOW; } void loop() { // RPM Measurement currentstate = digitalRead(dataIN); // Read IR sensor state if( prevstate != currentstate) // If there is change in input { if( currentstate == HIGH ) // If input only changes from LOW to HIGH { duration = ( micros() - prevmillis ); // Time difference between revolution in microsecond rpm = (60000000/duration); // rpm = (1/ time millis)*1000*1000*60; prevmillis = micros(); // store time for nect revolution calculation } } prevstate = currentstate; // store this scan (prev scan) data for next scan // LCD Display if( ( millis()-lcdrefresh ) >= 100 ) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Speed of Motor"); lcd.setCursor(0,1); lcd.print("RPM = "); lcd.print(rpm); lcdrefresh = millis(); } } |
سلا وقتتون بخیر.
فیلمی که از راه اندازی گذاشتید داخلش یه پتانسومتر هست . میشه بکید چیه.؟ البته اونکه ولوم داره نه. یمی دیگه هست رو برد برد.
و اینکه فیلم کامل اموزشی پروژه رو ندارید واسه اتصال به بردبورد و بقیه موارد.
نمیدونم چجوری وصل کنم.
اکر کسی میتونه کمکم کنه . با تشکر
با سلام و احترام
پتانسیومتر خوابیده موجود بر روی بردبرد مربوط به تنظیم کنتراست LCD است که با تنظیم آن می توانید میزان روشنایی نوشته های نمایشگر را تنظیم کنید.
راه اندازی این مدار بسیار ساده است و تنها کافیست مطابق نقشه شماتیک به کمک چند تکه سیم، قطعات را به یکدیگر متصل کنید.
ببخشید من از ماژول فرستنده گیرنده مادون قرمز FC-51 استفاده کردم ولی زمانی که موتور رو به چرخش در میارم یه عددهای غیرعادی روی صفحه نمایشم نشون داده میشه
سلام وقتتون بخیر.
من ۴ تا باتری یک و نیم ولتی رو اگه به ماژول a4988 وصل کنم کار میکنه؟؟
واینکه نحوه اتصال به ولوم و مدار چیه
و ماژول چطوری به اردیونو وصل بشه
Lcd وسنسور رو راه انداختم. اما موتور dc حرکت نمیکنه. ماژول رو هم به باطری. ها وصل کردم.
اگه ممکنه بگید هر کدوم از پین ها به چی وصل بشه. با تشکر.
و موتورم ۶ ولته ایا باید بیشتر باشه.
و چه موتوری.
من یه ارمیچر ساده دارم. که کلا دوتا ورودی داره
سلام من گیر کردم .توی وصل کردن درایور. لطفا راهنمایی کنید. اگه شماره تماس دارید بدبد تا تماس بگیرم. وهزینش رو هم هر چقدر میشه میدم
با سلام احترام
این پروژه صرفا برای اندازه گیری سرعت چرخش موتور است، برای راه اندازی آرمیچر می توانید آرمیچر را با دو باتری قلمی راه اندازی کنید و حتی از درایور نیز استفاده نکنید. اگر می خواهید از درایور استفاده کنید می توانید از انواع ماژول های آماده کنترل دور موتور DC استفاده کنید که راه اندازی آن ها بسیار ساده است و نقشه راه اندازی آن ها را با کمی جستجو در گوگل می توانید به راحتی پیدا کنید.