چهارشنبه , ۵ آذر ۱۳۹۳
آخرين مطالب
خانه » avr » ساعت و دماسنج و کرنومتر با ATMEGA8

ساعت و دماسنج و کرنومتر با ATMEGA8

در این پروژه از ای سی Atmega8  و سنسور دمای lm35  استفاده شده که کرنومتر و ساعت و دما بر روی ال سی دی کارکتری ۱۶*۲ نمایش داده میشود و زبان برنامه نویسی بیسیک است و کامپایلر نرم افزار بسکام میباشد.

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

منظور از حالت آسنکرون این است که تایمر دو میکرو  کلاک خود را از کریستال ساعت در یافت میکند که فرکانس کریستال ساعت۳۲٫۷۶۸ کیلوهرتز است و به پایه های TOsc1  و Tosc2  متصل میشود که در میکرو ATMEGA8  پایه های ۹ و ۱۰ هستند.

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

دستورات دیگری نیز وجود دارد که در باره با کانفیگ تایمر دو در حالت اسنکرون استفاده میشود که فعلا از ان ها صحبتی نمی کنیم.

زمانی که میکرو روشن شد ابتدا سه متغییر ساعت و دقیقه و ثانیه به صورت زیر مقدار دهی میشود.

و بر روی ال سی دی عبارت Hello  را نمایش می دهد و بعد از ۲ ثانیه وارد بخش اصلی برنامه می شود که این قسمت در یک do – loop  قرار دارد که در این بخش میکرو مدام مقدار دما را از سنسور دما lm35  که یک سنسور دمای متداول آنالوگ می باشد مقدار دما را میخواند و کلیدهای ورودی را چک میکند و مقدار ساعت و دقیقه و ثانیه را نمایش میدهد.

مقدار متغییر های ساعت هر یک ثانیه یک بار مقدار دهی جدید میشود یعنی به ثانیه یک عدد اضافه میگردد و اگر مقدار ثانیه بزرگتر ۵۹ شد مقدار ثانیه را صفر میکند و به دقیقه یک عدد اضافه میکند و همینطور مقدار دقیقه و ساعت محاسبه میگردد که تمامی این کارها در لیبل SEctic  اتفاق میافتد.

مقدار ساعت بر حسب ۲۴ ساعت نمایش داده میشود.

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

نام کلید ها عبارت است از

۱:Key set

۲:Key up

۳:Key down

ابتدا که میکرو روشن شد بعد از نمایش Hello بر روی خط اول ال سی دی زمان و در خط دوم دمای محیط نمایش داده میشود.

اگر در این حال کلید Key set  را فشار دهید  وارد قسمت تنظیمات ساعت میشود که روی ال سی مقدار ساعت را نشان میدهد و مقدار دقیقه و ثانیه به صورت* (ستاره ) نمایش داده میشود و بازدن کلید های Key up  و key down  مقدار ساعت را کم و زیاد میکنید.

حال اگر دوباره کلید Key set  را بزنید وارد قست تنظیم دقیقه می شود که در این حالت بر روی ال سی دی مقدار دقیقه نمایش داده میشود و مقدار ساعت و ثانیه به صورت  * (ستاره ) نمایش داده میشود که با زدن کلید های Key up  و key down  مقدار دقیقه کم و زیاد میشود.

بعد از تنظیم دقیقه کلید Key set  را فشار دهید  که مقدار جدید ساعت جایگزین مقدار قبلی میشود و  از قسمت تنظیمات خارج میشوید و میکرو دوباره به روال اصلی خود برمیگردد و بر روی ال سی دی مقدار ساعت و دما را نشان میدهد.

اما اگر در زمانی که میکرو دارد ساعت و دما را نشان میدهد به جای کلید Key set کلید Key up  را فشار دهید وارد قسمت کرنومتر (stop watch ) میشوید و بر روی ال سی مقدارزیر نمایش داده میشود.

دورقم صفر از سمت راست به چپ برای شمارش بر حسب میلی ثانیه

دو رقم صفر بعدی برای شمارش ثانیه

دورقم بعد بعدی برای شمارش دقیقه

دو رقم بعد برای شمارش ساعت میباشد.

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

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

زمانی که در حالت کرنومتر هستید اگر کلید Key set  را فشار دهید کرنومتر شروع به کار میکند و بر روی ال سی مقادیر در حال شمارش نمایش داده میشود  و برای متوقف کردن کرنومتر باید کلید  key down  را فشار دهید که زمان شمارش داده شده تا ان موقع بر روی ال سی دی ثابت میشود.

برای خروج از حالت کرنومتر و نمایش دما و ساعت باید کلید key up  را بزنید.

برای اندازه گیری دما از سنسور lm35  استفاده شده است که خروجی ان ولتاژ انالوگ میباشد و نسبت به هر ۱درجه سانتی گراد  ، خروجی ان ۱۰ میلی ولت افزایش میابد که این ولتاژ توسط ADC  میکرو اندازه گیری میشود.

رفرنس ولتاژ ADC  میکرو ۵ ولت میباشد که طبق رابه روبرو  ۵۰۰۰mv / 1023 = 4.88mv   هر پله adc از ۱۰۲۳ پله به ازای ۴٫۸۸ میلی پر میشود.

یعنی اگر دما برابر ۱ درجه سانتیگراد باشد ولتاژ خروجی سنسور۱۰ میلی ولت است که به ورودی ADC شماره یک وصل شده است ۲ تا خانه از ADCرجیستر  پر میشود.

به همین دلیل برای نمایش مقدار واقعی دما باید مقدار خانه های پر شده در ADC  را بر عدد ۲ تقسیم کنید مثلا برای اندازه گیری دمای ۱ درجه باید مقدار adc  را که برابر ۲ است را بر ۲ تقسیم کنیم تا جواب بدست امده که۱ می باشد همان مقدار دمای اندازه گیری توسط سنسور است.

همانطور که گفته شد برای نمایش اطلاعات از ال سی دی کارکتری استفاده شده است که برای تنظیم کنتراست از یک پتانسیومتر ۱۰ کیلو استفاده شده که با چرخاندن ان میزان روشنایی  کارکترهای روی ال سی دی تغییر میکند.

نکته مهم : در برنامه فرکانس میکرو ۴ مگاهرتز تعیین شده است که باید در فیوز بیت مقدار فرکانس را بر روی ۴ مگ باید تنظیم نمایید و همچنین فیوز بیت CKOP را نیز فعال کنید .

توجه : مقدار فرکانس میکرو را به غیر از ۴ مگ تنظیم نکنید چون تایمر یک بر طبق فرکانس ۴ مگ نوشته شده و تنظیم شده است.

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

جهت دانلود فایل سورس بیسیک - نقشه شماتیک بر روی عکس زیر کلیک نمائید.

دفعات دانلود 5777

پیروز و استوار باشید

یاعلی

۲۳ نظر

  1. سلام
    من در تعداد بالا نیاز به کرنومتری دارم که در ۴ مقطع زمانی خروجی بدهد.
    برای مثال از ۱۲۰ (دقیقه) استارت – LED سبز روشن – در دقیقه ۱۰ LED نارنجی روشن – در دقیقه ۱ LED قرمز روشن – در دقیقه ۰ خروجی بابت عملکرد کاتر میشودو جزئیات دیگر.
    در صورتی که بتوانید طراحی و ساخت این قطعه را انجام دهید اماده عقد قرارداد هستم در غیر اینصورت اگر توانستید راهنمایی بفرمایید.
    سپاسگزار

  2. سلام
    خسته نباشید . واقعا سایته توپی دارین . ممکنه شماتیکشو در پروتئوس بذارید ، من خوئم بستم ولی درست جواب نمیگیرم. ممنون میشم

  3. لطفا در مورد تراشه های میکروکنترلر ایکس مگا هم اطلاعات و برنامه های مورد نیاز را بذارید
    با تشکر :laugh:

  4. سلام مهندس :

    من همچنان منتظر راهنمایی شما هستم … منتظرم

    یا علی

  5. سلام به مدیر عزیز وبلاگ :

    خسته نباشید

    غرض از مزاحمت : راستش من این پروژه رو از سایت شما به عنوان پروژه درسی انتخاب کردم .( متاسفانه اشنایی خیلی مختصری با زبان بیسیک دارم ).

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

    کمک کنید … امیدم بعد از خدا به شماست …. لطف میکنید اگه جوابمو بدین ..

    ممنون منتظرم

    یاحق

  6. سلام داداش
    ما رفتیم فقط ساعتش رو بسازیم وا رفت
    راستش من با کد ویژن نوشتم تو پروتئوس هم جواب گرفتم
    اتصالات هم درسته ولی ال دی همش سیاه هست
    نمی دونم چرا ……. :quiet:

جوابی بنویسید