برای مشاهده روند ساخت پروژه ها و محصولات به کانال تلگرام ما بپیوندید           
  خانه محصولات دانلود پروژه ها بحث و گفتگو وبلاگ آموزشها و مقالات تماس با ما  

  فروم khazama.com --> الکترونیک دیجیتال --> شمارش دور موتور

  چهارشنبه 5 ارديبهشت 86 , 10:36 PM


کاربر
amin_amin
تعداد پستها : 38
شمارش دور موتور

سلام من می خام تعداد دورهای موتور رو بشمرم .
اینا رو نوشتم :


interrupt [EXT_INT1] void ext_int1_isr(void)
{
static int t=1;
t=t+1;
PORTA=t;
delay_ms(10) ;
}

اون Delay رو گذاشتم واسه اینکه هر بار که سنسور از جلوی فرستنده رد میشه چند تا پالس نگیره ! (راه بهتری نداره ؟)

حالا سوال من اینه که چرا این بعضی وقتها نمیشماره ؟
یعنی موتور یک دور می زنه ولی خروجی تغییر نمی کنه . (مخصوصا" تو سرعتهای بالا)

باید چی کار کنم ؟

ممنون

  چهارشنبه 5 ارديبهشت 86 , 11:59 PM


مدیر سایت
behzad
تعداد پستها : 905

درود .

استفاده از تاخیر در این قسمت کار درستی نیست . وقفه رو باید طوری تنظیم کنید (از طریق wizard یا مستقیم با رجیسترهای وقفه) که با لبه پالس فعال بشه با این ترتیب دیگه مشکل تحریک چند بار رو ندارید و تا زمانی که پالس ورودی در وضعیت فعال هست وقفه ای ندارید و فقط در موقع صعود یا نزول پالس وقفه ایجاد میشه .

به عنوان مثال برای وقفه صفر :

         MCUCR = 2;            // وقفه در لبه رو به پایین
         MCUCR = 3;            // وقفه در لبه رو به بالا

البته این به شرطیه که سخت افزار شما تحریک اضافی ایجاد نکنه و دقیقا به ازای هر دور چرخش یک پالس بده . ریختن یک متغییر نوع ّInt درون PORTA هم  باعث سر ریز میشه (بعد از 255 دور چرخش) .

 یه تست کنید ببینید چی میشه و اگه مشکلی بود سخت افزارتون رو هم تشریح کنید که به چه صورتیه .

_______________________________________________________________________
پروژه های حرفه ای الکترونیک و کامپیوتر در www.khazama.com
مجموعه متن باز نامهای اصیل ایرانی
وبلاگ نوشته های شخصی من


  پنج‌شنبه 6 ارديبهشت 86 , 1:06 AM


کاربر
amin_amin
تعداد پستها : 38
سلام
ممنون

من اونو حساس به لبه ی پایین رونده کردم . اما توفیری نداشت .
اورفلو هم که فعلا مهم نیست .

اما سخت افزارش اینجوریه که یه برد روی موتور سواره . میکرو و سنسور مادون قرمز هم روی همین برد هستند . اما فرستنده مادون قرمز ثابته . حالا هر دور که موتور می چرخه این سنسوره از جلوی فرستندهه رد میشه و ... .
تو این حالت وقتی موتور رو یواش می چرخونم چندین پالس فرستاده میشه ! وقتی تند میچرخونم کلا" دیگه نمیشماره !  چی کار کنم ؟

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




  پنج‌شنبه 6 ارديبهشت 86 , 3:02 PM


مدیر سایت
behzad
تعداد پستها : 905

درود .

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

_______________________________________________________________________
پروژه های حرفه ای الکترونیک و کامپیوتر در www.khazama.com
مجموعه متن باز نامهای اصیل ایرانی
وبلاگ نوشته های شخصی من


  پنج‌شنبه 6 ارديبهشت 86 , 9:51 PM


کاربر
amin_amin
تعداد پستها : 38
سلام
ممنون
این شماتیکه مدار :
http://aycu19.webshots.com/image/14498/2003171580285786465_rs.jpg
همه ی مقاومتاش 47 اهمی هستند .

مشکلش چیه ؟


  شنبه 8 ارديبهشت 86 , 10:19 AM


مدیر سایت
behzad
تعداد پستها : 905
درود .
مدار شما بسیار سادست این نمونه سنسورها نباید به نور محیط حساس باشن (نمونه های سه پایه) مگه از نوعی باشن که فیلتر داخلی ندارن و فقط داخلشون یه فتو دارلینگتون داره که باعث میشه حساسیت سنسور خیلی زیاد بشه و این باعث میشه به راحتی با کمی تغییر شدت نور تحریک بشه . بایستی از نمونه های فیلتر دار که معمولا با فرکانسی در حدود ۳۸ کیلوهرتز کار میکنن استفاده کنید و یا اینکه همین سنسور رو ته یه لوله سیه رنگ نصب کنید تا با تغییر نور محیط تحریک نشه میتونید خروجی سنسور رو به یه اوسیلوسکپ (اگه ندارید از نمونه های نرم افزاری با کارت صدا استفاده کنید برای این کار) بدید و مطمین بشید که فقط در جواب فرستنده مادون قرمز خروجی میده . همچنین ممکنه خروجی این سنسور شما کلکتور باز باشه که در این صورت بایستی Pull up همون پایه از میکرو رو فعال کنید .

_______________________________________________________________________
پروژه های حرفه ای الکترونیک و کامپیوتر در www.khazama.com
مجموعه متن باز نامهای اصیل ایرانی
وبلاگ نوشته های شخصی من


  شنبه 8 ارديبهشت 86 , 6:53 PM


کاربر
amin_amin
تعداد پستها : 38
سلام خسته نباشی
د پول آپ کردم یه کم بهتر شد . ولی بازم همون آش و کاسه ی قبلیه . ولی فکر می کنم تو سرعتی که مورد نظر منه بیشتر از یک بار هر دور رو دیگه نشماره .

اما حالا مشکل اصلیش هنوز باقی مونده . چرا تو سرعتهای بالا اصلا نمی شماره ؟

  سه‌شنبه 11 ارديبهشت 86 , 12:21 PM


مدیر سایت
behzad
تعداد پستها : 905

درود .

وضعیت خروجی سنسورتون رو با یه اوسیلوسکپ چک کنید تا معلوم بشه فرستنده و گیرنده درست کار میکنه یا نه یه مسئله دیگه هم با توجه به مدار بسیار ساده شما و اینکه از یه نوع سنسور معمولی استفاده کردید تیز بودن لبه پالسهای خروجی سنسوره (بهتر بود سنسور رو قبل از اتصال به میکرو از یه آپ امپ اشمیت تریگر عبور میدادید). به هر صورت بایستی یا سنسورتون رو عوض کنید یا با یه اوسیلوسکپ و با توجه به کاتالوگ سنسورتون خروجی سنسور رو درست کنید .

_______________________________________________________________________
پروژه های حرفه ای الکترونیک و کامپیوتر در www.khazama.com
مجموعه متن باز نامهای اصیل ایرانی
وبلاگ نوشته های شخصی من


  صفحه : [1]    
 
 


Designer And Programmer : Behzad khazama
Coded With ASP.NET
تمامي حقوق مادي و معنوي مطالب متعلق به اين سايت ميباشد .
هر گونه استفاده از مطالب اين سايت تنها با ذکر منبع بلامانع ميباشد
.
www.khazama.com
Tel : 051-44641597 - 09363677001 - 09155714862
Support SMS Center: 09363677100