زمان کنونی: 08-24-2019, 09:45 PM
درود مهمان گرامی! (ورودثبت نام)



New Reply 
 
مشکل در آنالوگ به دیجیتال کانورتر
02-04-2017, 02:09 AM
ارسال: #1
مشکل در آنالوگ به دیجیتال کانورتر
سلام ... من یک برد LPC1768 که برای این شرکت بود و اسمش رو گذاشته بود Easy MCU خریداری کردم ...


بعد با قسمت آنالوگ به دیجیتالش کار کردم و برای مثال باتری قلمی یک و نیم ولتی رو به پایه تبدیل کننده وصل کردم ... کد برنامه ریزی شده رو هم بارها تست کردم و از صحت اون مطمئن هستم اما با این مشکل برخوردم که مثلا ولتاژ 1.5 ولتی باتری را که میخوانم پرش های عجیب غریب داره ... مثلا یکبار 1.47 ولت هست بعد نمیشه 2.4!!! بعد یه دفعه میشه 0.9 .... باتری که کاملا نو هست و توی اسکوپ ولتاژ ثابت و دقیق داره یعنی برای آرمی که محدوده ولتاژ ADC اش 3.3 ولت است من در نمایشگر عملا خیلی از این ولتاژ ها رو دیدم میکرویی که دقتش باید 0.3 میلی ولت بر هر بیت باشه ... ممنون میشم راهنمایی بفرمایید که مشکل کجاست ... البته بگم که مدار آنالوگ میکرو در داخل برد فروخته شده به من تعبیه شده و عملا من نمیتونم دستکاریش کنم ... لینک سایت رو هم گذاشتم این تو همون سبک و سیاق بردهای MBED است ممنون از همگیتون اگر جواب بدین... مشکل من دقیقا پرش های غیر منطقی در بخش آنالوگ به دیجیتال کانورتر هست که البته نتایج نمایش داده روی نمایشگر هم همگرایی خاصی نداره که بگیم حالا حول یک ولتاژ خاص داره چرخ میزنه
Quote
02-04-2017, 04:06 PM
ارسال: #2
RE: مشکل در آنالوگ به دیجیتال کانورتر
درود

نام برد مورد نظر Zcross می باشد و پلتفرم برنامه نویسی ارائه شده EasyMCU است.
مورد اشاره شده توسط شما کاملا صحیح است. مشکل وجود نویز در خواندن مقادیر ADC یک مورد معمول هست که در هر میکروکنترلری وجود دارد (در بعضی بیشتر و در بعضی کمتر) و اعظم علت آن بدلیل منبع تغذیه هست که اکثر این نویزها از منبع تغذیه به برد راه پیدا می کند، و اما راه هایی برای مقابله با آن هم وجود دارد.
در بخش سخت افزاری، فیلترهای سخت افزاری با ترکیب سلف و خازن جهت واحد ADC لحاظ شده است که کمک شایانی در حذف نویزهای مذکور می کند.
و اما ادامه راه حل در نرم افزار و توسط برنامه نویسی امکان پذیر می باشد. جهت خواندن مقادیر ADC معمولا نیاز به یک فیلتر پایین گذر نرم افزاری می باشد، به این ترتیب ساده ترین راه برای اعمال این روش میانگین گیری از مقادیر خوانده شده توسط ADC می باشد و البته پیاده سازی های دیگری جهت فیلترها در قالب کد وجود دارد.
با اعمال فیلتر نرم افزاری به نتایج بسیار خوبی خواهید رسید.
البته با این حرکت هنوز پرش هایی وجود دارد که معمولا یا با حد بالا و یا حد پایین ADC برابری می کند. فرضا 4095 یا 0 ( اگر مستقیم مقادیر دیجیتال خوانده شده توسط خود ADC را مانیتور کنید ) جهت این مورد هم با یک دستور شرطی می توانید مقادیر درست و غلط خوانده شده را از هم تمیز دهید و در میانگین گیری ها فقط مقادیر صحیح را حساب کنید. با این کار خواهید دید مشکل کاملا برطرف خواهد شد.

البته بهتر است کد نوشته شده را جهت راهنمایی شدن بهتر و دقیقتر همراه ارسال سوال خود قرار دهید. اگر با توضیحات بالا مشکل مرتفع نشد برنامه ی خودتان را در ارسال بعدی در تگ code یا php قرار دهید تا بررسی شود.

با آرزوی موفقیت برای شما دوست گرامی ...

[تصویر:  telegram_icon.png] کانال رسمی EasyMCU در تلگرام
.
.
Quote
New Reply 


پرش به انجمن:

تماس با ما | EasyMCU | بایگانی | پیوند سایتی RSS
بازگشت به بالا
Persian Translation by MyBBIran.com - Ver: 4.6
Powered by MyBB, © 2002-2019 MyBB Group.
Designed by Escalate Internet. Icons by dAKirby309.

ورود
نام کاربری:
گذرواژه‌:



Lost your password?