ساخت ساعت آنالوگ
در این بخش دانلود پروژه ساعت آنالوگ و تقویم با LCD گرافیکی KS0108, توسط تیم الکترونیک و برنامه نویسی الکترونیک ۹۸ برای شما علاقه مندان به پروژه های میکروکنترلر AVR آماده شده است. در این پروژه قصد داریم تا با استفاده از یک ال سی دی LCD گرافیکی توسط میکروکنترلر ATmega32 و تراشه شناخته شده و پرکاربرد (آی سی ساعت DS1307) یک ساعت آنالوگ زیبا به همراه تقویم دیجیتال (Digital Calender) طراحی کنیم. لازم به ذکر است در این پروژه برنامه میکروکنترلر به زبان بیسیک BASIC و در محیط نرم افزار BASCOM-AVR نوشته شده است.
آی سی ساعت DS1307
تراشه DS1307 یک آی سی IC ساعت با زمان واقعی (RTC) می باشد که به دلیل دارا بودن توابعی آماده برای راه اندازی در کامپایلرهای شناخته شده و پشتیبانی از پروتکل ارتباطی I2C که در میکروکنترلرهای خانواده AVR نیز پشتیبانی می شود, یک گزینه مناسب برای استفاده در این پروژه می باشد. در ادامه به تشریح عملکرد و ویژگی های آی سی ساعت DS1307 به صورت کامل می پردازیم.
ساعت زمان واقعی سریال DS1307, یک ساعت / تقویم BCD کم مصرف با 56 بایت حافظه NV RAM است. آدرس و داده از طریق ارتباط I2C منتقل می شوند. این تراشه ساعت / تقویم, اطلاعات ثانیه, دقیقه, ساعت, روز, ماه و سال را فراهم می کند. آی سی ساعت DS1307 به طور خودکار برای ماه های کمتر از 31 روز و سال های کبیسه تنظیم شده است. ساعت می تواند به هر دو صورت 12 و 24 ساعته با علامت قبل / بعد از ظهر به کار گرفته می شود. این تراشه دارای مدار داخلی تشخیص نقص تغذیه نیز می باشد و در صورت بروز قطع تغذیه, باطری پشتیبان را به طور خودکار در مدار قرار می دهد.
نقشه شماتیک پروژه
لیست قطعات مورد نیاز
مقاومت 10 کیلو اهم با توان 0.25 وات و تلرانس 1 درصد | 4 عدد |
مقاومت 330 اهم با توان 0.25 وات و تلرانس 1 درصد | 2 عدد |
مقاومت 4.7 کیلو اهم با توان 0.25 وات و تلرانس 1 درصد | 2 عدد |
پتانسیومتر خوابیده 10K کیلو اهم تکدور مدل DIP | 1 عدد |
دیود 1N4007 | 2 عدد |
خازن عدسی 100nF نانوفاراد | 2 عدد |
خازن الکترولیتی 100uf میکروفاراد 16 ولت | 1 عدد |
خازن الکترولیتی 470uf میکروفاراد 16 ولت | 1 عدد |
رگولاتور ولتاژ 5 ولت L7805 | 1 عدد |
میکروکنترلر ATMEGA32A مدل DIP تایوانی با 40 پایه | 1 عدد |
آی سی شمارش و نگهداری ساعت و تقویم DS1307 مدل DIP | 1 عدد |
سوکت آی سی 40 پایه مدل معمولی | 1 عدد |
سوکت آی سی 8 پایه مدل معمولی | 1 عدد |
ترمینال پیچی 2 پین مدل KF300 رنگ آبی | 1 عدد |
تک سوئیچ 4 پایه DIP سایز 6x6x5 میلیمتر | 4 عدد |
LCD گرافیکی سایز 128x64 با بک لایت آبی و درایور KS108 | 1 عدد |
کریستال 3.2768MHz مگاهرتز | 1 عدد |
باتری 3ولتی مدل سکه ای CR2032 | 1 عدد |
پین هدر نری صاف 1x40 با ارتفاع 11 میلیمتر - مشکی | 1 عدد |
پین هدر مادگی صاف 1x40 با فاصله پایه 2.54 میلیمتر - مشکی | 1 عدد |
آداپتور 12V ولت 2A آمپر مدل بین راهی ساخت ایران | 1 عدد |
ویژگی های برجسته آی سی ساعت DS1307
:: توانایی شمارش ثانیه, دقیقه, ساعت, روز, ماه, سال, سال کبیسه تا سال 2100 میلادی
:: مصرف کمتر از 500nA در حالت استفاده از باتری پشتیبان
:: محدوده دمای صنعتی 40- تا 85+ درجه سانتی گراد
:: آشکار ساز خودکار نقص تغذیه و مدار کلید زنی باتری
:: 56 بایت حافظه NV RAM برای ذخیره اطلاعات
:: بسته بندی های 8 پایه PDIP و SOIC
:: سیگنال خروجی مربعی برنامه پذیر
:: ارتباط I2C
نقشه جاگذاری قطعات بر روی برد PCB
لیست ابزار آلات و تجهیزات مورد نیاز
هویه | 1 عدد |
سیم لحیم | 1 عدد |
کف چین | 1 عدد |
قلع کش | 1 عدد |
شرح عملکرد آی سی ساعت DS1307
آی سی ساعت DS1307 به عنوان برده (Slave) در باس قرار می گیرد و دسترسی به آن با پیاده سازی شرایط آغاز و فراهم کردن کد شناسایی وسیله ممکن می شود. رجیسترهای بعدی تا رخ دادن شرایط پایان, به ترتیب در دسترس قرار قرار می گیرند. تراشه هنگامی که ولتاژ تغذیه از 1.25V برابر ولتاژ باتری کمتر شود, وظیفه در حال اجرا را به پایان می رساند و شمارنده آدرس قطعه را ریست می کند. در این حالت, سیگنال های ورودی به تراشه شناسایی نمی شوند.
تراشه به طور خودکار, هنگامی که ولتاژ تغذیه به کمتر از ولتاژ باتری افت کند, باتری پشتیبان را وارد مدار می کند. در شرایط Power Up با رسیدن ولتاژ تغذیه به VBAT + 0.2V تراشه از باتری به مدار تغذیه کلیدزنی می کند و آنگاه که ولتاژ از 1.25 برابر ولتاژ باتری بالاتر رفت, سیگنال های ورودی تشخیص داده می شوند. در تصویر زیر ترتیب پایه های این تراشه نشان داده شده است.
ویدئو ضبط شده از نحوه راه اندازی و عملکرد مدار ساخته شده
دانلود مستندات پروژه
توجه: به دلیل توقف فعالیت سایت امکان دریافت پروژه وجود ندارد.
سلام دوست عزیز
بسیار عالی – این تصاویر نشان می دهد میکروکنترلر و نمایشگر شما سالم می باشد و به احتمال بسیار زیاد مشکل اصلی پروژه خرابی تراشه ساعت DS1307 می باشد. لطفا این تراشه را تعویض کنید و از یک باتری ساعت 3 ولتی به عنوان باتری پشتیبان، برای آی سی ساعت DS1307 استفاده کنید. همچنین حتما نکات زیر را در هنگام پروگرام کردن میکروکنترلر رعایت کنید:
1- در هنگام پروگرام کردن میکروکنترلر وضعیت فیوزبیت های کریستال را به صورت زیر بر روی یک مگاهرتز داخلی تنظیم کنید.
2- در هنگام پروگرام کردن میکروکنترلر حتماً فیوز بیت JTAGEN را بر روی وضعیت JTAGEN=1 قرار دهید.
سلام استاد
هرکار کردم باز نشد
استاد ادرس بده کلا مدار همه متعلقاتشو برات بیارم خودت یک بررسی بکن ببین مشکل کجاست
با پروتئوس هم شبیه سازیشو کردم خطا داره علتش چیه ؟ یهو زمان عوض میشه صفر میشه
سلام دوست عزیز
در حال حاضر به دلیل جلوگیری از همهگیری شیوع ویروس کرونا، ملاقات حضوری نداریم، اما می توانید با هماهنگی تلفنی با همکاران ما در واحد فنی، مدار خود را از طریق پست پیشتاز به آدرس شرکت جهت بررسی ارسال نمایید. اما این موضوع زمان زیادی را از شما می گیرد من باز هم پیشنهاد می کنم در مدار خود قسمت تراشه ساعت را با دقت بررسی نمایید، به احتمال بسیار زیاد مشکل از آن قسمت است.
همچنین در نرم افزار شبیه ساز پروتئوس به دلیل اشغال شدن حجم بالای 50 درصد پردازشگر، میکروکنترلر به شما هشدار داده می شود، که البته در مدار عملی هیچ مشکلی وجود ندارد.
استاد سلام
برنامه داری که روی همین برد بشه تست کرد ای سی ds1307 رو که بفهمیم سالمه چون دوتا ای سی رو تست میکنم مشخص نمیشه ؟
سلام دوست عزیز
می توانید لینک زیر را بررسی نمایید:
آی سی ساعت DS1307
سلام استاد
ممنونم بابت پیگیری و خدمات پس از فروشتون
من از هم خود برنامه قسمت نمایش ساعت رو جداگانه تست کردم و ای سی ساعت درست کار میکرد
برق رو رو هم قطع کردم تایمر بدرستی به کارش ادامه میاد
والان مطمئن هستم ایراد از خود برنامه هست ؟
سلام
کد ها رو قسمت تاریخ ساعت انالوک و و دیجیتال رو به پروژه اضافه کردن نمایش اولیه درست شد
ولی دیکر کد ها قسمت کلید ها تنظیمات رو اضافه میکنم برنامه اصلا کار نمیکنه؟
سلام دوست عزیز
لطفا کد دستوری زیر را در برنامه اصلی پروژه (برنامه ای که ویرایش نشده است) در زیر برنامه Main پیدا کنید و آنرا حذف کنید و دوباره برنامه را آزمایش کنید و نتیجه را اعلام کنید:
سلام
نه باز کار نمیکنه برنامه
سلام دوست عزیز
شما از میکروکنترلر ATmega16 استفاده کرده اید یا میکروکنترلر ATmega32؟
سلام استاد
من از ATmega32 استفاده کردم
روی ATmega16 اصلا برنامه پروگرام نمیشه خطا میگره
سلام دوست عزیز
همان میکروکنترلر ATmega32 صحیح است، با وجود اینکه برنامه قبلا تست شده و به صورت عملی بسته شده است، من برنامه را دوباره بررسی و بر روی مدار به صورت عملی آزمایش می کنم و نتیجه آنرا از همین قسمت اطلاع خواهم داد، به دلیل حجم کاری بالا ممکن است این مورد چند روز زمان ببرد، لطفاً تا آن زمان صبور باشید.
با سپاس
سلام خسته نباشید به مهندس عزیز
مدار فوق را بستم و بدون هیچ مشکلی و خیلی عالی کار کرد فقط در هنگام کار کردن با کدهایی که نوشته بودید به دلیل بک آپ نگرفتن از کد فکر میکنم جایی از کد تغیییر کرده و مشکلی که به وجود امده به اینصورت است که پس از اتصال منبع تغذیه دستگاه روشن و پس از نمایش ساعت انالوگ ودیجیتال و ایام هفته وارد تنظیمات میشوداگر لطف کنید کد را برایم در ایمیل بفرستید ممنون میشوم.اتصال کلیدها را چک کردم مشکلی نداشت زمانی که کد””””””””””””””””””””””’Chekkey
If Key = 0 And Sw_menu = 0 Then
Key = 1
Gosub Menu
End If
If Key = 1 And Sw_menu = 1 And Sw_select = 1 And Sw_up = 1 And Sw_down = 1 Then
Key = 0
End If
Loop
Return را پاک میکنم مشکل برطرف میشود و دیگر کلا” وارد تنظیمات نمیشود ظاهرا” کد فوق صحیح میباشد ولی نمیدانم چرا وارد صفحه تنظیمات میشود
ممنون از سایت خوبتون
مشکلم حل شد فیوز بیت JTAGEN صفر شده بود
سلام دوست عزیز
بسیار خوشحالیم که توانستید پروژه را راه اندازی کنید.