نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
مهدی دمیرچیلو

انواع روش ساخت ساعت با AVR

به نام خدا

انواع روش ساخت ساعت با AVR : سلام خدمت شما دوستان گل ، تو این مطلب میخوام انواع روش برا ساخت ساعت با میکروکنترلر AVR رو بگم بهتون(هر چند خودتون میدونید smile )
انواع روش ساخت ساعت با AVR

نکته : در پروژه های زیر بهتره فیوز بیت های میکرو رو به صورت زیر تنظیم کنید(برای تمام پروژه های زیر)

انواع روش ساخت ساعت با AVR

۱) ساعت با DELAY :

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

ساعت با DELAY

کدهای پروژه

 

۲) ساعت با TIMER :

ساعت با استفاد از تایمر ، نسبت به DELAY دقتش بهتره ، از کلاک میکرو استفاده میکنه….این رو هم توضیح نمیدم چون شما میتونید مطلب مقابل رو بخونید laugh  : آموزش AVR جلسه۹
شماتیک پروژه
ساعت با TIMER
کدهای پروژه

 

۳) ساعت با RTC :

مثل حالات بالایی هستش فقط کلاکش رو از کلاک داخلی میکرو نمیگیره و باس گفت که روی میکرو ۲ تا پای ههستش که ما میایم و به این ۲ تا پایه یه کریستال وصل میکنم و این کریستال مییشه مال ساعت crazy ….. این مد در تایمر۲ هستش(تا اونجایی که یادم هستش) و وقتی منبع کلاک تایمر رو میزاری روی پایه های ۲۸ و ۲۹ میکرو کنترلر یعنی TOSC1 , TOSC2 میکرو میره تو مد RTC (اگه اشتباه نکنم هر ۳۲۷۶۷ تا کلاکش میشه ۱ ثانیه—حالا دقیقش تو لینکی که در ادامه میزارم گفتم) اگه هم توجه کنید فرکانس کریستال ۳۲٫۷۶۸KHZ هستش.
توجه ۰ : من این ساعت رو در عمل بستم و در طول ۵ دقیقه حتی ۱ ثانیه هم عقب و جلو نشد و خیلی دقیق بود، با ساعت و تایمر موبایل مقایسش کردم از تایمر موبایل عقب نیوفتاد و جلو هم نزد. cool ……….لذا این روش دقیق ترین ساعتی هستش که میشه ساخت در بین تمام روش های موجود. smile
توجه ۱ : با توجه به این که ما از پایه های پر ارزش پورت C استفاده میکنیم و این پایه ها برای JTAG هستن بهتره JTAG رو غیر فعال کنید، البته پایه های JTAG میوفته رو پایه های ۲تا۵ پورت c و پایه های کریستال ما وصل میشه به پایه های ۶و۷ پورت C ، لذا فک نکنم نیازی باشه فیوز بیت JTAG رو غیر فعال کنید، ولی اگه پروژتون کار نداد این JTAG رو غیر فعال کنید شاید فرجی حاصل شد. laugh ….در زیر پایه های JTAG و پایه های اتصال کریستال ساعت رو میبینید.
توجه ۲ : در فیلم پروژه این قسمت که در زیر گزاشتم!!! میبینید که من یه سیم از پایه های LCD رو قطع کردم….دلیلش رو هم تو فیلم نشون دادم، بعضی این LCD جدیدا پتاسیومتر میخواد و چون من یکم تنبل هستم laugh و حال استفاده کردن از پتاسیومتر رو ندارم لذا از روشی که توی فیلم نشون دادم استفاده کردم و اون سیم رو اتصالش رو قطع کردم….البته سیم رو که قطع کردین حدود ۳۰ ثانیه طول میکشه تا درست بشه….و برا مواردی که LCD هی قراره خاموش روشن بشه همون بهتر که از پتاسیومتر استفاده کنید که در مطلب مقابل یه عکس برا این موضوع گزاشتم : آموزش جامع کار با LCD کاراکتری
توجه ۳ : مورد بعد این که همون طور که در فیلم مبینید sarcastic ، اون کریستال ساعت رو من هر موقع از برد برش میدارم، ساعت دیگه کار نمیده، در حالی که در پروتئوس اگه کریستال ساعت رو برداری ساعت به کارش ادامه میده rofl ، و این هم دلیل دیگه ای که پروتئوس بدرد نمیخوره و زیاد نباید بهش اعتماد کرد. buba
توچه ۴ : با تشکر از انجمن برق دانشگومون که این قطعات رو در اختیار من گزاشت laugh …..جاش اینجا بود؟ crazy

عکس پروژه در عمل
پروژه AVR ساعت با RTC

فیلم پروژه در عمل(همش ۵ میگ هستش نگاه کن ظرر نداره mosking )

شماتیک پروژه
ساعت با RTC

کدهای پروژه

 

۴) ساعت با ماژول و آی سی :

قبلا مطالب و آموزش هایی دربارش گزاشتیم laugh …لذا تو این مطلب کاری باهاش ندارم pardon …میتونید لینک مقابل رو ببینید : پروژه ساعت با AVR

دانلود ۳ پروژه این مطلب

والا اضلا حس توضیح دادن نیست….همش پیچوندم sorry  …. لامسب الان من تو سالن مطالعه هستم…هواش گرم و گرفته هستش…..منم زیاد حالم خوش نیست الان و حال ندارم…. dash
این مطلب هم توم شد…این جمعه هم تموم شد….و عمر ماهم تموم شد و ما آدم نشدیم که نشدیم….. cry
فعلا یا علی bye

گروه پرسش و پاسخ الکترونیکی در سروش
مهدی دمیرچیلو جنگ ما فتح قدس را به همراه خواهد داشت. [ امام خمینی (ره) ]
ارسال دیدگاه
148

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    کریم

    سلام
    اگه امکانش هست این برنامه رو با نمایشگر 12864 بشه بست اجرا کرد
    ممنون میشم برنامه رو بزارید

  2. Avatar

    مهمان

    محسن

    سلام خسته نباشید
    سایت خیلی خوب و مفیدی هست
    یه سوال
    من همین برنامه بالا رو برای میکرو کنترلر mega8تعغیر دادم یعنی بجای مگا16خودم تعغیر دادم به مگا8 ولی برنامه داره ارور میده
    Error: undefined symbol ‘OCR0
    هرچی میگردم مشکلش پیدا نمی کنم میشه راهنمای کنید؟
    ممنون میشم

  3. Avatar

    مهمان

    بهنام

    سلام مهندس وقت تون بخیر.یه برنامه نوشتم که توش از تایمر استفاده شده که مثلا ۵ دقیقه فن روشن باشه ۲ دقیقه خاموش باشه و البته این فقط یه قسمت کوچیک از برنامس این مقدار زمان داخل menu قابل تغییره وقتی برنامه استارت میشه مثلا هر ۱۰ ثانیه زمان یهو ۲ ثانیه میپره جلو.حتی تو شبیه ساز هم همینطور کار میکرد.ایرادش چیه؟هرجا میگردم چیزی موردش پیدا نمیکنم

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – از تابع dealy سعی کن استفاده نکنی – فرکانس کامپایلر و فرکانس میکرو و فرکانسی که تو محاسبات رجیستر های تایمر در نظر گرفتی یکسان باشه – تسط کامل رو مد های تایمر و محاسبات درست مقدار رجیستر ها…

      • Avatar

        مهمان

        بهنام

        اگه ممکنه آی دی تلگرام برام ارسال کنید تا فردا از تنظیمات برنامه عکس بگیرم براتون بفرستم.دارم یه تابلو طراحی میکنم همه چیزش درسته الا این تایمر اولین باریه که دارم برنامه نویسی می کنم حتی با کریستال ساعتی و کریستال 8مگا هم امتحان کردم با کریستال ساعتی پرش ها بیشتر میشه dash

  4. Avatar

    مهمان

    Ali

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

  5. Avatar

    مهمان

    Ali

    سلام نمیشه با تایمر شماره 2 ساعت ساخت به همین روش اضافه کردن کریستال ساعت به میکرو؟

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام

      mega16 datasheet

      timer/counter 0
      An external clock source applied to the T1/T0 pin can be used as Timer/Counter clock (clkT1/clkT0).

      timer/counter 1

      timer/counter 2
      Allows clocking from External 32 kHz Watch Crystal Independent of the I/O Clock

      میبینی که تنها تایمر/کانتر دو از کلاک خارجی 32کیلو میتونه استفاده کنه.

      کد پروژه “(3) ساعت با RTC” رو ببینی – از تایمر 2 استفاده کردم.

      • Avatar

        مهمان

        Ali

        ممنون beach

  6. Avatar

    مهمان

    میلاد

    سلام میشه یه اموزش ساخت منو در lcd کارکتری بزارید
    هیچ سایتی ندیدم بزاره

  7. Avatar

    مهمان

    amin86

    عالی و ممنون از سایت خوبتان

  8. Avatar

    مهمان

    سورا

    سلام بر آقای دمیرچیلو!
    توی استفاده از کریستال ساعت باید پالس کریستال رو توی TCCR2 روی تقسیم بر 128 تنظیم میکردید که نشده! خلاصه ثاینه ها اونطوری که من رو مگا8 پیاده کردم خیلی سریعتر میرفت!
    و اینکه بنده یه ساعت با مگا8 طراحی کردم که اعداد رو فارسی نشون میده (به روش جاروب) اگه دوست داشته باشید کد و نقشه رو در خدمتتون میذارم mail

  9. Avatar

    مهمان

    علی

    سلام آقای دمیرچلو خسته نباشی ببخشید شما ای سی میشناسید که پالس های 1 هرتزی تولید کنه (مثل اون چیزی که داخل ساعت های آنالوگ هست)
    ممنون

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – از آیسی 555 میتوین استفاده کنی – از خود میکرو میتونی استفاده کنی
      اگه میخوای ساعت بسازی بهتره از ds3231 استفاده کنی.

  10. Avatar

    مهمان

    ارش حجازی

    سلام.
    یه سوالی داشتم در مورد تاخیر.
    من چنتا ال ای دی دارم میی خوام که متفاوت از هم روشن بشن. ولی مشکل اینجاس که وقتی ال ای دی اول روشن می شه تا بر نامه برسه به روشن کردن ال ای دی 4 تاخیرا باعث می شه که فواصل زمانی بهم بخوره.
    چاره چیه؟ unknw

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام-از تایمر استفاده کن در کدویژن و … در آردوینو هم از تابع millis استفاده کن.

  11. Avatar

    مهمان

    لیلا

    سلام من این برنامه هارو ک تو کد ویژن میزنم
    Error occured during assembly میده
    چجوری رفعش کنم

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام-از کتابخونه alcd بجای lcd استفاده کن.

  12. Avatar

    مهمان

    ناشناس

    کد اولیت غلطه

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      از چه نظر؟

  13. Avatar

    مهمان

    عباس اوجی

    سلام دوستان کسی میدونه چه جوری میشه ساعت مچی (کوچیک) ساخت؟
    داخلش از atmega و… استفاده نشده باشه
    در حد همین ساعت های مچی معمولی sad

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام
      اینو سرچ کن
      Making watch without microcontroller

  14. Avatar

    مهمان

    علیرضاو

    چجوری میتونم دوتا پوش بات بزارم ک یکیش ساعتو تغییر بده یکیش دقیقه رو

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      داخل حلقه while شرطا رو میزارری دیگه.
      اگه فلان دکمه زیاد شد – مقدار فلان متغییرو n واحد کم یا زیاد کن مثلا.

      • Avatar

        مهمان

        amircpu

        حتما هم حالت قبلی باتن رو ذخیره کنید و چک کنید که با نگه داشتن دکمه به صورت غیر قابل کنترل زیاد نشه .

  15. Avatar

    مهمان

    امین

    سلام دیماه امتحان داشتم که یکی از سوالا این بود که ۶ عدد سوت سگمنت داده بود و گفته بود که تا ساعت ۲۳:۵۹:۵۹ رانمایش دهیدمیشه کمک کنید که برنامش چجوری میشه.ممنون

  16. Avatar

    مهمان

    M20

    با سلام …
    ببخشید میتونید برنامه ساعت RTC رو برای سون سگمنت چهارتایی کاتد مشترک بنویسید ؟
    خیلی ممنون میشم… hi

  17. Avatar

    مهمان

    محمد صادق

    (if(i*256 + TCNT2 >= 32767
    سلام این خط رو یک توضیح کوچک میدین .
    تشکر .

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      فرکانس میکرو – فرکانس تایمر – تعداد کلاک شمرده شده توسط تایمر – اینا رو محاسبه کن –
      اگه تایمر به اندازه 1 ثانیه شمرد – تا جایی گه یادمه همینه

      • Avatar

        مهمان

        ناشناس

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

  18. Avatar

    مهمان

    علی

    با عرض سلام و خسته نباشید
    جناب من برنامه ساعتی نوشتم که مثلا در یه ساعتی مشخص یک ledدر پورت aبه عرض ۵ثانیه روشن بشه ولی از دقت ساعت کم نکنه ولی به هنگام اجرا در ساعت مشخص دقت ساعت از بین میره لطف کنید یه راهنمایی کنید. ممنون smile

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      از DS3231 استفاده کن – ماژول ساعت

  19. Avatar

    مهمان

    baran

    سلام
    اگر امکان داره لطفا کد rtc رو ی توضیح بدید.if(i*256 + TCNT2 >= 32767) این خط رو نمیفهمم چرا این جوری نوشتین؟

  20. Avatar

    مهمان

    ناشناس

    فام ممنون بابت مطالب
    ببخشید من سوال داشتم میخام یه ساعت RTCبسازم تیک CKSEL1,2رو زدم در کدویژن و تو پروتیوس هم کریستال خارجی فرکانس پایین رو انتخاب کردم ولی این ارور رومیده
    CKSEL fuse bits specify external oscillator but no CLOCK frequency is specified.
    شما میدونید مشکل چی هست؟؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      با پروتئوس کار نکن – همین متن انگلیسی رو تو گوگل عینا بزنی – جواب رو برات میاره.

  21. Avatar

    مهمان

    امیر

    سلام وقت بخیر من کد هارو نوشتم یه تغییر کوچیک دادم که قابل تنظیم باشه تو پرتوس جواب داده کامل اون جوری که میخواستم ولی وقتی پروگرام کردم روی lcd هیچی نمایش داده نمیشه!
    با نرم افزار sinaprog پروگرام کردم.

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – اول بیا یه متن ساده ببین میتونی تو نمایشگر نشون بدی یا نه – بعد بیا سراغ این پروژه.

  22. Avatar

    مهمان

    امیر

    سلام علیکم hi
    آقا یه سوال:
    من یه برنامه نوشتم که با فشردن یه دکمه، یکی از خروجی های میکرو ۱ میشه، و همچنین تایمر شروع به شمارش میکنه. با هر بار سر ریز تایمر، یک واحد به مقدار یه متغیر اضافه میکنه. وقتی مقدار اون متغیر با مقدار از پیش تعیین شده برابر شد، خروجی میکرو ۰ می شود و تایمر غیر فعال می شود.
    حالا مشکلم اینجاست:
    زمان ۱ بودن خروجی میکرو همیشه یکسان نیست.
    مثلا اگه من مقدار از پیش تعیین شده رو روی ۳ ثانیه تنظیم کرده باشم، انتظار دارم با فشردن دکمه ، خروجی میکرو ۱ بشه و بعد ۳ ثانیه ۰ بشه. ولی این زمان اصلا دقیق نیست، گاهی ۳ ثانیه است، گاهی ۲٫۵ ثانیه است، گاهی ۴ ثانیه است و…
    از خازن نویز گیر ۲۲ پیکو برای کریستال ساعت استفاده کردم.
    همچنین یه خازن عدسی ۱۰۴ هم به تغذیه میکرو متصل کردم.
    به فیوز بیت ها هم اصلا دست نزدم، فقط Jtag رو غیر فعال کردم.
    به نظر شما مشکل چیه ؟
    خیلی ممنون smile

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      خب مشکل از کدنویسی هستش دیگه – احتمالا از تایمر ۸ بیتی به عنوان ۱۰ بیتی استفاده کردی یا یه همچین سوتی هایی – باس خودت بشینی ببینی کجا سوتی دادی.
      برا اطمینان پروژه شماره ۲ این مطلب رو یه تست کن – ببین بازم همین مشکلو داری یا نه.

  23. Avatar

    مهمان

    محمد

    سلام ساعت با rtc رو نگاه کردم ..بابا خیلی ضایع نوشتی بیا این کد رو جایگزین کن
    sprintf(lcd_buff,”Time=%02d:%02d:%02d”,hour,minute,second);
    lcd_gotoxy(0,0);
    lcd_puts(lcd_buff);

  24. Avatar

    مهمان

    شکوفه

    مرسی واقعا مفید بود.
    فقط من یه مشکل دارم.
    با تایمر ساعت مینویسم اما تو پروتئوس روی ال سی دی تغییر نمیکنه. همون مقدار ست شده اول میمونه. هم به روش شما نوشتم هم با تایمر۱ مدctc
    در هر دو مورد هم برای تست برنامه توی روتین وقفه میگم یه پورت رو یک کنه ولی انجام نمیشه اصلا. نمیدونم مشکل تنظیمات تایمر منه یا پروتئوس. میشه راهنمایی کنید.
    ممنون

    • Avatar

      مهمان

      شکوفه

      متوجه شدم. مشکل #asm (“sei”) بود که فراموش کرده بودم.

  25. Avatar

    مهمان

    789

    سلام.
    برای کریستال باید خازن گذاشت؟
    اگه باید گذاشت چه قدر باید باشد؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام.۲۲ پیکو

  26. Avatar

    مهمان

    سید

    laugh laugh laugh
    آقا چ چیزایی میگی!!!!
    دیگه میشه نفهمم چی نوشته؟؟؟؟
    از بابت زبان مشکلی ندارم
    منظورم این بود کجا اون متغیر ساعت و دقیقه رو تعریف کنم که ارور نده
    آخه اون پایین تعریفش کردم….چرا میگه تعریف نشده؟؟؟
    فقط همین…سوالم این بود نه ترجمه ی ارور smile

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      پس خوبه اگه مشکل زبان نداری
      خوب من چمیدونم مشکل دقیق تو چیه no
      توصیه میکنم کتاب آموزش زبان c دانلود کنی یا بخری و بشینی بخونی.
      در اول تابع مین یا بعد از فراخونی کتابخونه ها تعریف کن متغییر هاتو

  27. Avatar

    مهمان

    سید

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

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      فک میکنی – این مشکلاتی که برا منو تو ایجاد میشه – برا دیگران چند سال پیش رخ داده و الان جواب همشون تو نت هستش
      الان متن خطای شما اینه :
      Error: C:\Users\MAHDI\Desktop\New folder\1.c(15): undefined symbol ‘hour’
      Error: C:\Users\MAHDI\Desktop\New folder\1.c(18): undefined symbol ‘minute’
      که میگه مغییر های ساعت و دقیقه تعریف نشدن
      انگلیسیت رو هم تقویت کن – اگه میخوای تو الکترونیک پیشرفت کنی – من خودم هم دارم تقویت میکنم خیر سرم blush

1 2