صفحه 1 از 1

امپر گیری با ایسی ACS712

ارسال شده: سه‌شنبه ۴ خرداد ۱۳۹۵, ۱۰:۴۷ ق.ظ
توسط sinaset
بنام خدا
با سلام


امپر گیری با ایسی ACS712

تصویر
ایسی acs 712 یک ایسی معروف در اندازه گیری جریان یا آمپرهای الکتریکی می باشد . این المان الکتریکی، به کمک نیرومغناطیسی امپر در حال گذر را می خواند و سپس ،نسبت به ولتاژ در حال گذر، در خروجی خود، ولتاژ را نمایش میدهد (به مانند دماسنج مثل LM35 اما سطح ولتاژ ان با دماسنج lm35 متفاوت می باشد)

از برترهای این ایسی نسبت به دیگر المان و روش ها اندازه گیری ، کم درد سر بودن و تلفات حرارتی بسیار پایین آن می باشد.

همانطور که می دانید ما می توانیم به کمک مقاومت اهم پایین ، جریان در حال گذر را بدست بیاوریم. اما بدلیل اینکه از مقاومت استفاده می کنیم. مقداری از انرژی توسط خود مقاومت هدر می رود ..

اما از معایب این ایسی، دقت پایین تر ان نسبت به روش مقاومتی می باشد !


تصویر
ماژول این ایسی. که خازن 104 برای حذف نویز و خازن 1 نانو (برای تایین فرکاسن کاری) و یک LED برای روشن بودن و .. اضافه شده
 این ایسی در سه نوع معروف وجود دارد :  5 آمپری  20 آمپری  30 آمپری  و به ترتیب هر چقدر توانایی اندازه گیری جریان در این ایسی بیشتر باشد، دقت ان نیز کاهش پیدا می کند.  
  آزمایش با سه مدل از این ایسی ها : 
تصویر
  که در تصویر می ببینید،سه ایسی( مدل 5 و 20 و 30 امپری) به میکرو وصل می باشند و به انها 100 میلی امپر جریان داده شده، همانجور که می ببینید مدل 5 امپری ، دقت بهتری دارد، و نزدیک به امپر دریافت را نشان داده.  ---   در آزمایش دیگر ،با ایسی ها 1 امپر داده میشود، که همانجور که می ببینید،ایسی ها چندان دقیق ،دقیق نیست،ولی خوب بد هم نیست و دقت قابل قبولی نیز دارد. 
تصویر

به طور کلی این ایسی برای اندازه گیری جریان ها زیادی خوب و کار راه انداز می باشد ..


در ادامه پست بعدی،کد و شبیه ساز معرفی می شود

باتشکر.

Re: امپر گیری با ایسی ACS712

ارسال شده: جمعه ۷ خرداد ۱۳۹۵, ۱۰:۲۵ ق.ظ
توسط sinaset
با سلام

اما برنامه نویسی و شبیه ساز

بعد از انکه سخت افزار مدار را طبق مداری که در بالا قرار داده ایم ساختید.باید پایه خروجی v -out را به یکی از پایه ها ADC بدهید، تا بتوانید ولتاژ را اندازه بگیرید.

این ایسی در صورتی که امپری در حال گذر از ان نباشد، 2.5 ولت، ولتاژ خروجی می دهد، اما به محض عبور جریان ، مقداری ولتاژ خودش را افزایش میدهید، و این افزایش ولتاژ بستگی به جریان عبور از ایسی دارد .

شرکت سازنده برای هر ایسی ضریبی مشخص کرده،که می توان با آوردن ان در فرمول،میزان آمپر عبوری را بدست آورد:

ACS712-05A عدد معرفی شده 185 میلی امپر
ACS712-20A عدد معرفی شده 100 میلی امپر
ACS712-30A عدد معرفی شده 66 میلی امپر

در برنامه نویسی

، ابتدا میزان واحد ADC را که از ایسی دریافت کرده ایم را مستقیم ضربدر 0.00488 می کنیم.(برای بدست اوردن ولتاژ) سپس ان را -2.5 ولت می کنیم( تا 2.5 ولت که همیشه ثابت است را لحاظ نکنیم) ، در انتها عدد بدست اورده شده را تقسیم بر عدد معرفی شده ایسی می کنیم

یعنی:
Please Login or Register to see this code
و بعد بسته به نوع ایسی:
Please Login or Register to see this code

سپس می توانید امپر در حال مصرف،را بدست آورید،به همین راحتی.!

کل کدها:
Please Login or Register to see this code

[External Link Removed for Guests]سورس و شبیه ساز
(دانلودکتابخانه منبع تغذیه متغیر)
باتشکر.

Re: امپر گیری با ایسی ACS712

ارسال شده: چهارشنبه ۲۶ خرداد ۱۳۹۵, ۵:۰۶ ب.ظ
توسط javadian2
سلام دوست عزیز برای من همیشه مقدار a=2f نمایش داده می شود

Re: امپر گیری با ایسی ACS712

ارسال شده: چهارشنبه ۲۶ خرداد ۱۳۹۵, ۵:۲۶ ب.ظ
توسط sinaset
سلام بر شما

از فایل که در بالا گذاشته ام استفاده کردیده اید؟! (و نسخه کدویژن شما 3.12 می باشد؟)

این مشکل مربوط به sprintf می باشد. همانجور که نمی دانم مستحضر باشید. این تابع به صورت دیفالت متغیرهای int را می شناسد،ولی زمانی که ما از float استفاده می کنیم،باید به صورت دستی وضعیت ان را تغیر دهیم (*لازم به ذکر است،استفاده از این قابلیت حجم برنامه را زیاد می کند)

برای حل این مشکل،به سربرگ project بروید و روی گزینه configure کلیک کنید،سپس به سربرگ c compiler بروید.در انجا زیر گزینه sprintf منوی وجود دارد،ان را باز کنید و روی گزینه float تنظیم کنید. انشالله مشکلتان حل خواهد شد.

باتشکر.