سلام دوستان
من میخواستم دستگاه اندازه گیر توان رو برای مصارف خانگی طراحی کنم. ورودی آن یک سیم حامل جریانه که از طریق ADC میکرو و سنسور ACS712 اطلاعات جریان و ولتاژ سیم به دیجیتال تبدیل می شود.اول که برنامه رو شروع کردم دقت اندازه گیری ADC تا دو رقم اعشار بود ولی بعد از اتمام پروژه و شبیهسازی آن با پروتئوس دیدم که مقدار توان محاسبه شده (که در رنج 1000-3000 است) فقط رقم چهارم و سوم آن درست نشون میده ماباقی رقمها متغیراند و مثل دوتا رقم آخر ثابت نیستند
حالا با توجه به کدهایی که براتون گذاشتم به نظرتون چه دلیل داره که توان محاسبه شده دقیق نباشه
یه توضیح کوچک بدم اینکه من برای بدست آوردن توان از فرمول اصلی استفاده کرده ام( منظورم انتگراله که در اینجا چون اطلاعات به صورت گسسته است باید از سیگما استفاده کرد ) و برای این کار هم باید در یک یا چند دوره تناوب سیگما گرفت -در نهایت بر تعداد دوره تناوب تقسیم شود- که برای محدود کردن زمان و تعین تعداد تناوب ها از تایمر استفاده کرده ام

به این دلیل شمارنده تایمر با عدد 250 مقایسه کردم تا بتوانم مقدار زمانی نیم ثانیه رو به صورت دقیق بدست بیارم تا هر نیم ثانیه یک بار مقدار توان پدیت بشه

در اینجا هم لازم به ذکر است که با استفاده از متغیر b هر دو بار وقفه ADC یک نمونه از ولتاژ و چریان ورودی آماده شده تا با ضرب آنها و جمع با مقادیر قبلی توان فرمول توان از طریق سیگما مهیا شود.

و در مورد این تایمر باید بگم که طوری راه اندازی نیشه که هر 10 بار آورفلو برابر یک دوره تناوب سیگنال ورودی است ( که 20 میلی ثانیه است) در نتیجه من برای ایجاد زمان 0.5 ثانیه باید 250 بار آورفلو داشته باشم ولی همانطور که میبینید من 150 گذاشتم به این دلیله که نوشتن کدهای دیگه باعث تاخیر در زمان معین شده میشد در نتیجه مجبور به تغییر تعداد آورفلوها شده ام
اگه راهنماییم کنید ممنون میشم که چیکار کنم تا دقت خروجیم بهتر بشه
من میخواستم دستگاه اندازه گیر توان رو برای مصارف خانگی طراحی کنم. ورودی آن یک سیم حامل جریانه که از طریق ADC میکرو و سنسور ACS712 اطلاعات جریان و ولتاژ سیم به دیجیتال تبدیل می شود.اول که برنامه رو شروع کردم دقت اندازه گیری ADC تا دو رقم اعشار بود ولی بعد از اتمام پروژه و شبیهسازی آن با پروتئوس دیدم که مقدار توان محاسبه شده (که در رنج 1000-3000 است) فقط رقم چهارم و سوم آن درست نشون میده ماباقی رقمها متغیراند و مثل دوتا رقم آخر ثابت نیستند
حالا با توجه به کدهایی که براتون گذاشتم به نظرتون چه دلیل داره که توان محاسبه شده دقیق نباشه
یه توضیح کوچک بدم اینکه من برای بدست آوردن توان از فرمول اصلی استفاده کرده ام( منظورم انتگراله که در اینجا چون اطلاعات به صورت گسسته است باید از سیگما استفاده کرد ) و برای این کار هم باید در یک یا چند دوره تناوب سیگما گرفت -در نهایت بر تعداد دوره تناوب تقسیم شود- که برای محدود کردن زمان و تعین تعداد تناوب ها از تایمر استفاده کرده ام

به این دلیل شمارنده تایمر با عدد 250 مقایسه کردم تا بتوانم مقدار زمانی نیم ثانیه رو به صورت دقیق بدست بیارم تا هر نیم ثانیه یک بار مقدار توان پدیت بشه

در اینجا هم لازم به ذکر است که با استفاده از متغیر b هر دو بار وقفه ADC یک نمونه از ولتاژ و چریان ورودی آماده شده تا با ضرب آنها و جمع با مقادیر قبلی توان فرمول توان از طریق سیگما مهیا شود.

و در مورد این تایمر باید بگم که طوری راه اندازی نیشه که هر 10 بار آورفلو برابر یک دوره تناوب سیگنال ورودی است ( که 20 میلی ثانیه است) در نتیجه من برای ایجاد زمان 0.5 ثانیه باید 250 بار آورفلو داشته باشم ولی همانطور که میبینید من 150 گذاشتم به این دلیله که نوشتن کدهای دیگه باعث تاخیر در زمان معین شده میشد در نتیجه مجبور به تغییر تعداد آورفلوها شده ام
اگه راهنماییم کنید ممنون میشم که چیکار کنم تا دقت خروجیم بهتر بشه
دیدگاه