اطلاعیه

Collapse
No announcement yet.

ساعت دقیق با کریستال 32.768Khz و میکروکنترلرAVR

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ساعت دقیق با کریستال 32.768Khz و میکروکنترلرAVR

    به نام خدا
    In The Name Of GOD

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

    میخوام توی این تایپیک ساخت یه ساعت دقیق با کریستال ساعت 32.768Khz که با میکرو avr هست توضیح بدم.

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

    این مداریه که طراحی کردم:


    قطعاتش یه ال سی دی کاراکتری 16*2 یه میکرو مگا32 یه کریستال ساعت 32.768 کیلو هرتز دوتا مقاومت پول اپ و دوتا کلید واسه تنظیم ساعت.
    حالا بریم سراغ تنظیمات کد ویزارد:
    تنظیمات ال سی دی کاراکتری

    تنظیمات تایمر 2 میکرو

    خوب این تنظیمات کدویزارد بود که تموم شد حالا روی گزینه ی Program گزینه ی Generate , save and exit می زنیم و برنامه رو توی یه جای مشخص با یه اسم ("حتما انگلیسی یا عدد لاتین باشه هرگز فارسی ننویسید")ذخیره می کنیم.

    یه توضیحی بدم :تنظیمات ال سی دی که چیز خاصی نداره ال سی دی رو روی پورت D تنظیم کردیم و تعداد لاین هم 16 انتخاب کردیم.
    تایمر میکرو هم روی PCK2/128تنظیم کردیم چون باید فرکانس تقسیم به این مقدار بشه و عدد 256 به دست بیاد که این روند تایمر ما هستش تا یه ثانیه تولید بشه.
    ما منبع کلاک روTOSC1 انتخاب کردیم که ب همین دلیل کریستال ساعت رو روی پایه های TOSC1 وTOSC2 نصب می کنیم.
    حالا بریم سراغ خط های برنامه نویسیش:

    شماره 1 : کتابخونه متغییر های رشته ای رو وارد کردیم واسه این هست که میخوایم عدد های ساعت رو روی ال سی دی نمایش بدیم.
    شماره 2 :متغییر های لازم رو تعریف می کنیم.
    شماره 3 :توی روتین وقفته تایمر 2 کد های مربوطه رو می نویسیم:
    خط 9 که نوشته ++s یعنی یه واحد به s اضافه کن که این ثانیه شمار ما هستش هر 256 تایی که میشمره تایمر یه واحد به متغییر s اضافه میشه.
    خط های بعدی هم شرط های ثانیه دقیقه و ساعت هستن.


    خوب این خط ها هم نمایش متغییر های ثانیه دقیقه و ساعت روی ال سی دی و تنظیم ساعت با کلید ها هستن
    شماره 1 :در خط اول توسط تابع sprintf متغییر های رشته ای رو نمایش دادیم
    شماره 2 : این دو خط متغییر های ساعت و دقیقه رو تغییر می دن.

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

    اینم نتیجه کار:


    فایل پروژه رو هم میزارمش اینجا :

    کد:
    http://s9.picofile.com/file/8312709684/oclock_by_32_768_crystal.rar.html
    رمز فایل زیپ www.eca.ir هستش

    امیدوارم لذت برده باشین سوالی چیزی بود بپرسین اگر بلد باشم جواب میدم (فقط سخت نباشه)


    اضافه شده در تاریخ 28/10/1396


    سلامی دوباره

    اومدم یه تجربه رو اضافه کنم این کریستال ساعت رو روی مگا 8 تست کردم و ساعت جلو میفتاد با قرار دادن کریستال 22 پیکو روی پایه های کریستال ساعت تست شد ساعت عقب افتاد و بعد از چند تست خازن رو به 15 پیکو تغییر

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

    *****End*****
    موفق باشید در پناه حق یا علی


    جدیدترین ویرایش توسط real_ahmadi; ۱۳:۳۵ ۱۳۹۶/۱۰/۲۸.
    Proudly @real_ahmadi
    #real_ahmadi

    واسه اسمت بجنگ

    #2
    پاسخ : ساعت دقیق با کریستال 32.768Khz و میکروکنترلرAVR

    این کار برای آردوینو هم امکان پذیره؟

    دیدگاه


      #3
      پاسخ : ساعت دقیق با کریستال 32.768Khz و میکروکنترلرAVR

      نوشته اصلی توسط Master81 نمایش پست ها
      این کار برای آردوینو هم امکان پذیره؟
      سلام خدمت شما
      این کدی که نوشتم واسه avr هست واسه اردوینو باید کد مخصوصش رو بنویسید بله فک کنم بشه با ردوینو هم ساختش
      موفق باشید
      Proudly @real_ahmadi
      #real_ahmadi

      واسه اسمت بجنگ

      دیدگاه


        #4
        پاسخ : ساعت دقیق با کریستال 32.768Khz و میکروکنترلرAVR

        نوشته اصلی توسط مهندس احمدی نمایش پست ها
        سلام خدمت شما
        این کدی که نوشتم واسه avr هست واسه اردوینو باید کد مخصوصش رو بنویسید بله فک کنم بشه با ردوینو هم ساختش
        موفق باشید
        خیلی ممنون از پاسخ گوییتون جناب من یه سوال دیگم داشتم از نظر دقت این روش بهتره یا اینکه بیایم با DS1307 ساعت بسازیم؟

        Sent from my GT-N5100 using Tapatalk

        دیدگاه


          #5
          پاسخ : ساعت دقیق با کریستال 32.768Khz و میکروکنترلرAVR

          نوشته اصلی توسط Master81 نمایش پست ها
          خیلی ممنون از پاسخ گوییتون جناب من یه سوال دیگم داشتم از نظر دقت این روش بهتره یا اینکه بیایم با DS1307 ساعت بسازیم؟

          Sent from my GT-N5100 using Tapatalk
          ds1307 ویژگی های خودشو داره و این تایمر هم ویژگی های خودشو مثلا شما بک اپ بخوای و....dc1307 به کارت میاد بیشتر البته واسه این مدار هم میشه گذاشت باتری بک اپو ...ولی در کل دقتشون باید یکی باشه و از همه مهم تر به کریستال ساعتی که می زاری بستگی داره حالا چه 1307 چه میکرو avr
          پاینده باشید
          Proudly @real_ahmadi
          #real_ahmadi

          واسه اسمت بجنگ

          دیدگاه


            #6
            پاسخ : ساعت دقیق با کریستال 32.768Khz و میکروکنترلرAVR

            سلام وخسته نباشید این ساعت عقب میفته

            دیدگاه


              #7
              پاسخ : ساعت دقیق با کریستال 32.768Khz و میکروکنترلرAVR

              نوشته اصلی توسط Bboymmd نمایش پست ها
              سلام وخسته نباشید این ساعت عقب میفته

              سلام
              چرا عقب میفته؟
              کیفیت کریستال خیلی مهمه اگه میکرو مگا هشت هست باید پایه های کریستال رو با خازن 15 پیکوفاراد زمین کنید
              موفق باشید
              Proudly @real_ahmadi
              #real_ahmadi

              واسه اسمت بجنگ

              دیدگاه

              لطفا صبر کنید...
              X