پروژه مدار تایمر ۸ کاناله پیشرفته با کدویژن CodeVision AVR

تایمر پیشرفته 8 کاناله با قابلیت برنامه ریزی پیشرفته به صورت «روزانه»، «هفتگی»، «یک بار» و «شمارنده معکوس»؛ با قابلیت برنامه ریزی تا 26 زمان بندی مختلف برای هر نوع تایمر، دارای آی سی RTC به شماره DS1307 و امکانات متنوع دیگر

مقدمه

تایمر یا به اصطلاح فارسی «کلید زمانی»، دستگاهی الکترونیکی است که کاری مشابه کلید را انجام می دهد. با این تفاوت که این عملیات در ابتدا توسط کاربر برنامه ریزی شده است و سپس به صورت اتوماتیک توسط دستگاه انجام می گیرد. برای مثال می خواهید چراغی را در زمانی مشخص روشن یا خاموش کنید؛ یا می خواهید در زمانی که در محل حضور ندارید، وسیله یا دستگاهی را روشن کنید. این روند و برنامه ریزی ممکن است یکبار صورت نگیرد و بخواهید به صورت روزانه یا تنها در روزهایی از هفته در ساعاتی مشخص انجام گیرد. از این رو در این پروژه چهار نوع تایمر که عبارت است از «روزانه»، «هفتگی»، «یکبار» و «شمارنده معکوس» در مدار تعبیه شده است. در ادامه به شرح هر یک از این انواع تایمر پرداخته خواهد شد.

شرح امکانات

هر تایمری بایستی شامل یک زمان سنج دقیق باشد تا بتوان طبق آن برنامه ریزی های دقیق انجام داد. از این رو، پروژه مجهز به ساعت و تقویم دقیق با آی سی RTC به شماره DS1307 می باشد. زمانی که تغذیه مدار به هر دلیلی قطع شود، این آی سی با استفاده از باتری 3.6 ولتی که به آن متصل است، همچنان اطلاعات زمانی ساعت و تقویم را در خود نگهداری و بروزرسانی می کند و پس از وصل شدن تغذیه مدار، این اطلاعات را به میکروکنترلر باز می گرداند.

چهار نوع تایمر در این پروژه گنجانده شده است؛ یکی از این تایمرها به صورت یکباره که با مشخص کردن تاریخ و زمان روشن و خاموش شدن آن قابل تنظیم است و دو نوع دیگر، متناوب به صورت روزانه و هفتگی است. در نوع روزانه، تنها زمان (ساعت، دقیقه و ثانیه) روشن و خاموش شدن تنظیم می شود. در نوع هفتگی، علاوه بر زمان، روزهای هفته نیز تنظیم خواهد شد. علاوه بر این نوع تایمرها، نوعی دیگری با عنوان «شمارنده معکوس» یا به اصطلاح “Countdown” تعبیه شده است که با تنظیم تعداد روز، ساعت، دقیقه و ثانیه قابل بهره برداری می باشد.

اطلاعات برنامه ریزی شده همگی در حافظه EEPROM میکروکنترلر ذخیره خواهد شد. این نوع حافظه وابسته به ولتاژ برای نگه داری نیست. یعنی با قطع تغذیه مدار، این اطلاعات از بین نخواهد رفت. حداکثر تعداد برنامه های قابل تنظیم برای هر نوع تایمر، 26 عدد می باشد.

شش عدد دکمه فشاری تعبیه شده است که امکان تنظیم و برنامه ریزی مدار را به شما خواهد داد. این دکمه ها عبارتند از: Menu – Alt – Up – Down – Right – Left. با فشردن دکمه Menu، صفحه ای با شش گزینه به نمایش خواهد آمد. چهار گزینه بالا مربوط به اضافه نمودن زمان بندی ها می باشد. گزینه پنجم جهت مشاهده و ویرایش برنامه ها و گزینه آخر مربوط به تنظیم ساعت و تاریخ دستگاه می باشد.

کار با مدار

راه اندازی اولیه: پس از روشن کردن دستگاه، دکمه Menu را بفشارید. حالا از بین گزینه های موجود، توسط کلیدهای Up و Down، گزینه Set System Date/Time را انتخاب کرده و دوباره دکمه Menu را بفشارید. عبارتی با عنوان Set Date بر روی نمایشگر ظاهر می شود. همانطور که مشاهده می کنید، در قسمت Year، تنها سده تاریخ میلادی هایلایت شده است. آن را توسط دکمه های Up و Down به 20 تغییر دهید. حال با فشردن دکمه Right، به قسمت بعدی بروید. در این قسمت سال میلادی را تنظیم کنید. برای مثال 19. این عملیات را برای Month و Day نیز انجام دهید. حال با فشردن دکمه Menu، صفحه جدیدی با عنوان Set Weekday نمایان خواهد شد. توسط دکمه های Up و Down یا Right و Left روز هفته را تنظیم کنید. سپس با فشردن مجدد دکمه Menu، وارد صفحه ای با عنوان Set Time خواهید شد. در این صفحه نیز همانند قبل، ساعت، دقیقه و ثانیه را تنظیم کنید. در آخر با فشردن دکمه Menu، تنظیمات ساعت و تاریخ بر روی میکروکنترلر و آی سی RTC ثبت خواهد شد. توجه داشته باشید در این نوع تنظیمات، در هر مرحله می توانید با فشردن دکمه Alt به مرحله قبل بروید.

اضافه نمودن برنامه از نوع روزانه: دکمه Menu را بفشارید. گزینه Periodic > Daily را از گزینه های موجود انتخاب کرده و دکمه Menu را بفشارید. صفحه ای با عنوان Schedule Start Time نمایان خواهد شد. در این صفحه بایستی زمان شروع برنامه را تنظیم کنید. سپس دکمه Menu را بفشارید تا صفحه ای با عنوان Schedule Stop Time نمایش داده شود. در این صفحه زمان پایان برنامه را تنظیم کنید. با فشردن دکمه Menu، به مرحله بعد بروید. در این مرحله لیست تایمرهای موجود با عبارت هایی در مقابل آن ها نمایان می شود. توسط دکمه های Right و Left، هر یک از تایمرهای موردنظر را فعال یا غیرفعال نمایید. (Enabled به معنای این است که تایمر موردنظر در زمان شروع برنامه، روشن می شود و در زمان پایان خاموش خواهد شد. Disabled نیز تایمر را بی اثر خواهد کرد.) برای جابجایی بین تایمرهای مختلف و تنظیم هر یک از آن ها می توانید از دکمه های Up و Down استفاده نمایید. پس از اتمام تنظیمات مربوط به تایمرها، با فشردن دکمه Menu، صفحه ای مبنی بر بازبینی نهایی نمایان خواهد شد. چنانچه برنامه مورد تایید شماست، با فشردن دکمه Menu، آن را ذخیره کنید؛ چنانچه مورد تایید نیست، می توانید با فشردن دکمه Alt، به مرحله های پیشین رفته و آن را اصلاح نمایید.

اضافه نمودن برنامه از نوع هفتگی: دکمه Menu را بفشارید. گزینه Periodic > Weekly را از گزینه های موجود انتخاب کرده و دکمه Menu را بفشارید. صفحه ای با عنوان Schedule Start Time نمایان خواهد شد. در این صفحه بایستی زمان شروع برنامه را تنظیم کنید. سپس دکمه Menu را بفشارید تا صفحه ای با عنوان Schedule Stop Time نمایش داده شود. در این صفحه زمان پایان برنامه را تنظیم کنید. با فشردن دکمه Menu، به مرحله بعد بروید. در این مرحله لیستی از روزهای هفته با عبارت هایی در مقابل آن ها نمایش داده می شود. توسط دکمه های Right و Left، هر یک از روزهای هفته را فعال یا غیرفعال نمایید. (Enabled به معنای این است که تایمرها تنها در این روزها روشن یا خاموش خواهد شد.) برای جابجایی بین روزهای مختلف و تنظیم هر یک از آن ها می توانید از دکمه های Up و Down استفاده نمایید. پس از تکمیل این مرحله دکمه Menu را بفشارید. در مرحله بعد، همانند برنامه های روزانه، لیست تایمرهای موجود با عبارت هایی در مقابل آن ها نمایان می شود. پس از اتمام تنظیمات مربوط به تایمرها، با فشردن دکمه Menu، صفحه ای مبنی بر بازبینی نهایی نمایان خواهد شد. چنانچه برنامه مورد تایید شماست، با فشردن دکمه Menu، آن را ذخیره کنید؛ چنانچه مورد تایید نیست، می توانید با فشردن دکمه Alt، به مرحله های پیشین رفته و آن را اصلاح نمایید.

اضافه نمودن برنامه از نوع یکباره: دکمه Menu را بفشارید. گزینه One-time را از گزینه های موجود انتخاب کرده و دکمه Menu را بفشارید. صفحه ای با عنوان Schedule Start Date نمایان خواهد شد. در این صفحه بایستی تاریخ شروع برنامه را تنظیم کنید. سپس دکمه Menu را بفشارید تا صفحه ای با عنوان Schedule Start Time نمایش داده شود. در این صفحه زمان شروع برنامه را تنظیم کنید. در مرحله بعد عبارت Schedule Stop Date نمایان خواهد شد. در این صفحه تاریخ پایان برنامه را تنظیم کنید. در مرحله بعد عبارت Schedule Stop Time نمایان خواهد شد. در این صفحه زمان پایان برنامه را تنظیم کنید. در مرحله بعد لیستی از تایمرها نمایان خواهد شد که مطابق قسمت های پیشین آن را تنظیم کرده و به مرحله بعد بروید. در این مرحله نیز مروری بر تنظیماتی که تاکنون کرده اید خواهد شد. چنانچه تایید می کنید، با فشردن دکمه Menu، به تنظیمات خاتمه داده و آن را ذخیره کنید.

اضافه نمودن برنامه از نوع شمارنده معکوس: دکمه Menu را بفشارید. گزینه Countdown را از گزینه های موجود انتخاب کرده و دکمه Menu را بفشارید. صفحه ای با عنوان Duration نمایان خواهد شد. در این صفحه بایستی بازه زمانی برای شمارش معکوس را تنظیم کنید. با فشردن دکمه Menu، لیستی از تایمرها نمایان خواهد شد که مطابق قسمت های پیشین آن را تنظیم کرده و به مرحله بعد بروید. در این مرحله نیز مروری بر تنظیماتی که تاکنون کرده اید خواهد شد. چنانچه تایید می کنید، با فشردن دکمه Menu به تنظیمات خاتمه داده و آن را ذخیره کنید.

مشاهده / ویرایش / فعال یا غیرفعال / حذف نمودن برنامه: دکمه Menu را بفشارید. گزینه Review/Edit Schedules را از گزینه های موجود انتخاب کرده و دکمه Menu را بفشارید. صفحه ای با عنوان Choose Schedule Type نمایان خواهد شد. در این صفحه بایستی دسته و نوع برنامه ای را که می خواهید آن را مشاهده یا ویرایش کنید، انتخاب کنید. پس از انتخاب، دکمه Menu را بفشارید. در صفحه بعد شما شاهد لیستی از تنظیمات برنامه ها خواهید بود. با توجه به ID درج شده در بالای صفحه، می توانید با فشردن دکمه های Up یا Down (یک مقدار افزایش / کاهش)، همچنین Left یا Right (پنج مقدار افزایش / کاهش)، شماره برنامه موردنظر خود را انتخاب کنید. با فشردن دکمه Menu، صفحه ای با عنوان You want to ظاهر شده و سه گزینه با عنوان های Edit – Enable/Disable – Delete درج شده است. می توانید توسط این سه گزینه برنامه موردنظر خود را تنظیم کنید.

شماتیک مدار

جهت مشاهده شماتیک به صورت آنلاین بر روی مرورگر خود، روی تصویر کلیک کنید.

بخش دانلود

بخش دانلودتوضیحات

شامل موارد زیر:

  • فایل شبیه سازی Proteus 8.8
  • سورس کد کامل برنامه به زبان سی (کدویژن CodeVision)
  • شماتیک مدار به صورت PDF
  • کد هگز مخصوص پروگرام کردن میکروکنترلر

توجهات:

  • برای تهیه این پروژه زحمت فراوانی کشیده شده است؛ لذا، کپی برداری ممنوع می باشد.
  • این پروژه جنبه تجاری ندارد.

اشتراک در
اطلاع از
guest
22 دیدگاه
تازه‌ترین
قدیمی‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
مسعود
مسعود
میهمان
چهارشنبه، ۲۰ دی ۱۴۰۲ ۲۰:۱۳:۴۹
امتیاز :
     

با سلام وتشکر
آیا مدار فوق را میتوان با at mega 8L یا 16L پیاده کرد

navidh
navidh(@navidh)
عضو
چهارشنبه، ۱۶ آذر ۱۴۰۱ ۲۱:۳۳:۳۹
امتیاز :
     

مدار رد اجرا کردم ولی lcd هیچی نشون نمیده ارتباط هارو چک کردم درست بودن ولی تاثیر نداشت . ممکنه از Fuse bit ها باشه ؟

saeid8074
saeid8074(@saeid8074)
عضو
شنبه، ۲۶ شهریور ۱۴۰۱ ۲۱:۴۴:۳۶
امتیاز :
     

من میخوام هر خروجی رو ی برنامه بدم مثلا هر ۱۵ وز از ساعت ۰۱:۰۰ روشن و ساعت ۰۳:۲۰ خاموش بشه بعد این یکسره تکرار بشه
و یک خط میشه برنامه اضافه کرد و کسی pcb رو زده تو واتساپ بهم پیام بده ممنون

۰۹۳۸۹۸۸۴۸۳۲

Amid
Amid(@amid)
عضو
پنجشنبه، ۲۴ شهریور ۱۴۰۱ ۰۱:۱۸:۰۶
امتیاز :
     

سلام
برای افزایش خروجی ها باید اتمگا۳۲ را با اتمگا ۶۴عوض کردو کد رو تعمیم داد من این کارو کردم و الان ۸ خروجی روی اتمگا ۶۴ کار میکند برای تنظیمات چه کار کنم به جز پورت A از یک یا دو پورت دیگه هم بشه خروجی گرفت؟
باتشکر از سایت بی نظیرتون

Amid
Amid(@amid)
عضو
پاسخ به  فقط آموزش
جمعه، ۲۵ شهریور ۱۴۰۱ ۰۲:۳۲:۲۹

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

tohid1373
tohid1373(@tohid1373)
عضو
جمعه، ۲۷ اسفند ۱۴۰۰ ۱۷:۵۴:۲۳
امتیاز :
     

سلام من توانایی خرید این پروژه رو ندارم ولی خودم سعی کردم یکی ینویسم ، مثل این نمیشه ولی کارمو را میندازه . ی سوالی داشتم ازتون ممنون میشم راهنماییم کنید – وقتی میخواییم ی فاصله زمانی رو دستگاه رله رو قطع کنه ( مثلا از ساعت 18:20 تا 04:30 ) داخل برنامه مینویسیم هر وقت ساعت اصلی برابر 18:20 شد رله رو قطع کن و هر وقت به 04:30 رسید وصل کن — وقتی از برابری استفاده میکنیم ی مشکلی پیش میاد اونم اینه که اگه برقا تو محدوده 18:20 بره و مثلا 18:40 بیاد میکرو وارد زیر برنامه قطع رله نمیشه چون وفتی ساعت 18: 20 بوده میکرو خاموش بوده لطفا راهنمایی کنید که چطوری این مشکل رو رفغ کنم –خیلی ازتون ممنونم

kalhori
kalhori(@kalhori)
عضو
شنبه، ۱۶ بهمن ۱۴۰۰ ۲۲:۰۷:۵۷
امتیاز :
     

با سلام و احترام مجدد

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

kalhori
kalhori(@kalhori)
عضو
شنبه، ۱۶ بهمن ۱۴۰۰ ۱۶:۳۵:۳۸
امتیاز :
     

با سلام و خسته نباشید
برای خرید این پروژه دو سوال داشتم اول اینکه PCB مدار برای ساختن برد درون فایل دانلودی هست ؟
دوم از قطعات SMD استفاده شده یا DIP چون برای اسفاده از SMD مشکل دارم
در پایان از سایت خوبتون ممنونم

morteza roozbahani
morteza roozbahani(@mortezaroozbahani)
عضو
سه شنبه، ۶ آبان ۱۳۹۹ ۲۳:۵۹:۲۴
امتیاز :
     

سلام. من در موقع لود رام با پیغام lllegal line found مواجه میشم. لطفا راهنمایی بفرمایید.ممنون

navid saeedi
navid saeedi(@navid1998)
عضو
جمعه، ۲ خرداد ۱۳۹۹ ۲۲:۴۲:۰۲
امتیاز :
     

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

navid saeedi
navid saeedi(@navid1998)
عضو
پاسخ به  فقط آموزش
شنبه، ۳ خرداد ۱۳۹۹ ۱۲:۵۳:۵۳

خیلی ممنون واقعا سایتتون عالیه خیلی جذابه هم از راهنماییتون تشکر میکنم

zcs_co
zcs_co(@zcs_co)
عضو
سه شنبه، ۹ اردیبهشت ۱۳۹۹ ۰۰:۴۵:۴۹
امتیاز :
     

سلام، خسته نباشید ، ببخشید توی پروژه تایمر هشت کانال تموم قابلیت های تنظیم تایم برای هر رله ب طور مجزا امکانش هست دیگه؟!

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

0
افکار شما را دوست داریم، لطفا نظر دهید.x
()
x