سفارش تبلیغ
صبا ویژن

شهرستان مهر*** انجمن مهندسان

 

دانشمند، زنده ای میان مردگان است . [امام علی علیه السلام]

 
 

مدیریت| ایمیل من

| خانه

پایین

?شهرستان مهر -- سید مصطفی برهانی نسب

سه شنبه 89/2/14  ساعت 1:48 عصر

چگونه یک ولتمتر بسازیم؟

 



 


چگونه با استفاده از PIC16c71 یک ولتمتر سریال بسازیم


 




 عنوان اصلی مقاله:   How to build a Serial Voltmeter using the PIC16C71


منبع:www.rentron.comش


 


voltmeter


ولتمتر سریال


ساختن یک ولتمتر سریال ساده که بتواند از 0 تا 5 ولت را اندازه بگیرد واقعا ساده است.این کار به کمک Microsoft Visual Basic نسخه 5 به بالا و نرم افزارهای  Melabs وPicBasic  انجام پذیر است.شما به این دلیل به Microsoft Visual Basic Pro نیاز دارید که بتوانید از مولفه MsComm Control آن استفاده کنید.این Control در نسخه "آموزشی"  Visual Basic 5 موجود نیست(*).PIC 16c71 با داشتن یک مبدل A/D داخلی این کار را ساده ساخته است.پین های 17 و18و1و2 ورودی های آنالوگ هستند,یعنی به ترتیب AIN0 وAIN1 وAIN2 و AIN3.


نرم افزار ولتمتر سریال , جهت دریافت اطلاعات فرستاده شده از طرف میکروکنترلر PIC ,بر پورت سریال نظاره می کند و پس از دریافت داده ,نتیجه نمایش داده شده از طریق ضرب نمودن آن در 0.02 بدست می آید.مبدل A/D موجود در PIC16C71 از نوع تقریب متوالی(Successive Approximation) بوده ونتایج هشت بیتی تولید می کند.با وجود نتیجه هشت بیتی به رنج 0 تا 255(به نمایندگی از 0 تا 5 ولت) محدود می شویم.


شماتیک مدار PIC16C71


PIC Microcontroller Voltmeter 


               کد PicBasic


                " Access PIC16C71 A/D using Peek and Poke

                Symbol ADCON0 = 8                         " A/D Configuration Register 0

                Symbol ADRES = 9                            " A/D Result
                Symbol ADCON1 = $88                      " A/D Configuration Register 1
                Symbol SO = 0                                   " Serial Output on port B0

                poke ADCON1, 0                                 " Set PortA 0-3 to analog inputs
                poke ADCON0, $41                             " Set A/D to Fosc/8, Channel 0, On

                Loop:

                poke ADCON0, $45                             " Start Conversion
                pause 1                                               " Wait 1ms for conversion
                peek ADRES, B0                                " Get Result to variable B0

                serout SO,N2400,(#B0,10)                  " Send variable to serial out

                goto Loop                                            " Start over again


 


کد بالا که بسیار ساده است,با استفاده از Micro Engineering"s PicBasic نوشته شد.با استفاده از دستورات PEEK و POKE در PicBasic  قادر خواهیم بود به  رجیستر های A/D داخلی PIC16C71  و پین های پورت A دست پیدا کنیم.بعد از آمادهسازی رجیسترهای A/D برای استفاده از AN0 -به خاطر پذیرش سیگنال های آنالوگ- برنامه در یک حلقه ساده باقی می ماند و به طور پیوسته مقادیر آنالوگ نمونه برداری شده در پین(پایه)   17 (موسوم به RA0/AN0) را می فرستد.


   کد ویژوال بیسیک:


vmetervb.gif (9137 bytes)


           Form1


         vmeter2vb.gif (3833 bytes) 


با ایجاد یکForm ساده , MSComm Control , یک تایمر, یک  Text Box و یک دکمه جهت خارج شدن از برنامه می توانید مانند آنچه در پنجره کد بالا و Form1 می بینید برنامه Visual Basic  خود را بسازید. 


اگر ترجیح می دهید از پورت Com دیگری استفاده کنید, به سادگی در جاییکه ما CommPort1 را انتخاب کردیم پورت مورد نظرتان را وارد کنید.به کد خط  Text1.Text = Asc(DataIn) * 0.02 & "    Volts DC" توجه کنید.این خط از کد , داده دریافتی از PIC  را به مقداری که بتوان آن را در Text Box یعنی ناحیه سیاه رنگ نشان داد  تبدیل می کند. از آنجا که مبدل A/D   موجود در PIC16C71 وضوح هشت بیتی دارد , پس  تنها 256 ترکیب ممکن از 0 تا 255 داریم.چون 5 ولت تقسیم بر 256 برابر با 0.0195 است,مقدار برگردانده از 250 بایستی معادل 4.87 باشد,چون 4.87=250*0.0195.مقدار 255 نزدیک به 5 ولت (4.9725 ولت) را نشان می دهد و52  ,1.04 ولت را نشان می دهد.


وضوح هشت بیت: برای اکثر کاربردها,وضوح هشت بیت کفایت می کند.با وضوح هشت بیتی ما قادر خواهیم بود ورودی های آنالوگ را با گام صعودی 0.0195 ولت اندازه بگیریم.ما 0 را به نمایندگی از صفر ولت و 255 را به نمایندگی از پنج ولت داریم.بنابراین وضوح واقعی ما 0.0195 یا 19.5 میلی ولت است.256 حالت مختلف -شروع از صفر و گام افزایش 19.6 میلی ولتی می تواند برای اکثر کاربردها کافی باشد.


بسیار خوب,پس چرا من از مقدار 0.02 برای انجام محاسباتم استفاده کردم؟ من آن را به 0.02 گرد کردم چون بعد از اینکه در حین عملکرد مدارم ,از ولت متر خود برای قرائت مقدار دقیق استفاده کردم , متوجه شدم با استفاده از 0.02 نتایج من دقیق تر می شود.این احتمال وجود دارد که مدار شما اندکی با این متفاوت باشد زیرا تاکنون دیده نشده  هیچ دو وسیله ای کاملا یکسان باشند.این ایده خوبیست که کمی آزمایش کنید و از یک ولتمتر دقیق برای تنظیم نمودن برنامه استفاده کنید تا به نتایج دقیق تری برسید.


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


نکته:نرم افزار ویژوال بیسیک تهیه شده در این پروژه , 32 بیتی بوده  و با بهره گیری از Com1 , تحت ویندز های 95 و98 وبالاتر اجرا می شود.


این فایل Hex برای نوشتن در PIC169C71 آماده می باشد.


این کد VB5 است ویک برنامه Installation/Setup کامل برنامه پروژه بالاست.


آیا مایلید نسخه مخصوص به خود را طراحی کنید؟ یا تنها کد VB را جهت اجرا دارید؟ این یک نسخه متفاوت و بدون تایمر است که توسط "باب کاتر" فرستاده شده است.این نسخه , شامل کد VB کامل برای ولتمتر سریال است.اینجا را کلیک کنید تا نسخه باب را داونلود کنید.


یک مقاله مفید:PIC را به سادگی با کمپایلر PicBasic  به زبان BASIC برنامه ریزی کنید.



 


 

نظر شما( )

لیست کل یادداشت های این وبلاگ

چگونه کتابخوان تر شویم؟
دانستنی های کوتاه
دانــستـــنی هـای جـــــالـــــــب
جهان در صدسال
28جمله از دکتر حسابی
الماس های معروف دنیا
معنی گلها
انیشتن
راز شمع (( در درمان و ارزو ها))
یا ذهن می تواند آینده را پیش بینی نماید؟
موبایل ومغز
آیا می دانید
خودرو و رنگها
نامگذاری محلات قدیمی تهران
پرچمدار ارتباطات با دور
[همه عناوین(1944)]

بالا

  [ خانه| مدیریت| ایمیل من| پارسی بلاگ| شناسنامه ]

بازدید

280852

بازدید امروز

319

بازدید دیروز

746

حضور و غیاب
یــــاهـو


 RSS 


 درباره خودم


 لوگوی وبلاگ

شهرستان مهر*** انجمن مهندسان

 پیوندهای روزانه


 اوقات شرعی

 فهرست موضوعی یادداشت ها

 لینک دوستان

مهندسی مکانیک
بی تاب

لوگوی دوستان




اشتراک