ساخت فاصله سنج بسیار دقیق
امروزه شیوه های متفاوتی برای اندازه گیری فاصله در صنعت بکار گرفته می شود، که یکی از آن شیوه ها، که در این پروژه از مبحث آموزش آردوینو بکار گرفته شده است، اندازه گیری فاصله یا ساخت فاصله سنج با امواج فراصوت (آلتراسونیک) می باشد. در این فاصله سنج ها (فاصله یابی با امواج اولتراسونیک)، ابتدا امواج را در جهت مورد نظر ارسال می کنیم. این امواج پس از برخورد با موانع موجود در مسیر، باز می گردند. با محاسبه زمان رفت و برگشت امواج ارسالی و مشخص بودن سرعت امواج اولتراسونیک، می توان فاصله را تعیین کرد.
امواج اولتراسونیک یا UT چیست؟
امواج اولتراسونیک از نظر فیزیکی، مانند صوت، جزو امواج مکانیکی طول طبقه بندی می شوند. به عبارت دیگر برای انتشار این امواج، ذرات در راستای انتشار موج، نوسان می کنند. طبیعی است که برای انتشار امواج صوتی (Sonic/Sound Waves) به محیطی از ماده (جامد، مایع یا گاز) نیازمندیم و این امواج در خلا، جایی که هیچ یک از انواع ماده وجود ندارند، منتشر نمی شوند. تفاوت امواج اولتراسونیک و صوت در این است که فرکانس امواج اولتراسونیک بالای 20KHz و فراتر از محدوده شنیداری انسان می باشد و به همین دلیل اولتراسونیک یا فراصوت نام گرفته اند.
برای ارسال امواج اولتراسونیک در محیط باید از فرستنده و برای دریافت این امواج باید از گیرنده مخصوص استفاده کنیم. در مقایسه با امواج صوتی، می توان فرستنده را به بلندگو و گیرنده را به میکروفون تشبیه کرد. معمولا هر یک از گیرنده ها و فرستنده های اولتراسونیک برای کار در فرکانسی خاص ساخته می شوند و بنابراین باید فرستنده و گیرنده های سازگار با هم (یعنی با فرکانس کاری برابر) به کار روند. معمولا در فاصله سنج ها با امواج اولتراسونیک، از فرستنده ها و گیرنده هایی با فرکانس کاری 40KHz استفاده می شود.
ماژول اولتراسونیک HY-SRF 05
طبق توضیحاتی که تا به الان داده ایم، برای اینکه بتوانیم توسط امواج اولتراسونیک فاصله را اندازه گیری کنیم، ابتدا باید توسط یک مدار نوسان ساز فرکانس 40KHz را برای سنسور فرستنده اولتراسونیک ارسال کنیم و سپس فرکانس دریافتی در سنسور گیرنده اولتراسونیک را توسط یک مدار تقویت کننده جهت محاسبه زمان ارسال و دریافت سیگنال، تقویت کنیم. به طور حتم برای ساخت فرکانس 40KHz و تقویت کننده، نیاز به دو مدار نوسان ساز و مدار تقویت کننده داریم، که ساخت آن ها کاری زمانبر و دشوار است. اما نگران نباشید!
ماژول اولتراسونیک SRF05 علاوه بر داشتن دو سنسور فرستنده و گیرنده اولتراسونیک 40KHz ، دارای مدار نوسان ساز و تقویت کننده نیز می باشد که همگی آن ها بر روی یک برد بسیار کوچک در ابعاد 2 در 4/5 سانتی متر قرار گرفته اند، که این موضوع باعث شده کار با آن و راه اندازی ماژول بسیار راحت شود. همچنین ماژول اولتراسونیک SRF 05 یک ماژول بسیار کامل و البته ارزان قیمت می باشد که توسط آن می توان فاصله ای تا حداکثر 5 متر را اندازه گیری نمود.
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
ماژول آلتراسونیک SRF05 مناسب اندازه گیری فاصله | 1 عدد |
LCD کاراکتری مدل 16×2 با Backlighting آبی | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
توضیحات ساخت مدار پروژه
برای آزمایش پروژه آردوینو و شروع برنامه نویسی ابتدا لازم است سخت افزار پروژه بسته شود، به همین خاطر ابتدا طبق نقشه شماتیک زیر، ال.سی.دی کاراکتری و ماژول اولتراسونیک SRF05 را به برد آردوینو Arduino Uno اتصال دهید. همچنین در ادامه می توانید فیلم آموزشی و توضیحات بیشتری در رابطه با نحوه اتصال LCD کاراکتری و ماژول به برد آردوینو مشاهده کنید.
نحوه اتصال LCD کاراکتری به برد آردوینو
ال.سی.دی های کاراکتری به صورت کلی دارای 16 پایه هستند که در این پروژه برای اتصال آن به برد آردوینو کافی است طبق جدول زیر اتصالات را انجام دهید. همچنین لازم به ذکر است پایه های 7 و 8 و 9 و 10 در LCD کاراکتری به جایی متصل نمی شوند.
نحوه اتصال ماژول اولتراسونیک SRF05 به برد آردوینو
ماژول اولتراسونیک SRF05 به صورت کلی دارای 5 پایه است، که در این پروژه برای اتصال آن به برد آردوینو کافی است طبق جدول زیر اتصالات را انجام دهید. همچنین لازم به ذکر است در این پروژه پایه های OUT در ماژول اولتراسونیک SRF05 به جایی متصل نمی شود.
برنامه آردوینو در نرم افزار آردوینو
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 |
#include <LiquidCrystal.h> LiquidCrystal lcd(8, 9, 10, 4, 5, 6, 7); double duration = 0; double distance = 0; void setup() { lcd.begin(16,2); lcd.print("hello, world!"); analogWrite(11, 120); analogWrite(3, 255); pinMode(12, OUTPUT); pinMode(13, INPUT); delay(2000); } void loop() { delayMicroseconds(2); digitalWrite(12 , LOW ); delayMicroseconds(10); digitalWrite(12 , HIGH); duration = pulseIn(13 , HIGH); distance = (duration / (58)); lcd.print("distance:"); lcd.print(distance); lcd.print("cm"); lcd.setCursor(0, 2); lcd.print(" electronics 98 "); delay(500); lcd.clear(); } |
با سلام و خسته نباشید خدمت شما آقای اکبری!
من این پروژه را با برد آردوینو اونو بستم(تو این پروژه من سروو موتور هم اضافه کردم)؛ولی به محض اینکه پروژه را روشن کردم،ناگهان چراغ ال سی دی و برد آردوینو ضعیف شد و بعد آن دیگر پروژه اجرا نشد!
آردوینو قبل پروژه سالم بود و کد ها به درستی بر روی آن آپلود شده بود؛ولی وقتی که از مدار خارجش کردم و تستش کردم،دیدم که آردوینو سوخته و هیچ کدی روش آپلود نمیشه!
1-به نظرتون چرا برد آردوینو سوخت؟
2-آیا به نظر شما دلیل سوختن از جریان کشی نبوده؟
3-شما چه راه کاری رو برای جلوگیری از جریان کشی و نشتی جریان سایر قطعات الکترونیکی بر روی قطعات حساس الکترونیکی دیگر،پیشنهاد می کنید؟؟؟(این خیلی مهمه!)
4-ضمنا من در این پروژه از 2 باطری لیتیومی یون3.7 ولت(به صورت موازی) که به یک ماژول افزاینده تا5ولت وصل کرده بودم،استفاده کردم.((باطری هام از سال پیش مونده بودن.ولی من شارژش کردم؛ولی به 4.2 نرسید تا 3.9 ولت شارژ شد.))به نظر شما این مشکل جریان کشی از ضعف باطری ها نبوده؟چون اگه مشکل از باطری بوده من اونو عوض کنم.
از پاسخ شما استاد بزرگوار به سوالاتم،بسیار بسیار متشکرم!
سلام دوست عزیز
بیشترین دلیل صدمه دیدن برد آردوینو شما جریان کشی بیش از اندازه از برد آردوینو بوده است، لطفا توجه داشته باشید در پروژه هایی که نیاز به افزودن قطعاتی با جریان مصرفی نسبتا بالا است، حتما باید تغذیه آن قطعه از یک منبع تغذیه خارجی و با یک رگولاتور خارجی صورت بگیرد. از همین رو برای راه اندازی سرو موتور حتما باید از یک منبع تغذیه خارجی برای تغذیه آن استفاده کنید در غیر اینصورت برد آردینو صدمه خواهد دید.
سلام وقتت بخیر ممنون بابت اموزش خوبتون ، ببخشید من میخواسم به همین پروژه ماژول کارت حافظه اضاف کنم که فاصله اندازه گیری شده ثبت بشه اگه میشه راهنمایی کنید که نحوه اتصال سیم ها کد نویسیش چجوری باید باشه ؟؟
سلام خسته نباشید من همین پروژه رو دارم با این تفاوت که ماژول من sef04 هست خواستم بدونم با توجه به اینکه در این جا out ماژول srf05 کار نمیکنه من میتونم شماتیک رو و برنامه ی 05 رو روی 04 اجرا کنم؟
سلام برای ماژول srf04 هم از این کد و شماتیک میشه استفاده کرد؟
سلام دوست عزیز
بله می توانید از ماژول SRF04 نیز استفاده کنید.
سلام چگونه میتوانم تنظیم کنم که در فاصله10 سانتی متری الارم بده و چگونه این وسیله الارم میده یا چگونه میتونم برای الارم اش بیزر استفاده کنم
با سلام و احترام
برای این موضوع باید در برنامه پروژه در حلقه Loop یک شرط تعریف کنید که اگر مقدار اندازه گیری شده (متغیر distance) برابر با 10 شد یک پایه آردوینو 1 شود و به همان پایه نیز یک بازر 5 ولتی با اسیلاتور داخلی متصل کنید.
سلام بنده پروژه انجام دادم ، هنگامی که وصل میشم به کامپیوتر و برنامه را اپلود میکنم ، همچی روشن و درسته ولی هنگام پایان اپلود یک ارور در اردینو برای کد میاد ، نمیدونم باید چیکار کنم ارور این هست :
avrdude: stk500_getsync() attempt 9 of 10 : not in sync : resp=0×ba
از همین کد که داخل سایت استفاده کردم و اتصالات مثل عکس هست ، میشه بگین مشکل کجاست؟؟؟؟؟؟
با سلام و احترام
در هنگام پروگرام کردن برنامه، برد آردوینو را به صورت کامل از مدار و تمامی قطعات جدا کنید و پس از اتمام عملیات پروگرام شدن آنرا به مدار مجدد متصل کنید.