ساخت ولت متر و آمپر متر
در این بخش تیم الکترونیک و برنامه نویسی الکترونیک ۹۸, اقدام به طراحی و انتشار پروژه ای کاربردی و حرفه ای با عنوان, ساخت وات متر و ولت متر و آمپر متر AC و DC با میکروکنترلر AVR, برای شما علاقه مندان به پروژه های میکروکنترلر AVR کرده است. در پروژه قبلی (ولت متر AC با قابلیت اندازه گیری ولتاژ 0 تا 1000 ولت rms) با نحوه اندازه گیری ولتاژ AC توسط میکروکنترلر AVR و ساخت دستگاه ولت متر AC با قدرت اندازه گیری ولتاژ 1000 ولت آشنا شدیم. حال قصد داریم در این پروژه با گسترش پروژه قبلی یک مولتی متر کامل و تمام عیار توسط میکروکنترلر AVR بسازیم.
شرح عملکرد پروژه
همانطور که بیان شد در این پروژه قصد داریم تا با بهرگیری از واحد ADC میکروکنترلر AVR، ولتاژ DC، ولتاژ AC، جریان DC و جریان AC را اندازه گیری نمائیم و بر روی یک LCD کاراکتری در ابعاد 16*2 به کاربران نمایش دهیم. همچنین لازم به ذکر است که در الگوریتم برنامه نویسی این پروژه طبق رابطه P = V*I مقدار توان مصرف کننده (وات متر) نیز اندازه گیری می شود و توسط همان ال سی دی کاراکتری متصل به میکروکنترلر ATmega8 که ولتاژ و جریان را به کاربران نشان می دهد مقدار توان مصرف کننده نیز نشان داده خواهد شد.
نقشه شماتیک پروژه ساخت ولت متر و آمپر متر AC و DC با میکرو AVR
در این مدار از مدار کسینوس فی متر استفاده نشده است. این پروژه از 4 قسمت تشکیل شده است که شامل مدار اندازه گیری ولتاژ، مدار اندازه گیری جریان، یکسوساز ابزار دقیق و کنترل AVR می شود.
سخت افزار پروژه
قسمت اندازه گیری ولتاژ متناوب به صورت بلوک زیر می باشد که ولتاژ AC را دریافت می کند و به ولتاژ DC تبدیل می کند و در صورت افت ولتاژ یا افزایش ولتاژ ورودی مقدار ولتاژ DC تغییر می کند که این ولتاژ به ADC میکروکنترلر AVR متصل شده و همچنین جهت تنظیم کردن ولتاژ خروجی از یک مولتی ترن در خروجی مدار استفاده شده است. توجه داشته باشید که خازن 0.39 میکروفاراد 400 ولت که در مسیر ورودی به پل دیودی قرار دارد حتما از نوع سرامیکی باشد.
در قسمت زیر مقاومت 1.2 اهم 10 وات در مسیر ورودی و خروجی سری شده است که متناسب با عبور جریان بر روی مقاومت افت ولتاژ به وجود می آید. کانتکتور j2 ورودی برق شهر 220 ولت و کانکتور j1 خروجی برق 220 ولت است.
در قسمت زیر مدار یکسوساز با مدار Op-Amp آورده شده است که افت ولتاژ دو سر مقاومت 1.2 اهم را که ولتاژ AC می باشد را به ولتاژ DC تبدیل می کند. از مشخصات اصلی و بارز یکسوساز مبتنی بر تقویت کننده عملیاتی این است که ولتاژه ها با دامنه خیلی کم را می توان یکسو نماید.
برنامه نوشته شده در نرم افزار BASCOM-AVR به زبان بیسیک BASIC
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 |
$regfile = "m8def.dat" $crystal = 8000000 '---------------------------------- $hwstack = 100 $swstack = 200 $framesize = 120 '---------------------------------- Dim A As Byte Dim Adcc As Word Dim Longg As Long Dim Singlee As Single Dim Stringg As String * 10 Dim Volt As Single Dim Amper As Single '---------------------------------- Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Pind.5 , E = Pind.4 , Db4 = Pind.3 , Db5 = Pind.2 , Db6 = Pind.1 , Db7 = Pind.0 Cls Cursor Off '---------------------------------- Config Adc = Single , Prescaler = Auto , Reference = Internal Start Adc '---------------------------------- Config Pind.6 = Output Config Pind.7 = Output '---------------------------------- Led_red Alias Portd.7 Led_green Alias Portd.6 '---------------------------------- Cls Led_red = 1 Led_green = 0 '---------------------------------- Locate 1 , 6 Lcd "Hello" Wait 2 '---------------------------------- Led_red = 0 Led_green = 1 '---------------------------------- Cls Main: Longg = 0 For A = 1 To 20 Adcc = Getadc(4) Waitms 10 Longg = Longg + Adcc Next Longg = Longg / 20 Singlee = Longg * 2.44 Singlee = Singlee / 1000 Singlee = Singlee * 222 Longg = Singlee Volt = Singlee Locate 1 , 1 : Lcd "V=" ; Longg ; " " '---------------------------------- Longg = 0 For A = 1 To 20 Adcc = Getadc(3) Waitms 10 Longg = Longg + Adcc Next '---------------------------------- Longg = Longg / 20 Singlee = Longg * 2.44 Singlee = Singlee / 1000 Singlee = Singlee / 2.57 Stringg = Fusing(singlee , "#.###") Amper = Singlee Locate 1 , 8 Lcd "A=" ; Stringg ; " " '---------------------------------- Singlee = Volt * Amper Stringg = Fusing(singlee , "#.#") '---------------------------------- Locate 2 , 1 : Lcd "W=" ; Stringg ; " w " Waitms 600 Goto Main End |
سلام خسته نباشید
خیلی ممنون بابت مطالب خوبتون
میشه کمی راجب اعداد درج شده در سورس کد توضیح بدید
با تشکر
قسمت ولتاژ:
Longg = Longg / 20
Singlee = Longg * 2.44
Singlee = Singlee / 1000
Singlee = Singlee * 222
قسمت آمپر:
Longg = Longg / 20
Singlee = Longg * 2.44
Singlee = Singlee / 1000
Singlee = Singlee / 2.57
سلام وقت بخیر
میشه کمی راجب اعداد درج شده در سورس کد توضیح بدید
با تشکر
قسمت ولتاژ:
Longg = Longg / 20
Singlee = Longg * 2.44
Singlee = Singlee / 1000
Singlee = Singlee * 222
قسمت آمپر:
Longg = Longg / 20
Singlee = Longg * 2.44
Singlee = Singlee / 1000
Singlee = Singlee / 2.57