با سلام خدمت تمامی دوستان
مداری که اینجا معرفی میشود یک مدار کانتر میباشد که قادر است پالسهای ورودی با هر دامنه ای را بشمارد ولی مشکلاتی دارد که هدف از ارائه این مدار در اینجا بررسی توسط دوستان با تجربه تر مباشد تا انشالله مشکلات طراحی برطرف شود.استفاده ای که برای این مدار در نظر گرفته شده است برای شمارش لیبل یا برچسبهای کاغذی است که در محیط کاری خودمان تولید میشود.این لیبلها درکنار همدیگر قرار دارند که یک فضای خالی بینشان وجود دارد که اصطلاحا" گپ نام دارند.نحوه کار شمارش هم به گونه ای است که رول برچسبها توسط دینام حرکت کرده و در سوی دیگر جمع میشود که در مسیر حرکت رول برچسب سنسور اپتوکوپلری قرار دارد که به ازای عبور یک گپ برچسب از زیر سنسور یک ولتاژ با لبه بالا رونده و دامنه ماکزیمم 2.5 ولت ایجاد میکند و به ازای قرار گرفتن خود برچسب به خاطر ضخامت ان ولتاژ کمتری ایجاد میکند
به دلیل تنوعی که در جنس لیبلها وجود دارد دامنه ولتاژ خروجی سنسور نیز متغیر است و بنابراین میکرو به راحتی این پالسها را که نا منظم است شناسایی نمیکرد و در اکثر مواقع شمارش یا کمتر یا بیشتر از تعداد واقعی است.برای رفع این مشکل تصمیم گرفته شد که هر لیبلی که در سنسور قرار میگیرد ابتدا کالیبره شود و سپس شمارش شود.برای این منظور در روتین کالیبره درهنگام کار نکردن موتور و به صورت دستی بالاترین و پاینترین مقدار خروجی سنسور توسط واحد ADC گرفته شده و میانگینی گرفته میشود که این میانگین ولتاژ مرجعی خواهد بود.در روتین شمارش ابتدا واحد ADC ولتاژ ورودی از سنسور را با میانگین مقایسه میکند اگر ولتاژ ورودی از مرجع بزرگتر باشد پین خروجی متصل به اینتراپت روشن شده و با لبه بالا رونده اینتراپت را فعال میکند که در روتین اینتراپت نیز یک واحد به کانتر افزوده میشود .اگر هم ورودی کمتر از میانگین باشد خروجی کماکان صفر خواهد بود و شمارشی انجام نخواهد شد.حال مشکل اینجاست که اگر لیبلها کوچک باشند فاصله بین دو لیبلها نیز کمتر خواهد بود و با سرعت ثابتی که موتور لیبلها را جمع میکند فرکانس حرکت لیبلها افزایش مییابد که در فرکانس حدود 200 دیگر شمارنده به خوبی کار نمیکند و تعداد شمارش شده از تعدا واقعی بسیار کمتر میشود .نکته ای که مشخص است این استکه چون میبایست ابتدا واحد ADC نمونه برداری و مقایسه کند سرعت کم میشود و درنتیجه شمارش به هم میریزد ولی ما ناچاریم این روتین را استفاده کنیم و اگر اگر ولتاژ مرجعی حین کالیبره درست نکنیم به طور کلی شمارش اشتباه میشود حتی در فرکانسهای پایینتر.نکته دیگر اینکه در عمل از کریستال 20 مگ استفاده شده است ولی کماکان نتیجه مطلوب حاصل نشده است
حال تقاضایی که از دوستان دارم این است که اولا برنامه را بررسی کرده و اگر نقطه نظری در مورد روانتر ساختن برنامه دارند ارائه کنند چرا که بنده تسلط زیادی روی برنامه نویسی ندارم و دیگر اینکه کمک کنند تا در صورت امکان .امکانات بیشتری به مدار افزوده شود.برنامه کامل به همراه فایل شبیه سازی نیز قرار داده شده است
http://www.4shared.com/file/rAjKLYAE/LB_900601.html
مداری که اینجا معرفی میشود یک مدار کانتر میباشد که قادر است پالسهای ورودی با هر دامنه ای را بشمارد ولی مشکلاتی دارد که هدف از ارائه این مدار در اینجا بررسی توسط دوستان با تجربه تر مباشد تا انشالله مشکلات طراحی برطرف شود.استفاده ای که برای این مدار در نظر گرفته شده است برای شمارش لیبل یا برچسبهای کاغذی است که در محیط کاری خودمان تولید میشود.این لیبلها درکنار همدیگر قرار دارند که یک فضای خالی بینشان وجود دارد که اصطلاحا" گپ نام دارند.نحوه کار شمارش هم به گونه ای است که رول برچسبها توسط دینام حرکت کرده و در سوی دیگر جمع میشود که در مسیر حرکت رول برچسب سنسور اپتوکوپلری قرار دارد که به ازای عبور یک گپ برچسب از زیر سنسور یک ولتاژ با لبه بالا رونده و دامنه ماکزیمم 2.5 ولت ایجاد میکند و به ازای قرار گرفتن خود برچسب به خاطر ضخامت ان ولتاژ کمتری ایجاد میکند
به دلیل تنوعی که در جنس لیبلها وجود دارد دامنه ولتاژ خروجی سنسور نیز متغیر است و بنابراین میکرو به راحتی این پالسها را که نا منظم است شناسایی نمیکرد و در اکثر مواقع شمارش یا کمتر یا بیشتر از تعداد واقعی است.برای رفع این مشکل تصمیم گرفته شد که هر لیبلی که در سنسور قرار میگیرد ابتدا کالیبره شود و سپس شمارش شود.برای این منظور در روتین کالیبره درهنگام کار نکردن موتور و به صورت دستی بالاترین و پاینترین مقدار خروجی سنسور توسط واحد ADC گرفته شده و میانگینی گرفته میشود که این میانگین ولتاژ مرجعی خواهد بود.در روتین شمارش ابتدا واحد ADC ولتاژ ورودی از سنسور را با میانگین مقایسه میکند اگر ولتاژ ورودی از مرجع بزرگتر باشد پین خروجی متصل به اینتراپت روشن شده و با لبه بالا رونده اینتراپت را فعال میکند که در روتین اینتراپت نیز یک واحد به کانتر افزوده میشود .اگر هم ورودی کمتر از میانگین باشد خروجی کماکان صفر خواهد بود و شمارشی انجام نخواهد شد.حال مشکل اینجاست که اگر لیبلها کوچک باشند فاصله بین دو لیبلها نیز کمتر خواهد بود و با سرعت ثابتی که موتور لیبلها را جمع میکند فرکانس حرکت لیبلها افزایش مییابد که در فرکانس حدود 200 دیگر شمارنده به خوبی کار نمیکند و تعداد شمارش شده از تعدا واقعی بسیار کمتر میشود .نکته ای که مشخص است این استکه چون میبایست ابتدا واحد ADC نمونه برداری و مقایسه کند سرعت کم میشود و درنتیجه شمارش به هم میریزد ولی ما ناچاریم این روتین را استفاده کنیم و اگر اگر ولتاژ مرجعی حین کالیبره درست نکنیم به طور کلی شمارش اشتباه میشود حتی در فرکانسهای پایینتر.نکته دیگر اینکه در عمل از کریستال 20 مگ استفاده شده است ولی کماکان نتیجه مطلوب حاصل نشده است
حال تقاضایی که از دوستان دارم این است که اولا برنامه را بررسی کرده و اگر نقطه نظری در مورد روانتر ساختن برنامه دارند ارائه کنند چرا که بنده تسلط زیادی روی برنامه نویسی ندارم و دیگر اینکه کمک کنند تا در صورت امکان .امکانات بیشتری به مدار افزوده شود.برنامه کامل به همراه فایل شبیه سازی نیز قرار داده شده است
http://www.4shared.com/file/rAjKLYAE/LB_900601.html
دیدگاه