تخفیف 36 درصدی به مناسبت بلک فرایدی

1

کد تخفیف black-friday تنها برای 1 کاربر دیگر قابل استفاده است

پروژه شمارش دور موتور DC با مادون قرمز و AVR

پروژه شمارش دور موتور DC با مادون قرمز و AVR

در اين پروژه از ميکرو کنترلر هاي AVR و زبان برنامه نويسي بيسيک تحت BASCOM استفاده شده است . براي تشخيص حرکت موتور از سنسورهاي مادون قرمز استفاده شده است . راحت ترین تشخیص دور موتور استفاده از شافت انکودر هستش که می تونین از اون استفاده کنین ! ولی شاید به دلیل قیمت بالا و اتصال مکانیکی جالب نباشه و می تونین از روش زیر استفاده کنین :

بر روي شافت موتور خطوط سفيد و سياه رنگي را با تعداد معيين ( به عنوان مثال دو قسمت يکي سفيد و ديگري سياه ) و اندازه يکسان ايجاد کرده و سنسورهاي مادون قرمز را در روبروي آن قرار مي دهيم . همانطور که مي دانيم رنگ سياه نور مادون قرمز را جذب و رنگ سفيد آن را انعکاس مي دهد

سنسور گيرنده مادون قرمز نيز در حرکت موتور پالس هاي را ايجاد مي کند . اگر شافت موتور فقط داراي دو قسمت سياه و سفيد باشد با چرخش موتور با سرعت 1200 دور دقيقه در هر ثانيه سنسور گيرنده مادون قرمز 20 پالس مي دهد . با ضرب اين عدد در عدد 60 مي توان سرعت دور موتور در دقیقه را بدست آورد . اگر شافت موتور داراي دو قسمت سياه و دو قسمت سفيد باشد 40 پالس در هر ثانيه دريافت شده در اين صورت بايد با عدد 30 ضرب شود تا سرعت دور موتور را بدست آوريم  و به همين صورت براي مراحل بالاتر .

شفت موتور

شفت موتور

اگر نقاط سفید و سیاه را 60 تا در نظر بگیریم آنگاه فرکانس دریافتی از گیرنده مادون قرمز همان دوردردقیقه است . البته با افزایش این نقاط احتمال خطا بالا رفته و باید از سنسورهای مادون قرمز دقیق تری استفاده کرد  . در طراحي مدار اين حالت در نظر گرفته شده است و مي توان اين عدد را که دور در ثانیه در آن ضرب می شود را بین 0 تا 99 تغير داد .

سنسور گرما موجود نيز در کنار موتور نصب مي شود تا بتوان دماي موتور را نيز اندازه گرفت . براي سنسور دما از آي سي LM35  استفاده شده است .

اين آي سي با ولتاژ ورودي بين 3 تا 10 ولت به ازاي يک درجه حرارت در خروجي 10 ميلي ولت مي دهد يعني اگر دما 25 درجه باشد خروجي آي سي 250 ميلي ولت است . حداکثر دماي قابل اندازه گيري 125 درجه است .  خروجي آي سي دما به ورودي آنالوگ ميکروکنترلر براي بدست آوردن ولتاژ خروجي آي سي داده شده است .

براي تشخيص خطوط سياه و سفيد ايجاد شده بر روي شافت موتور نيز از مدار زیر استفاده شده است .

مدار تشخیص پالس

مدار تشخیص پالس

با استفاده از کريستال 32768 هرتز و تنظيمات مربوطه تايمر دو هر 0/25 ثانيه سر ريزي اتفاق مي افتد و با فعال بودن وقفه به زير روال SECTIC مي رود .

در مدت زمان يک ثانيه تايمر يک که به عنوان شمارنده استفاده شده است پالس هاي ورودي از سنسور مادون قرمز را مي شمارد همينطور متغير هاي دقيقه و ساعت  و ثانيه به روز مي شوند . عدد موجود در تايمر یک بهمراه تعداد وقفه های تایمر یک در عدد خاصي که قابل تنظيم است ضرب شده و نمايش داده مي شود . متغير هاي زمان هم نمايش داده شده و ورودي آنالوگ نيز براي دريافت مقدار گرما فعال شده و نمايش داده مي شود .

در حالت کار معمول هنگامي که کليد SET را فشار دهيم به بر چسب Temp براي تنظيم دماي ترموستات رفته و مي توان دماي ترموستات را بين 0 تا 125 درجه با استفاده از کليد هاي + و – تنظيم کرد .

ترموستات میانگین 60 ثانیه گذشته  دمای محیط را با دمای تنظیم شده تست کرده و در صورت بیشتر بودن دمای محیط خروجی PORTD.6 را یک می کند .

در حالت کار معمول هنگامي که کليد SET براي چند ثانيه ( حدود 5 ثانیه ) فشارداده شود برنامه به برچسب CC رفته و مي توان با استفاده از کليد هاي + و – ساعت را تنظيم کرد . با دوباره فشاردادن دادن کليد به برچشب MM رفته و در اينجا نيز با استفاده از کليد هاي + و – مي توان دقيقه را تنظيم کرد با دوباره فشاردادن کليد SET به بر چسب SS براي تنظيم ثانيه پرش مي کند . در اينجا با فشردن کليد – ثانيه صفر مي شود و با زدن کليد + اگر ثانيه بين 30 تا 59 باشد ابتدا به دقيقه يک واحد افزوده شده و سپس ثانيه صفر مي شود  و اگر ثانيه کمتر از 30 باشد فقط ثانيه صفر مي شود .

با فشردن دوباره کليد SET به بر چسب WRPM پرش مي کند . در اينجا نيز با فشردن کليد هاي + و – مي توان عددي که در فرکانس ورودي ( تايمر يک ) براي بدست آوردن دور در دقيقه ضرب مي شود را بين 1 الي 99 تنظيم کرد . اگر این عدد را یک انتخاب کنیم می توانیم از مدار به عنوان فرکانس متر استفاده کرد ! با فشردن کليد SET به حالت کار معمول دستگاه باز مي گرديم .

توجه : با نگه داشتن کلید های + و – می توان متغیر مورد تنظیم رو با سرعت بالاتر کم و یا زیاد کرد .

نکته :

در هنگام تنظیم هر متغیر , آن متغیر با فرکانس 2 بار در ثانیه شروع به چشمک زدن می کند .

در صورتی که عدد ضرب شده در دور در ثانیه را یک در نظر بگیریم می توان از مدار بعنوان فرکانس متر در حد چندین مگاهرتز با دقت یک هرتز استفاده کرد . ( RPS * 1 = RPM ) در این صورت ورودی فرکانس متر پایه 11 ( ورودی T1 و یا PORTD.5 ) است.

سعی شود از سنسورهای مادون قرمز با کیفیت بالا استفاده شود و سنسور گیرنده نیز دارای فیلتر اشعه خورشید باشد . ( معمولا دارای رنگ سیاه می باشند . ) و فاصله سنسور ها از شافت موتور که دارای قسمت های سیاه و سفید می باشد حداکثر 10 سانتی متر باشد . ( هر چه کمتر بهتر )

برای OP AMP میتوان از هر مدلی استفاده کرد ( مثل 741 و یا 3130 و یا 324 و … ) .

PORTD.7 ( پایه 13 ) خروجی جهت اتصال به LED جهت نمایش ثانیه است . LED با سرعت یک بار در ثانیه چشمک می زند .

PORTD.6 ( پایه 12 ) خروجی جهت گرمای بیش از اندازه است .( خروجی ترموستات )

پتانسیومتر AD.J IR را طوری تنظیم کنید که اگر سنسورها را روبروی کاغذ سفید قرار دهیم خروجی OpAMP یک شده و در غیر این صورت صفر باشد .

امتیاز و دیدگاه کاربران

ارسال دیدگاه
برای ارسال دیدگاه لازم است ابتدا وارد حساب کاربری خود شوید

محمدحسین

فرکانس کریستال ساعت 32768 هرتز است که در پروتئوس به اشتباه 36768 قرار داده شده است

بسیار متشکرم که این اشتباه را گزارش دادید. خطا در وارد کردن فرکانس کریستال، حتی به اندازه چند کیلوهرتز، می‌تواند تأثیرات قابل توجهی بر عملکرد مدار شما داشته باشد.

کامران محمودزاده
پاسخ
مصطفی

omid varm hamishe shad bashid,mamnonm babate site khobeton

لطف دارین دوست گرامی

کامران محمودزاده
پاسخ
محمد

با عرض سلام آیا توضیحات بیشتری برای درک بهتر کد های نوشته شده این پروژه وجود دارد ؟

سلام از انتهای مطلبی می تونید توضیحات رو دانلود کنید

کامران محمودزاده
پاسخ
مهدی

سلام واقعا سایت عالی دارید
من ی دور سنج میخوام یا سون سگمنت ایا همینو میتونم متصل کنم؟

سلام
برای اتصال سون سگمنت لازم هست کدها را ویرایش کنید و نمیتوان سون سگمنت را مستقیما وصل کنید.

کامران محمودزاده
پاسخ
سعید

سلام دوست گرامی برای تنظیم ساعت نمایشگر باید چه کاری انجام داد ممنون

پاسخ
afshinsalimi85

ممنون از توجهتون. اگه منظورتون از ورودی ولتاژ اصلی، خروجی رگولاتور 7805 هست، اینکار رو کردم. بین پایه های 7 و 8 میکرو (Vcc و GND) یه خازن عدسی 10نانو گذاشته بودم که به توصیه شما 100نانو گذاشتم. بعد از رگولاتور هم یه خازن 100نانو عدسی به همراه یه خازن قطبی 220، یا 330، یا حتی 1000میکروفاراد گذاشتم.هنوز هم عدد خروجی مضربهایی از 60 هست.البته الان بیشتر 180 و 240 رو نشون میده ولی گاهی 300 یا حتی 540 هم میشه. واقعاً عجیبه چون بورد هیچ تغییری نکرده. یه سؤال داشتم: با مولتی متری که خازن رو هم اندازه میگیره میشه خازنهای درحد پیکوفاراد رو اندازه گرفت؟ چون خازنهای 22پیکو مربوط به پایه کریستال رو که با مولتی متر میگیرم یه عدد در حد 1.5نانو نشون میده. واسه چند تا خازن دیگه در حدود همین رنج هم تست کردم نتیجه همین بود. مولتی مترم مارک UNI-T مدل UT136B هست. گفتم شاید خازنهای 22پیکو مشکل دارن عوضشون کردم درست نشد. محدوده خازنهایی که در پایه های کریستال میذاریم چقدره؟

خازن هارو حذف کن خازن داخلی میکرو رو با فعال کرد فیوز بیت CKOPT فعال کنید

کامران
پاسخ
afshinsalimi85

سلام.خسته نباشید. ممنون از وبسایت خیلی خوب و مفیدتون.
من با این مدار به مشکل برخوردم:
من این پروژه رو اول روی بِرِد بورد بستم و با سنسور CNY70 و یه موتور گیربکس حدود 32دور تست کردم جواب داد یعنی عددهایی که میداد حول و حوش 32 بود که مطمئناً بخاطر لرزش دست من خطا داشت.بعدش اومدم عین همون مدار رو روی بورد سوراخدار بستم ولی ایندفه عددهایی که میده مضربهایی از 60 هست یعنی 60، 120، 180،…تا 480.
حدس اولم این بود که کریستال در اثر لحیم کاری خراب شده عوضش کردم و ایندفه واسه ش پین هدر گذاشتم درست نشد.اینم بگم که واسه پایه های کریستال دوتا خازن 22پیکو فاراد گذاشتم چون بدون اونا قاط میزد!!!
میکرو، آپ امپ و سنسور مادون قرمز رو عوض کردم درست نشد.چند نوع آپ امپ گذاشتم: LM741،LM324، LM358 باز نشد.
حتی دوباره روی برد بورد با قطعات نو و جدید و با سنسور “LTH 1550-01” بستم باز همون مشکل هست.
آرایش ورودی های آپ امپ رو تغییر دادم باز درست نشد.
بنظر خودم میکرو رو هم درست پروگرم کردم یعنی منبع کلاکش اسیلاتور RC داخلی 4مگاهرتزه با “SUT 10”! (با توجه به خط اول فایل بسکام).
خلاصه اینکه همه شرایط مثل دفه اولیه که جواب داد ولی جواب نمیده.دیگه عقلم به جایی قد نمیده.این رو هم بگم که مثل فایل Help، پتانسیومتر رو طوری تنطیم کردم که وقتی سنسور جلوی کاغذ سفیده، 1 و بدون کاغذ سفید صفر میده.البته سیگنال 1 من حدود 3.67 ولته و نمیدونم مشکل از اینه یا نه؟ تو دیتاشیت نوشته سطح high ولتاژ ورودی بجز برای پینهای RESET و XTAL1 از (0.6Vcc) تا (Vcc+0.5) هست.ولتاژ تغذیه من 5ولته پس نباید مشکلی باشه.سیگنال صفر هم حدود 200 میلی ولت. واسه تشخیص دور هم شفت موتور رو که قطرش حدود 3 میلیمتره با یه کاغذ سفید پوشوندم و نصفش رو با ماژیک سیاه کردم. نمیدونم کسی به این مشکل برخورده یا نه؟ ممنون میشم اگه کمکم کنید.
راستی میکرو هم ATmega8A هست.
دوهفته س دارم باش ورمیرم نمیشه که نمیشه :(

شما یک کاری کنید ورودی تغذیه میکرو یک خازن 104 عددسی و وردی ولتاژ اصلی هم یک خازن 104 عددسی و یک خازن قطبی 330 یا بیشتر به وردی اصلی تغذیه وصل کنید حالا بردت رو با تینر 10 هزار و یا الکل و یا اسپری خشک تمیز کن و یک تست انجام بده و نیجه رو اعلام کن

کامران
پاسخ
a.r.33

سلام ممنون از سایت خوبتون. میشه بگید اون خطهای آبی توی نقشه پروتیوس چیه؟؟؟

سلام خواهش میکنم دوست خوبم

 

اون ها باس یا گذرگاه بهشون میگن برای کاهش سیم کشی و جلوگیری از شلوغ شدن مدار هست

حسام
پاسخ
hoosein

salam.kamal taghdir va tashkor ra az hamaye dast andar karan site daram.chejori darkhast tarahi bedem?

سلام دوست عزیز . شما میتونید از سایت www.roboeq.com قطعات رو تهیه کنی و شروع به کار ساختن دور سنج کنی و هر جایی هم که به مشکل برخوردی یا سوالی داشتی مطرح کنی ما با کمال میل درخدمتیم و شمارا راهنمایی می کنیم . با تشکر
اگر هم پروژه دیگه ای مدنظرته با ایمیل بهم اطلاع بده kamran1036@gmail.com

رباتیک
پاسخ
×
پروژه رایگان
×
به سبد خرید اضافه شد
×
به سبد خرید اضافه شد