توضیحات

icon فایل هایی که با لینک مستقیم در سایت قرار گرفته اند بدون پسورد می باشند.

ولت متر دیجیتال ۰ تا ۲۵ ولت با AVR

پروژه ولت متر دیجیتال با میکروکنترلر AVR که با کامپایلر بیسکام تهیه شده است. این ولت متر از ۰ تا ۲۵ ولت را اندازه گیری می کند.

برای مبدل آنالوگ به دیجیتال از ADC داخلی میکروکنترلر استفاده شده است .

میکروکنترلر به کار رفته در این پروژه ATmega8 می باشد.

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

برای آنکه بتوان ولتاژ ۰ تا ۲۵ ولت را به ورودی ۵ ولتی مبدل آنالوگ به دیجیتال تبدیل کرد از یک مدار مقسم ولتاژ مقاومتی استفاده شده است . یعنی می توان با حذف این مدار مقسم مدار را به ولتمتر ۰ تا ۵ ولت تبدیل کرد.


محتویات: سورس برنامه به زبان بیسیک، فایل hex خروجی، شماتیک مدار، فایل شبیه سازی شده

 

جهت دریافت فایل های این پروژه اینجا کلیک کنید. ( ۹۵KB )

 

منبع:

http://www.avrprojects.info/avr-projects/digital-voltmeter/ 



فروردین ۱۶ام, ۱۳۹۱ | 17,871 views | دسته: ADC، Bascom AVR، Seven Segment
برچسب ها: ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ، ،


نظرات دیگران در مورد این مطلب:
مهدی :

سلام و عرض ادب

خروجی این مدار چند آمپر هست ؟

پاسخ:

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

منصور :

سلام
اگه در این پروژه atmega8 smd بزاریم برنامه چه تغییراتی باید داشته باشه اگه ممکنه توضیح بدید .
سپاسگزارم

sajad :

منصورجان برنامه تغییری نمیکنه ولی باید روی برد یه تغییراتی بدی

afshin :

با سلام میخواستم کد hexبرنامه ولتمتر رو برام بزارید
 
پاسخ:
فایل هگز و سورس در فولدر Compiler_Bascom AVR موجود است. لطفا فایل ضمیمه شده را دانلود کنید.

hossein :

سلام . خسته نباشین با این سایت تون.من این پروزه رو انجام دادم به یه مشکل برخوردم فقط سون سگمنت حین نشان دادن اعداد چشمک میزنه .اگه زحمتتون زیاد نمیشه راهنمای کنین ممنون می شم

 

پاسخ:

۱٫ فرکانس کاری میکروکنترلر را از طریق فیوز بیت ها بر روی فرکانس ۴MHz تنظیم نمایید.

۲٫ این مشکل زمان رخ می دهد که سرعت عمل مالتی پلکس کردن کم باشد. برای حل این مشکل باید سرعت مالتی پلکس را افزایش داد.

با کم تر کردن مقدار دستور Waitms 5 که در تصویر زیر مشخص است می توان مشکل را حل کرد.

H1

مجید :

سلام اگه بخوام دقت ولت متر بر حسب صدم میلی ولت نشون بده چه کار باید کنم ممنون میشم راهنمایی کنید

ولتمتر :

سلام.
خسته نباشید.
من میخوام ی ولتمتر بسازم که هم ac و هم dc رو اندازه بگیره.ماکزیمم و مینیمم ولتاژی ک باید بتونه اندازه بگیره ۲۲۰v و۱/۰میکرو ولت .میشه لطفا منو راهنمایی کنین دوستان؟

علی :

با عرض سلام و وقت به خیر.
میخوام ولت مت و آمپر متری داشته باشم که همزمان اطلاعاتشو بر روی کامپیوتر برام ذخیره کنه و بعدا به صورت نمودار تغییرات پتانسیل و جریان بر حسب زمان داشته باشم.
اگه میشه منو راهنمایی کنید.

taraneh :

با عرض سلام خسته نباشید خدمت شما.
من ولتمر دیجیتالی رو برای پروژه کلاسی ام انتخاب کردم مدارو بستم جواب هم داد ولی نمیتونم همه قسمتهای برنامه نویسی بسکام رو برای استاد توضیح بدم.
مثلا این قسمت :


If Ad < 1000 Then
Sa = Str(ad)
Sa = Format(sa , “000”)

از ما توضیح خط به خط برنامه نویسی رو خواستند!!!
ممنون میشم اگه کمکم کنید.

 

پاسخ:

متغییر ad نتیجه نمونه ورداری از ولتاژ وارد شده به ADC میکروکنترلر است. این مقدار بر حسب میلی ولت می باشد. مثلا عدد ۱۰۰۰ نشان دهنده ۱۰۰۰ میلی ولت یا ۱ ولت می باشد.

دستور if مقدار این متغییر را برای مقادیر کوچکتر از ۱ ولت بررسی میکند.

دستور Str مقدار متغییر ad را بر حسب رشته تبیدل کرده و در متغییر Sa قرار میدهد.

دستور Format جهت پیکره بندی متغییر هایی از جنس رشته استفاده می شود. این دستور متغییر sa را به صورت “۰۰۰” پیکره بندی کرده است. یعنی تحت هر شرایطی متغییر sa به طول ۳ کاراکتر باشد. مثلا اگر مقدار اندازه گیری شده ۵ میلی ولت باشد رشته “۰۰۵” در متغییر sa قرار خواهد گرفت. اگر مقدار اندازه گیری شده ۵۰ میلی ولت باشد رشته “۰۵۰” در متغییر sa قرار خواهد گرفت. اگر مقدار اندازه گیری شده ۵۰۰ میلی ولت باشد رشته “۵۰۰” در متغییر sa قرار خواهد گرفت.

بیات :

سلام . من این مدار را ساختم فقط کدهای مربوط به سون سگمنتها اشتباه بود چون اعداد در هم و قاطی پاتی و بی معنی را نشون میداد که درستشون کردم. اما کلا مدار جالبی هست. دیگه اینکه سرعت نمونه برداری یا رفرش خیلی کم بود که با کم کردن مقدار waitms=200 به ۲۰ مشکل حل شد.

mohmad :

با عرض سلام و خسته نباشید مهندس جان
من ولتمتر را ساختم و نتیجه گرفتم و خیلی خیلی ممنون بابت این پروژه تنها دو سوال دارم:
۱ آیا می شود پایه ۲۰ مستقیم به مثبت پنج ولت و سپس پایه ۲۱ را با یک خازن ۱۰۰میکرو به زمین متصل کرد؟

۲ من همانند عکس از مولتی ترن استقاده کردم ولی چرا وقتی مثلا برای یک ولتاژ ثابت تنظیمشان می کنم تا دقیق نشان دهد بلافاصله یک ولتاژ دیگر که متصل می کنم یه اختلاف یک یا دو ولتی ایجاد میشود. آیا راهکاری هست؟

ممنون تون می شم اگر پاسخ سوالاتم را بدید.

 

پاسخ:
پایه ۲۰ (AVCC) جهت اتصال تغذیه ماژول داخلی ADC می باشد. پایه ۲۱ (AREF) جهت ولتاژ مرجع خارجی مورد استفاده قرار میگیرد. و از آنجایی که در برنامه نویسی این پروژه، مبدل آنالوگ به دیجیتال برای رفرنس داخلی پیکره بندی شده است، نحوه اتصال این پایه در فرایند برنامه بی تاثیر است.

متاسفانه برای سوال دوم پاسخی ندارم.

صالح :

سلام ممنون از پروژه ها خیلى وقت بود دنبال بعضیاشون میگشتم.

iSHF :

سلام
پروژه واقعا عالی هست
من می خام از این پروژه در مدار منبع تغذیه خودم استفاده کنم
لطفا راهنمایی کنید چه تغییراتی باید بدم تا برای ولتاژ از ۰ تا ۶۰ و آمپر از ۰ تا ۳۵یا۴۰ رو بتونه نمایش بده

منتظر پاسختون هستم
سپاس فراوان

 
پاسخ:
برای سنجش جریان نیاز به مدار جانبی می باشد مثلا استفاده از سنسور جریان. ولی برای تغییر اندازه گیری ولتاژ تا ۶۰ ولت، تغییرات زیر را اعمال نمایید:
:: مقاومت ۴٫۵K را به ۶٫۲K تغییر دهید.
:: مقاومت ۵۰۰ اهم را به ۲۷۰ اهم تغییر دهید.
:: در قسمت Battery voltage detection از برنامه خط Ad=Ad*10 را به Ad=Ad*24 تغییر دهید.

iSHF :

خیلی ممنون از راهنمایی تون
درصورت امکان مدار آمپرمتر در ۰ تا ۳۵یا۴۰ را معرفی کنید

و البته توضیحی در مورد حفاظت این مدار و همچنین آمپرمتر(درصورت معرفی) در مقابل ولتاژ و جریان بیش از حد نامی مدار ارائه بدید.

سپاس.

 

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

شهرام :

سلام آقای مهندس
دستتون درد نکنه

در کدهای بسکام درصورت امکان تکه کد زیر را کمی توضیح دهید:
Ad = Ad / 20
Ad = Ad * 2560
Ad = Ad / 1023
Ad = Ad * 10

خط اول که برای میانگین نمونه برداری هاست، مخصوصا عدد ۲۵۶۰ رو متوجه نشدم از چه رابطه ای اومده؟؟؟

 

پاسخ:
عدد ۲۵۶۰ مقدار ولتاژ رفرنس داخلی میکروکنترلر AVR می باشد. در این برنامه ADC با ولتاژ مرجع داخلی پیکره بندی شده است. مقدار این ولتاژ ۲۵۶۰ میلی ولت می باشد.
برای تبدیل عدد خام خوانده شده به ولتاژ، باید عدد خام خوانده شده (Ad) را در مقدار ولتاژ مرجع (۲۵۶۰mV) ضرب و سپس بر رزولیشن مبدل آنالوگ به دیجیتال (۲^۱۰=۱۰۲۳) تقسیم نمود.
عدد ۱۰ مقدار تقسیم مقاومتی ایجاد شده برای کاهش ولتاژ ورودی می باشد.


افزودن نظر: