ساخت ولت متر دیجیتالی
در این بخش تیم الکترونیک و برنامه نویسی الکترونیک ۹۸, اقدام به طراحی و انتشار پروژه ای جذاب با عنوان, ساخت ولت متر دیجیتالی با قابلیت اندازه گیری ولتاژ 0 تا 30 ولت DC (مستقیم) توسط سون سگمنت و میکروکنترلر AVR, برای شما علاقه مندان به پروژه های میکروکنترلر AVR کرده است. همیشه پروژه های مرتبط با ساخت مدارت آزمایشگاهی و اندازه گیری جذابیت بسیار بیشتری نسبت به دیگر پروژه های میکروکنترلرها داشته اند, چراکه در ساخت بسیاری از مدارات ما احتیاج داریم تا میزان ولتاژ منبع تغذیه مدار یا یک منبع تغذیه خارجی را اندازه گیری کنیم و نسبت به سطوح مختلف ولتاژ عملکردی متناسب با آن انجام دهیم.
شرح پروژه
اندازه گیری ولتاژ یکی از ویژگی های بارز در مدارات پرتابل (قابل حمل) یا مداراتی که به کمک باتری های شارژی راه اندازی می شوند, به شمار می آید. همانطور که می دانید ساخت یک مدار اندازه گیری ولتاژ و یا ساخت یک مدار شارژ برای باتری های شارژی بدون استفاده از میکروکنترلر کاری نسبت دشوار است چراکه نیاز به طراحی مدارات نسبتا پیچیده دارید.
اما باز هم با وجود میکروکنترلرهای AVR و قابلیت های کاربردی آن جایی نگرانی نیست! در این پروژه ما با استفاده از یک میکروکنترلر ATmega32 از خانواده میکروکنترلرهای AVR اقدام به طراحی یک ولت متر دیجیتالی بسیار دقیق در محدوده اندازه گیری 0 تا 30 ولت کرده ایم. همچنین برای نمایش میزان ولتاژ از یک سون سگمنت مالتی پلکس 4 رقمه بهره برده ایم که این موضوع جذابیت پروژه را چندین برابر می کند. برای مشاهده توضیحات کاملتر با ما همراه باشید.
مبدل آنالوگ به دیجیتال ADC در میکروکنترلرهای AVR
بسیاری از کمیت های پیرامون ما, مانند نور, گرما, طول اجسام و… کمیت های پیوسته می باشند و در بسیاری موارد خروجی حسگرهای مورد استفاده نیز به صورت دیجیتال نیست. برای اینکه میکروکنترلر بتواند مقادیر آنالوگ را نیز اندازه گیری نماید, به بخشی مجهز شده است که به آن مبدل آنالوگ به دیجیتال گفته می شود.
این بخش, متناسب با مقدار ولتاژ آنالوگ ورودی, عددی 10 بیتی (بین 0 تا 1023) را به عنوان خروجی در نظر می گیرد, مثلا برای ولتاژ ورودی صفر, عدد صفر, برای ولتاژ 5 ولت عدد 1023 و برای ولتاژ 2.5 ولت عدد 512 را ببه عنوان خروجی اختصاص می دهد. پس در نتیجه با استفاده از این امکان و اعداد بدست آمده در بازه 0 تا 1023 می توانیم به این موضوع پی ببریم که ولتاژ قرار گرفته بر روی پایه ADC میکروکنترلر در حالت عادی چند ولت می باشد.
همانطور که می دانید حداکثر ولتاژ قابل تحمل بر روی پایه های میکروکنترلرهای AVR پنج ولت می باشد به همین خاطر نمی توانیم برای اندازه گیری یک ولتاژ بیشتر از 5 ولت ولتاژ مورد نظر را به صورت مستقیم به پایه ADC میکروکنترلر AVR متصل کنیم چراکه باعث سوختن تراشه می شود. پس چاره چیست؟ بهترین راه حل برای اندازه گیری ولتاژهای بیشتر از 5 ولت استفاده از قانون تقسیم ولتاژ می باشد. با مشاهده تصویر زیر می توانید این قانون را به سادگی درک کنید.
نقشه شماتیک پروژه
برنامه میکروکنترلر به زبان بیسیک BASIC در نرم افزار BASCOM-AVR
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
$regfile = "m32def.dat" $crystal = 1000000 '*************************************************************************** ADC Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc Enable Adc '***************************************************************** Config Output Config Porta.0 = Output 'Anod Seven Segment Config Porta.1 = Output 'Anod Seven Segment Config Porta.2 = Output 'Anod Seven Segment Config Porta.3 = Output 'Anod Seven Segment Config Portb = Output 'A,B,C,D,E,F,G,DP, Seven Segment '**************************************************************** Dim Var As ... Dim T As Byte Dim Ad As Long Dim Segment As Byte Dim Sampling As Word Dim Sample As Single Dim Voltage As String * 5 Dim Segment1 As String * 1 T = 20 Gosub Main '******************************************************************** Sub [Meno] Main: Do Incr T Sampling = Getadc(7) Ad = Ad + Sampling If T >= 20 Then Ad = Ad / 20 Sample = Ad / 204.6 Sample = Sample * 11.3 Voltage = Fusing(sample , "#.##") T = 0 : Ad = 0 : Sampling = 0 End If If Len(voltage) = 4 Then Porta = &B0000 Portb = &B00000000 Waitus 100 Porta = &B0001 Portb = Lookup(10 , _data) Waitus 2500 Segment1 = Mid(voltage , 1 , 1) Segment = Val(Segment1) Porta = &B0000 Portb = &B00000000 Waitus 100 Porta = &B0010 Portb = Lookup(segment , _data) Waitus 2500 Porta = &B0010 Portb = &B10000000 Waitus 2500 Segment1 = Mid(voltage , 3 , 1) Segment = Val(Segment1) Porta = &B0000 Portb = &B00000000 Waitus 100 Porta = &B0100 Portb = Lookup(segment , _data) Waitus 2500 Segment1 = Mid(voltage , 4 , 1) Segment = Val(Segment1) Porta = &B0000 Portb = &B00000000 Waitus 100 Porta = &B1000 Portb = Lookup(segment , _data) Waitus 2500 Else Segment1 = Mid(voltage , 1 , 1) Segment = Val(Segment1) Porta = &B0000 Portb = &B00000000 Waitus 100 Porta = &B0001 Portb = Lookup(segment , _data) Waitus 2500 Segment1 = Mid(voltage , 2 , 1) Segment = Val(Segment1) Porta = &B0000 Portb = &B00000000 Waitus 100 Porta = &B0010 Portb = Lookup(segment , _data) Waitus 2500 Porta = &B0010 Portb = &B10000000 Waitus 2500 Segment1 = Mid(voltage , 4 , 1) Segment = Val(Segment1) Porta = &B0000 Portb = &B00000000 Waitus 100 Porta = &B0100 Portb = Lookup(segment , _data) Waitus 2500 Segment1 = Mid(voltage , 5 , 1) Segment = Val(Segment1) Porta = &B0000 Portb = &B00000000 Waitus 100 Porta = &B1000 Portb = Lookup(segment , _data) Waitus 2500 End If Loop Return End 'end program '*********************************************************************START DATA _data: Data &B0111111 '0=0 Data &B0000110 '1=1 Data &B1011011 '2=2 Data &B1001111 '3=3 Data &B1100110 '4=4 Data &B1101101 '5=5 Data &B1111101 '6=6 Data &B0000111 '7=7 Data &B1111111 '8=8 Data &B1101111 '9=9 Data &B0000000 '10=OFF Data &B1110111 '11=A Data &B1111001 '12=C Data &B1111001 '13=E Data &B1110001 '14=F Data &B1110110 '15=H Data &B1110011 '16=P Data &B0111000 '17=L Data &B0110111 '18=UP Data &B0111110 '19=DOWN '***********************************END PROJECT********************************* |
ویدئو ضبط شده از عملکرد پروژه
در زیر یک ویدئو از نحوه عملکرد پروژه ساخت ساخت ولت متر دیجیتالی با سون سگمنت و میکروکنترلر AVR ضبط شده است, که می توانید برای درک بیشتر از نحوه عملکرد پروژه به صورت آنلاین مشاهده و یا از انتهای همین پست دانلود نمائید.
عالی بود
سلام من فایل ها را دانلود کردم و مدار را در پروتئوس بستم ولی نمیدونم چطور باید جواب بده؟
و اینکه برای ساخت مدار میشه لیست قطعات را بگید؟
من این مدار را برای پروژه درسم انتخاب کردم لطفا زودتر پاسخ دهید. ممنون
سلام دوست عزیز
طبق نقشه شماتیک قطعات را تهیه فرمائید و سپس مدار را طبق تصاویر بر روی یک برد برد مونتاژ کنید، و سپس برنامه نوشته شده را توسط یک پروگرامر بر روی میکروکنترلر پروگرام نمائید.
برای استفاده از نرم افزار پروتئوس باید ابتدا فایل ها و ویدئوهای آموزش کار با نرم افزار پروتئوس را از سطح اینترنت دانلود کنید و بعد از فراگیری کار با نرم افزار، اقدام به شبیه سازی مدار کنید.
من مدار را بر روی پروتئوس بستم .فایل پروتئوس فرستادم لطفا اگه اصلاحی لازم داره انجام بدید برام ایمیل کنید.
در مورد کارکردش در پروتئوس هم توضیحی به ایمیلم بفرستید. ممنون
پسورد فایل: ali9775
لینک دانلود:
سلام دوست عزیز
درخواست خود را از طریق ایمیل مطرح کنید.
راهی وجود داره همین مدار را بشود در آن واحد به هر دو صورت آمپر و ولتاژ متر بکار برد ؟ با توجه به سرعت نمونه گیری در میکرو باید این امکان وجود داشته باشه . باز اساتید بهتر می دانند
سلام دوست عزیز
بله می توانید پیشنهاد می کنیم برای راحتی کار و بالا بردن دقت اندازه گیری از ماژول های آماده در این زمینه استفاده کنید
سلام من نقشه شماتیک را تو پروتوس کشیدم برنامه هم گذاشتم دلی جواب نداد میشه فایل پروتوس را به ایمیلم ارسال کنید خیلی ممنونم و در ضمن منظور از vcc پایه 10 اتمگا 32 است و سی ولت را باید به کجا وصل کنم
سلام دوست عزیز
مدار شبیه ساز برای این مدار طراحی نشده است و اگه مایل به شبیه سازی آن هستید خودتان باید آنرا در نرم افزار مورد نظر خود شبیه سازی کنید.
در میکروکنترلر ATmega32 پایه شماره 10 مثبت و پایه شماره 11 منفی تغذیه است که باید به یک منبع تغذیه 5 ولتی متصل شوند.
ولتاژی که قصد اندازه گیری آنرا دارید باید به محل (Input Volt 0~30 – V-DC) که بر روی نقشه شماتیک مشخص شده است یا همان پایه آزاد مقاومت R6 متصل شود.
تجهیزات و قطعات مورد نیاز چیا هستن تا بتونیم درستشون کنیم
با سلام و احترام
اطلاعات قطعات مورد نیاز برای ساخت مدار در نقشه شماتیک مشخص و قابل مشاهده است.