PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : ساخت encoder با سنسور اثر هال



marde_paeez
30-10-2009, 17:16
سلام دوستان
من قصد دارم یک انکودر برای محاسبه سرعت موتور با سنسور اثر هال بسازم. سنسوری که من استفاده کردم اسمش هست : HYP8R2PA این هم لینکش در شرکت سازنده اشه : [You can see links before reply]
در دیتاشیت این سنسور نوشته بود که از ولتاژ 12 تا 24 باید بهش داد تا کار کنه. من اول بهش 14 ولت دادم. یعنی یک سیم +14 یک سیم گراند و سیم سوم را به یک led وصل کردم. اینطوری وقتی یه فلز رو جلوش می گرفتم led روشن میشد. همچنین ولتاژ خروجی از سنسور با اختلاف خیلی کمی همون 14 ولت بود. من ولتاژ ورودی رو کم کردم تا 8 ولت و دیدم که تا 8 ولت led روشن میشه و تصمیم گرقتم که از این ولتاژ استفاده کنم. بدین ترتیب که با یک 7808 ولتاژ ورودی رو روی 8 ولت فیکس کردم. و خروجی سنسور رو (که اون هم تقریبا 8 ولت بود) اول با یک مقاومت 10کیلو هم pull down کردمش که نویز نداشته باشه و یعد به یک 7805 دادم (البته دو تا خارن هم باهاش pull down کردم که نویز ها رو هم بگیره) تا 5 ولتش بکنه و بتونم بدمش به میکرو.
سوال اولم اینه که تبدیل آنالوگ به دیجیتال با این روش کار معقولیه. آخه اول خواستم با یک lm324 که یک opamp است این کار رو انجام بدم اما ولتاژ خروجی اون در حالت 1، 3.78 بود که به درد فرستادن به میکرو نمیخورد.
کاری تا اینجا همه چیز خوب کار می کرد چون led روشن می شد.

اصل ماجرا :
من روی موتور یک پره فلزی گذاشتم که هربار از جلوی سنسور عبور میکنه یک پالس به میکرو بفرسته. این پالس هم باعث یک interrupt خارجی میشه و در برنامه interrupt نوشتم که یک متغیر رو زیاد کنه و روی lcd نشون بده. همین! حالا مشکل اینجاست که هنگام عبور پره فلزی از مقابل سنسور گویا بیش از یک پالس ارسال می شود چون متغیر به جای اینکه مثلا از 0، 1 بشه یه دفعه 10 تا زیاد میشه. حتی بعضی وقتا به طرز خیلی عجیبی مقدار متغیر کم میشه! اول سعی کردم با گذاشتن delay در برنامه interrupt این مشکل رو حل کنم اما delay رو هرچه زیاد کردم (مثلا 100 میلی ثانیه) باز هم مشکل وجود داشت. و بیشتر از این هم نمیشد delay داد چون دقت کار رو کم می کرد. حالا می خواستم ببینم پیشنهاد شما برای حل این مشکل چیه؟