۳-۶ راهاندازی سنسور فاصله سنج IR با واحد ADC
۲۶ بهمن ۱۳۹۷۱-۷ آشنایی با مقدمات واحد Timer-Counter
۲۶ بهمن ۱۳۹۷اگر فرض کنیم که یک سنسور با خروجی ولتاژ به یک ورودی ADC میکروکنترلر وصل شده است در هنگام کار با این سنسورها خواهید دید حتی در حالتی که شما در ورودی مدار تغییر خاصی را اعمال نمیکنید مقدار ADC همواره درحال نوسان است. مثلا برای سنسور IR حتی اگر جسم را ثابت نیز نگهدارید اندکی تغییر در نور محیط باعث بروز اعداد متفاوت در خروجی ADC میشود. برای از بین بردن این نوع خطاها که در الکترونیک به آنها نویز نیز میگویند میتوان از روشهای هوشمندانه در کد نویسی خود برای سنسورها بهره ببرید.
یکی از این روشها روش میانگینگیری است.
به قطعه کد زیر نگاه کنید:
[php] while (1) { for(i=0;i<20;i++){ ADC_amount+=read_adc(0); delay_ms(1); } ADC_amount/=20; }; [/php]
در این قطعه کد در یک حلقه ۲۰ بار مقادیر ADC از پین A.0 در میکروکنترلر ATmega32 به فواصل ۱ میلیثانیه خوانده شدهاند و تمام مقادیر با هم جمع شدهاند. در نهایت پس از اتمام حلقه میانگین این مقادیر حساب شده و در نهایت ما با این عدد از این پس به عنوان نتیجهی عمل ADC کار خواهیم کرد.
در این عدد جدید اثر نویز تقربیا کمتر شده و میتوان گفت اثرات نویزهای لحظهای تقریبا به صفر رسیده است. هرچه تعداد نمونههایی که در این میانگینگیری شرکت میدهید بیشتر باشد دقت شما بیشتر خواهدبود. اما در این روش عیبی که وجود دارد این است که ما زمان را فدای دقت کردهایم چراکه برای نهایی سازی هرنمونهی گرفته شده از ADC به ۲۰ میلی ثانیه احتیاج داریم که زمان قابل توجهی است.
میتوان کد بالا را به شکل زیر گسترش داد:
[php] while (1) { for(i=0;i<20;i++){ ADC_amount+=read_adc(0); delay_ms(1); } ADC_amount/=20; Volatage=(ADC_amount*5)/1024.0; }; [/php]
در واقع در کد بالا میزان ولتاژ پس از میانگینگیری از ۲۰ نمونه بدست آمده که از دقت بسیار بالاتری نسبت به یک نمونه برخوردار است محاسبه میشود.
همچنین روشهای دیگری برای افزایش دقت ADC همچون استفاده از Kalman Filtering وجود دارد که در اینجا ما قصد ارائه توضیحات را نداریم.
3 Comments
مهندس جان واقعا دست گلت درد نکنه من برم این روشو امتحان کنم
دستت طلا ایشالا بری کربلا
فقط جانه هرکی دوس داری ایمیل منو وارد این تبلیغاتیا نکن نوکرتم
سلام مهندس عزیز،خوشحالم که استفاده کردید. ما اصلا فرصت اینجور تبلیغات رو نداریم. این کار از اهداف تیم ما بدور هست، خیالتون ازین بابت راحت باشه.
مرسی مهندس .کامنت کوتاه و مفیدی بود .اگه ممکنه راجب به فیلتر کالمن توضیح بدین