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

سلام geektimes! در قسمت اول مقاله به اصول بدست آوردن زمان دقیق در ساعت خانگی پرداخته شد. بیایید جلوتر برویم و در نظر بگیریم که چگونه و روی چه چیزی بهتر است این بار نمایش داده شود.

1. دستگاه های خروجی

بنابراین، ما یک پلتفرم خاص (کنترل کننده آردوینو، رزبری، PIC/AVR/STM و غیره) داریم و وظیفه این است که نوعی نشانگر را به آن متصل کنیم. گزینه های زیادی وجود دارد که ما آنها را بررسی خواهیم کرد.

نمایش بخش

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

مراقب ترافیک باشید!

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

1001 مقاله در مورد نحوه اتصال LED به میکروکنترلر وجود دارد که گوگل می تواند کمک کند. مشکلات زمانی شروع می‌شوند که می‌خواهیم یک ساعت بزرگ بسازیم - از این گذشته، نگاه کردن به یک نشانگر کوچک چندان راحت نیست. سپس به نشانگرهای زیر نیاز داریم (عکس از eBay):

آنها با برق 12 ولت تغذیه می شوند و به سادگی مستقیماً از میکروکنترلر کار نمی کنند. اینجاست که میکرو مدار به کمک ما می آید. CD4511، فقط برای این منظور. این نه تنها داده ها را از یک خط 4 بیتی به اعداد مورد نظر تبدیل می کند، بلکه شامل یک سوئیچ ترانزیستور داخلی برای تامین ولتاژ به نشانگر است. بنابراین، در مدار باید یک ولتاژ "قدرت" 9-12 ولت و یک مبدل کاهنده جداگانه (به عنوان مثال L7805) برای تغذیه "منطق" مدار داشته باشیم.

شاخص های ماتریسی

در اصل، اینها همان LED ها هستند، فقط به شکل یک ماتریس 8x8. عکس از eBay:

آنها در eBay به صورت تک ماژول یا بلوک های آماده، به عنوان مثال 4 قطعه فروخته می شوند. مدیریت آنها بسیار ساده است - یک ریز مدار از قبل روی ماژول ها لحیم شده است MAX7219، اطمینان از عملکرد و اتصال آنها به میکروکنترلر تنها با استفاده از 5 سیم. کتابخانه های زیادی برای آردوینو وجود دارد، هرکسی می تواند به کد آن نگاه کند.
مزایا: قیمت پایین، زاویه دید خوب و روشنایی.
معایب: وضوح پایین اما برای کار استنتاج، زمان کاملاً کافی است.

نشانگرهای LCD

نشانگرهای LCD می توانند گرافیکی یا متنی باشند.

گرافیک‌های گران‌تر هستند، اما به شما اجازه می‌دهند اطلاعات متنوع‌تری را نمایش دهید (به عنوان مثال، نمودار فشار اتمسفر). متن‌ها ارزان‌تر و کار کردن با آن‌ها آسان‌تر هستند، همچنین به شما امکان نمایش شبه گرافیک‌ها را می‌دهند - امکان بارگیری نمادهای سفارشی در صفحه نمایش وجود دارد.

کار با یک نشانگر LCD از روی کد دشوار نیست، اما یک نقطه ضعف خاص وجود دارد - نشانگر به خطوط کنترل زیادی (از 7 تا 12) از میکروکنترلر نیاز دارد که ناخوشایند است. بنابراین، چینی ها به ایده ترکیب یک نشانگر LCD با یک کنترلر i2c رسیدند، که در نهایت بسیار راحت بود - فقط 4 سیم برای اتصال کافی است (عکس از eBay).


نشانگرهای LCD بسیار ارزان هستند (اگر آنها را در eBay خریداری کنید)، بزرگ، به راحتی متصل می شوند و می توانند اطلاعات مختلفی را نمایش دهند. تنها نکته منفی این است که زاویه دید زیاد نیست.

نشانگرهای OLED

آنها ادامه بهبود یافته نسخه قبلی هستند. آنها از کوچک و ارزان با قطر 1.1 اینچ تا بزرگ و گران قیمت هستند. عکس از eBay.

در واقع در همه چیز خوب هستند به جز قیمت. همانطور که برای نشانگرهای کوچک، 0.9-1.1 اینچ اندازه، پس (به جز برای یادگیری نحوه کار با i2c)، پیدا کردن هر گونه استفاده عملی برای آنها دشوار است.

نشانگرهای تخلیه گاز (IN-14، IN-18)

این نشانگرها در حال حاضر بسیار محبوب هستند، ظاهراً به دلیل "صدای لوله گرم نور" و اصالت طراحی.


(عکس از nocrotec.com)

نمودار اتصال آنها تا حدودی پیچیده تر است، زیرا این نشانگرها از ولتاژ 170 ولت برای احتراق استفاده می کنند. یک مبدل از ولتاژ 12 ولت => 180 ولت را می توان بر روی یک میکرو مدار ساخت MAX771. برای تامین ولتاژ نشانگرها از ریز مدار شوروی استفاده می شود K155ID1، که به طور خاص برای این منظور ایجاد شده است. قیمت نسخه برای تولید خود: حدود 500 روبل برای هر نشانگر و 100 روبل برای K155ID1، تمام قطعات دیگر، همانطور که در مجلات قدیمی نوشتند، "کمبود ندارند." مشکل اصلی اینجاست که هم IN-xx و هم K155ID1 مدت‌هاست که از تولید خارج شده‌اند و شما فقط می‌توانید آنها را در بازارهای رادیویی یا در چند فروشگاه تخصصی خریداری کنید.

2. انتخاب پلت فرم

ما کم و بیش صفحه نمایش را کشف کرده ایم، تنها چیزی که باقی می ماند این است که تصمیم بگیریم کدام پلتفرم سخت افزاری برای استفاده بهتر است. چندین گزینه در اینجا وجود دارد (من گزینه های خانگی را در نظر نمی گیرم، زیرا کسانی که می دانند چگونه یک برد و یک پردازنده را لحیم کنند به این مقاله نیاز ندارند).

آردوینو

ساده ترین گزینه برای مبتدیان. برد تمام شده ارزان است (حدود 10 دلار در eBay با ارسال رایگان) و دارای تمام اتصالات لازم برای برنامه نویسی است. عکس از eBay:

تعداد زیادی کتابخانه مختلف برای آردوینو وجود دارد (مثلاً برای همان صفحه های LCD، ماژول های بلادرنگ)، آردوینو با ماژول های اضافی مختلف سخت افزاری سازگار است.
نقطه ضعف اصلی: مشکل اشکال زدایی (فقط از طریق کنسول پورت سریال) و یک پردازنده نسبتا ضعیف با استانداردهای مدرن (رم 2 کیلوبایت و 16 مگاهرتز).
مزیت اصلی: شما می توانید بسیاری از کارها را انجام دهید، عملاً بدون زحمت لحیم کاری، خرید برنامه نویس و تابلوهای سیم کشی؛ فقط باید ماژول ها را به یکدیگر متصل کنید.

پردازنده های 32 بیتی STM

برای کسانی که چیزی قدرتمندتر می خواهند، بردهای آماده با پردازنده STM وجود دارد، به عنوان مثال یک برد با STM32F103RBT6 و صفحه نمایش TFT. عکس از eBay:

در اینجا ما قبلاً اشکال زدایی کامل در یک IDE کامل داریم (از بین همه موارد مختلف، من Coocox IDE را بیشتر دوست داشتم)، با این حال، ما به یک برنامه نویس-اشکال‌زدای ST-LINK جداگانه با اتصال JTAG نیاز داریم (مشکل قیمت در eBay 20-40 دلار است). یا می توانید برد توسعه STM32F4Discovery را که این برنامه نویس قبلاً روی آن تعبیه شده است خریداری کنید و می توان از آن به طور جداگانه استفاده کرد.

Raspberry PI

و در نهایت، برای کسانی که خواهان ادغام کامل با دنیای مدرن هستند، رایانه های تک بردی با لینوکس وجود دارد که احتمالاً قبلاً برای همه شناخته شده است - Raspberry PI. عکس از eBay:

این یک کامپیوتر تمام عیار با لینوکس، یک گیگابایت رم و یک پردازنده 4 هسته ای است. یک پنل از 40 پین در لبه برد قرار گرفته است که به شما امکان می دهد تجهیزات جانبی مختلف را متصل کنید (پین ها از طریق کد موجود هستند، به عنوان مثال در پایتون، بدون ذکر C/C++)، همچنین یک USB استاندارد به شکل 4 کانکتور (شما می توانید WiFi را وصل کنید). HDMI استاندارد نیز وجود دارد.
قدرت برد کافی است، به عنوان مثال، نه تنها برای نمایش زمان، بلکه برای اجرای یک سرور HTTP برای تنظیم پارامترها از طریق یک رابط وب، بارگیری پیش بینی آب و هوا از طریق اینترنت و غیره. به طور کلی، فضای زیادی برای پرواز فانتزی وجود دارد.

تنها یک مشکل با Raspberry (و پردازنده های STM32) وجود دارد - پین های آن از منطق 3 ولت استفاده می کنند و اکثر دستگاه های خارجی (مثلاً صفحه نمایش های LCD) به روش "قدیمی" از 5 ولت کار می کنند. البته، شما می توانید آن را از این طریق وصل کنید، و در اصل کار می کند، اما این روش کاملا درست نیست، و به نوعی شرم آور است که یک برد 50 دلاری را خراب کنید. راه صحیح استفاده از «مبدل سطح منطقی» است که در eBay تنها 1-2 دلار هزینه دارد.
عکس از eBay:

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

ESP8266

این روش نسبتا عجیب و غریب است، اما به دلیل فشرده بودن و هزینه کم راه حل، کاملا امیدوار کننده است. با پول بسیار کمی (حدود 4 تا 5 دلار در eBay) می توانید یک ماژول ESP8266 حاوی پردازنده و وای فای را خریداری کنید.
عکس از eBay:

در ابتدا، چنین ماژول هایی به عنوان یک پل وای فای برای تبادل از طریق یک پورت سریال در نظر گرفته شده بودند، اما علاقه مندان بسیاری از سیستم عامل های جایگزین را نوشته اند که به آنها اجازه می دهد با سنسورها، دستگاه های i2c، PWM و غیره کار کنند. به طور فرضی، دریافت زمان از یک دستگاه کاملاً امکان پذیر است. سرور NTP و خروجی آن از طریق i2c به نمایشگر. برای کسانی که می خواهند تعداد زیادی لوازم جانبی مختلف را به هم وصل کنند، بردهای NodeMCU ویژه با تعداد زیادی پین وجود دارد، قیمت آن حدود 500 روبل است (البته در eBay):

تنها نکته منفی این است که ESP8266 رم بسیار کمی دارد (بسته به سیستم عامل، از 1 تا 32 کیلوبایت)، اما این کار را جالب تر می کند. ماژول های ESP8266 از منطق 3 ولت استفاده می کنند، بنابراین مبدل سطح بالا نیز در اینجا مفید خواهد بود.

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

به جای نتیجه گیری

من در نهایت به استفاده از یک Raspberry PI با یک نشانگر متنی که برای کار با شبه گرافیک ها پیکربندی شده بود (که معلوم شد ارزان تر از یک صفحه گرافیکی با همان مورب است) راضی شدم. هنگام نوشتن این مقاله از صفحه ساعت دسکتاپ عکس گرفتم.

ساعت زمان دقیق گرفته شده از اینترنت را نشان می دهد و آب و هوا از Yandex به روز می شود، همه اینها در پایتون نوشته شده است و اکنون چندین ماه است که کاملاً خوب کار می کند. در همان زمان، یک سرور FTP روی ساعت در حال اجرا است که (همراه با ارسال پورت روی روتر) اجازه می دهد تا سیستم عامل خود را نه تنها از خانه، بلکه از هر مکانی که اینترنت وجود دارد، به روز کند. به عنوان یک امتیاز، منابع Raspberry، در اصل، برای اتصال دوربین و/یا میکروفون با قابلیت نظارت از راه دور آپارتمان، یا کنترل ماژول ها/رله ها/سنسورهای مختلف کافی است. می‌توانید انواع «خوبی‌ها» مانند نشانگر LED نامه‌های دریافتی و غیره را اضافه کنید.

PS: چرا eBay؟
همانطور که می بینید، قیمت ها یا عکس ها از eBay برای همه دستگاه ها داده شده است. چرا اینطور است؟ متأسفانه، فروشگاه‌های ما اغلب بر اساس این اصل زندگی می‌کنند که «به قیمت 1 دلار خریدند، به قیمت 3 دلار فروختند و با این 2 درصد زندگی می‌کنند». به عنوان یک مثال ساده، Arduino Uno R3 (در زمان نگارش مقاله) 3600 روبل در سنت پترزبورگ و 350 روبل در eBay با ارسال رایگان از چین هزینه دارد. تفاوت واقعاً یک مرتبه بزرگ است، بدون هیچ گونه اغراق ادبی. بله، برای تحویل گرفتن بسته از اداره پست باید یک ماه صبر کنید، اما فکر می کنم چنین تفاوت قیمت ارزش آن را دارد. اما با این حال، اگر کسی در حال حاضر و فوری به آن نیاز داشته باشد، احتمالاً در فروشگاه های محلی یک انتخاب وجود دارد، در اینجا همه برای خود تصمیم می گیرند.

الکترونیکی را به شما تقدیم می کنم ساعت میکروکنترلر. مدار ساعت بسیار ساده است، حاوی حداقل قطعات است و می تواند توسط آماتورهای رادیویی شروع به تکرار شود.

این طرح بر روی یک میکروکنترلر و یک ساعت بیدرنگ DS1307 مونتاژ شده است. یک نشانگر LED چهار رقمی و هفت بخش به عنوان نشانگر زمان فعلی (فوق العاده روشن، آبی رنگ، که در تاریکی خوب به نظر می رسد، و در عین حال، ساعت نقش یک شب را بازی می کند) استفاده می شود. سبک). ساعت با دو دکمه کنترل می شود. به لطف استفاده از تراشه ساعت بلادرنگ DS1307، الگوریتم برنامه بسیار ساده بود. میکروکنترلر از طریق گذرگاه I2C با ساعت بیدرنگ ارتباط برقرار می کند و توسط نرم افزار سازماندهی می شود.

نمودار ساعت:

متأسفانه یک خطا در نمودار وجود دارد:
- ترمینال های MK باید به پایه های ترانزیستور متصل شوند:
РВ0 به Т4، РВ1 به Т3، РВ2 به Т2، РВ3 به Т1
یا اتصال کلکتورهای ترانزیستور را به ارقام نشانگر تغییر دهید:
T1 به DP1….. T4 به DP4

قطعات مورد استفاده در مدار ساعت:

♦ میکروکنترلر ATTiny26:

♦ ساعت واقعی DS1307:

♦ نشانگر LED هفت بخش 4 رقمی – FYQ-5641UB-21 با کاتد مشترک (بسیار روشن، آبی):

♦ کوارتز 32.768 کیلوهرتز، با ظرفیت ورودی 12.5 pF (از مادربرد کامپیوتر قابل برداشت است)، دقت کلاک به این کوارتز بستگی دارد:

♦ همه ترانزیستورها ساختارهای NPN هستند، می توانید از هر کدام (KT3102، KT315 و آنالوگ های خارجی آنها) استفاده کنید، من از BC547S استفاده کردم.
♦ تثبیت کننده ولتاژ میکرو مدار نوع 7805
♦ تمامی مقاومت ها با توان 0.125 وات
♦ خازن های قطبی برای ولتاژ کاری که کمتر از ولتاژ منبع تغذیه نباشد
♦ منبع تغذیه پشتیبان DS1307 – سلول لیتیوم 3 ولت CR2032

برای تغذیه ساعت، می توانید از هر شارژر غیر ضروری تلفن همراه استفاده کنید (در این حالت، اگر ولتاژ خروجی شارژر در محدوده 5 ولت ± 0.5 ولت باشد، بخشی از مدار - یک تثبیت کننده ولتاژ روی یک تراشه نوع 7805 - می تواند حذف شود)
جریان مصرفی دستگاه 30 میلی آمپر می باشد.
لازم نیست باتری پشتیبان را برای ساعت DS1307 نصب کنید، اما اگر برق برق قطع شود، زمان فعلی باید دوباره تنظیم شود.
برد مدار چاپی دستگاه ارائه نشده است؛ طرح در یک کیس از یک ساعت مکانیکی معیوب مونتاژ شده است. LED (با فرکانس چشمک زن 1 هرتز، از پایه SQW DS1307) برای جدا کردن ساعت ها و دقیقه ها در نشانگر عمل می کند.

تنظیمات میکروکنترلر کارخانه هستند: فرکانس ساعت - 1 مگاهرتز، بیت های فیوز نیازی به لمس ندارند.

الگوریتم عملکرد ساعت(در الگوریتم ساز):

1. تنظیم نشانگر پشته
2. تنظیم تایمر T0:
- فرکانس SK/8
- وقفه های سرریز (در این فرکانس از پیش تعیین شده، وقفه هر 2 میلی ثانیه فراخوانی می شود)
3. راه اندازی پورت ها (پین های PA0-6 و PB0-3 به عنوان خروجی، PA7 و PB6 به عنوان ورودی پیکربندی می شوند)
4. راه اندازی گذرگاه I2C (پین های PB4 و PB5)
5. بررسی بیت هفتم (CH) صفر رجیستر DS1307
6. وقفه جهانی را فعال کنید
7. وارد کردن یک حلقه و بررسی اینکه آیا یک دکمه فشرده شده است

هنگامی که برای اولین بار روشن می شود، یا اگر برق پشتیبان DS307 وجود ندارد دوباره روشن می شود، زمان فعلی به تنظیمات اصلی بازنشانی می شود. در این حالت: دکمه S1 - برای تنظیم زمان، دکمه S2 - انتقال به رقم بعدی. تنظیم زمان - ساعت ها و دقیقه ها روی DS1307 نوشته می شود (ثانیه ها روی صفر تنظیم می شوند)، و پایه SQW/OUT (پایه هفتم) برای تولید پالس های موج مربعی با فرکانس 1 هرتز پیکربندی شده است.
هنگامی که دکمه S2 را فشار می دهید (S4 - در برنامه)، یک وقفه جهانی غیرفعال می شود، برنامه وارد زیربرنامه اصلاح زمان می شود. در این حالت با استفاده از دکمه های S1 و S2 ده ها و واحدهای دقیقه تنظیم می شود، سپس از 0 ثانیه با فشار دادن دکمه S2 زمان به روز رسانی در DS1307 ثبت می شود، وقفه جهانی برطرف می شود و به برنامه اصلی باز می گردد.

ساعت دقت خوبی را نشان داد، از دست دادن زمان در هر ماه 3 ثانیه بود.
برای بهبود دقت، توصیه می شود که کوارتز را به DS1307 متصل کنید، همانطور که در دیتاشیت نشان داده شده است:

برنامه در محیط Algorithm Builder نوشته شده است.
با استفاده از برنامه ساعت به عنوان مثال، می‌توانید با الگوریتم ارتباط بین میکروکنترلر و سایر دستگاه‌ها از طریق گذرگاه I2C آشنا شوید (هر خط به تفصیل در الگوریتم توضیح داده شده است).

عکس دستگاه مونتاژ شده و برد مدار چاپی با فرمت lay از سایت خوان Anatoly Pilguk که با تشکر فراوان از او!

این دستگاه از: ترانزیستورها - SMD BC847 و مقاومت های CHIP استفاده می کند

پیوست های مقاله:

(42.9 کیلوبایت، 3233 بازدید)

(6.3 کیلوبایت، 4183 بازدید)

(3.1 کیلوبایت، 2662 بازدید)

(312.1 کیلوبایت، 5932 بازدید)


نسخه دوم برنامه ساعت در AB (برای کسانی که نمی توانند قسمت بالایی را دانلود کنند)

(11.4 کیلوبایت، 1947 بازدید)

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

ویژگی های ساعت:

  • اعداد بزرگ (هر عدد تقریباً به اندازه یک برگه A4 است).
  • دیوارهای نازک (قابل قرار دادن در قاب عکس).
  • تنظیم خودکار بسته به روشنایی نور در اتاق.
  • دکمه اختصاصی ساعت تابستانی.

مرحله 1: مواد مورد نیاز


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

الکترونیک:

  • Arduino nano V3.0 (متاسفانه، از آنجایی که من نمی توانم آردوینو اصلی را بخرم، از یک کلون چینی استفاده کردم) - 150 روبل.
  • ماژول دیجیتال برای اندازه گیری مقاومت نوری شدت نور برای آردوینو - 60 روبل.
  • ماژول حافظه DS3231 AT24C32 IIC برای زمان دقیق برای آردوینو - 60 روبل.
  • مبدل DC-DC LM2596، قدرت خروجی 1.23V-30V - 50 روبل.
  • 4 متر نوار LED WS2811 30 دیود در متر - 700 روبل. (یک WS2811 3 تراشه LED را کنترل می کند)

کل هزینه الکترونیک: 900 روبل.

مواد دیگر:

  • لوله انقباض حرارتی - 400 روبل (33 متر در انبار)
  • 20 عدد برد مدار چاپی 5 × 7 سانتی متر - 200 روبل.
  • 3 عدد میکروسوئیچ - 60 روبل.
  • لحیم کاری - 50 روبل
  • شار - 50 روبل.
  • کابل UTP (جفت پیچ خورده بدون محافظ).
  • فونت LCD (http://www.dafont.com/lcd-lcd-mono.font) - رایگان.
  • مقوا در سوپرمارکت رایگان است.
  • پانل پلی استایرن - 100 روبل.

و همچنین ابزارهای مختلف.

مرحله 2: آماده سازی - الگوهای اعداد


  1. فونت ساعت را دانلود و نصب کنید
  2. ورد یا برنامه دیگری را باز کنید و یک قالب مانند عکس اول ایجاد کنید.
  • اندازه قلم ~ 800،
  • فونت سفید با طرح کلی سیاه،
  • نوارهای خاکستری که در آن نوارهای LED قرار خواهند گرفت

قالب را پرینت بگیرید و نوارها را با یک چاقوی کاربردی ببرید (مانند عکس دوم)

مرحله 3: آماده سازی - برش مقوا و نوار LED

با استفاده از الگوی دیجیتال، مقوا را به اندازه برش دهید (به یاد داشته باشید که فضایی را برای نقاط بین ساعت ها و دقیقه ها بگذارید)

اگر نوارهای LED شما دارای یک کانکتور در هر انتها هستند (مانند من)، کانکتور را از برق بکشید و آنها را به 3 تکه برش دهید.

مرحله 4: نوار LED را وصل کنید


با استفاده از الگو، نوار LED را روی مقوا بچسبانید.

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

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

مرحله 5: نوار LED را لحیم کنید


اکنون فرآیند لحیم کاری طولانی آغاز می شود.

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

رنگ هایی که انتخاب کردم:

  • آبی برای زمین
  • سبز برای داده ها
  • قرمز برای +12 ولت

مرحله 6: نصب آردوینو بر روی PCB


من سعی کردم در Fritzing طرح کنم اما تمام جزئیات را پیدا نکردم :)

بنابراین، عکس اول نمودار سیم کشی را نشان می دهد و عکس دوم نشان می دهد که چگونه برای من به نظر می رسد.

مرحله 7: بررسی LED


قبل از آپلود کد (که من با آن کاری ندارم)، حتماً کتابخانه FastLED را نصب کنید.

اگر همه چیز خوب کار کند، LED ها باید در میان رنگ ها چرخش کنند. اگر مشکل دارید، ابتدا لحیم کاری خود را بررسی کنید.

فایل ها

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

بعد از مدتی موفق شدم ساعتی بسازم که کاملاً مناسب من باشد. با این حال، همه چیزهایی را پیدا می کنند که می تواند بهبود یابد.

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

همه پیام های اشکال زدایی نیز نظر داده می شوند.

برای تغییر رنگ استفاده شده، باید متغیر را در خط 22 تغییر دهید (int ledColor = 0x0000FF; // Color used (به صورت هگز)). شما می توانید لیست رنگ ها را در پایین این صفحه بیابید

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

من این طرح را انتخاب کردم زیرا آسان است ساعت خود را بسازید

بیایید شروع کنیم، بنابراین برای ساختن یک ساعت با دستان خود به چه چیزی نیاز داریم؟ خوب، البته، دست، مهارت (نه حتی عالی) در خواندن نمودار مدار، آهن لحیم کاری و قطعات. در اینجا لیست کاملی از آنچه من استفاده کردم آمده است:

کوارتز 10 مگاهرتز - 1 عدد، میکروکنترلر ATtiny 2313، مقاومت 100 اهم - 8 عدد، 3 عدد. 10 کیلو اهم، 2 خازن 22 pF، 4 ترانزیستور، 2 دکمه، نشانگر LED 4 بیتی KEM-5641-ASR (RL-F5610SBAW/D15). من نصب را روی PCB یک طرفه انجام دادم.

اما یک نقص در این طرح وجود دارد: پین های میکروکنترلر (که از این پس MK نامیده می شود) که وظیفه کنترل تخلیه ها را بر عهده دارند، بار بسیار مناسبی دریافت می کنند. جریان کل بسیار بیشتر از حداکثر جریان پورت است، اما با نشانگر دینامیکی MK زمانی برای گرم شدن بیش از حد ندارد. برای جلوگیری از خرابی MK، مقاومت های 100 اهم را به مدارهای تخلیه اضافه می کنیم.

در این طرح، نشانگر طبق اصل نشانگر پویا کنترل می شود، که طبق آن بخش های نشانگر توسط سیگنال هایی از خروجی های مربوطه MK کنترل می شوند. سرعت تکرار این سیگنال ها بیش از 25 هرتز است و به همین دلیل، درخشش اعداد نشانگر پیوسته به نظر می رسد.

ساعت های الکترونیکی ساخته شده بر اساس طرح فوق فقط می تواند زمان (ساعت و دقیقه) را نشان دهد و ثانیه ها با یک نقطه بین بخش ها نشان داده می شوند، که چشمک می زند. برای کنترل حالت عملکرد ساعت، کلیدهای دکمه ای در ساختار آن تعبیه شده است که تنظیم ساعت و دقیقه را کنترل می کند. این مدار از منبع تغذیه 5 ولت تغذیه می شود. در طول ساخت برد مدار چاپی، یک دیود زنر 5 ولت در مدار قرار گرفت.

از آنجایی که من یک منبع تغذیه 5 ولت دارم، دیود زنر را از مدار خارج کردم.

برای ساخت برد، مدار با استفاده از اتو اعمال شد. یعنی مدار چاپی روی چاپگر جوهرافشان با استفاده از کاغذ گلاسه چاپ شده است؛ می توان آن را از مجلات براق مدرن گرفت. پس از آن، تکستولیت به اندازه لازم بریده شد. اندازه من 36 * 26 میلی متر شد. چنین اندازه کوچک به این دلیل است که تمام قطعات در یک بسته SMD انتخاب شده اند.

تخته با استفاده از کلرید آهن (FeCl 3) اچ شد. حکاکی حدود یک ساعت طول کشید، زیرا حمام با تخته روی شومینه بود؛ دمای بالا بر زمان اچ تأثیر می گذارد؛ هیچ مسی در تخته استفاده نشده بود. اما در مورد دما زیاده روی نکنید.

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

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

و این همان چیزی است که صفحه با قطعات لحیم کاری شده به نظر می رسد.

من مدار یک ساعت الکترونیکی ساده با ساعت زنگ دار را برای تکرار پیشنهاد می کنم که از نوع PIC16F628A ساخته شده است. مزیت بزرگ این ساعت نشانگر LED نوع ALS برای نمایش زمان است. من شخصاً از انواع LCDها خسته شده‌ام و می‌خواهم بتوانم زمان را از هر نقطه‌ای در اتاق، از جمله در تاریکی، و نه فقط به طور مستقیم با نور خوب ببینم. مدار دارای حداقل قطعات است و قابلیت تکرار عالی دارد. این ساعت به مدت یک ماه تست شد که قابلیت اطمینان و عملکرد آن را نشان داد. من به همه طرح‌های موجود در اینترنت فکر می‌کنم، این یکی ساده‌ترین برای مونتاژ و اجراست.

نمودار شماتیک ساعت الکترونیکی با ساعت زنگ دار روی میکروکنترلر:


همانطور که از نمودار ساعت مشخص است، تنها ریز مدار استفاده شده در این دستگاه است. برای تنظیم فرکانس ساعت از یک تشدید کننده کوارتز 4 مگاهرتز استفاده می شود. برای نمایش زمان از نشانگرهای قرمز رنگ با آند مشترک استفاده می شود که هر نشانگر از دو رقم با اعشار تشکیل شده است. در صورت استفاده از امیتر پیزو، خازن C1 - 100 μF را می توان حذف کرد.

شما می توانید از هر نشانگر با آند مشترک استفاده کنید، به شرطی که هر رقم آند خاص خود را داشته باشد. برای اطمینان از اینکه ساعت الکترونیکی در تاریکی و از فاصله دور به وضوح قابل مشاهده است، سعی کنید یک ALS بزرگتر انتخاب کنید.


صفحه نمایش ساعت پویا است. در یک زمان معین، فقط یک رقم نمایش داده می شود که به شما امکان می دهد مصرف فعلی را به میزان قابل توجهی کاهش دهید. آندهای هر رقم توسط یک میکروکنترلر PIC16F628A کنترل می شود. بخش های هر چهار رقم به هم متصل می شوند و از طریق مقاومت های محدود کننده جریان R1 ... R8 به پایانه های پورت MK متصل می شوند. از آنجایی که نشانگر خیلی سریع روشن می شود، سوسو زدن اعداد غیر قابل توجه می شود.


دکمه های لحظه ای برای تنظیم دقیقه، ساعت و ساعت زنگ دار استفاده می شوند. پین 10 به عنوان یک خروجی برای سیگنال هشدار و یک آبشار از ترانزیستورهای VT1,2 به عنوان تقویت کننده استفاده می شود. ساطع کننده صدا یک عنصر پیزوالکتریک از نوع ZP است. برای بهبود صدا، می توانید آن را با یک بلندگوی کوچک جایگزین کنید.


ساعت از یک منبع تثبیت شده 5 ولت تغذیه می شود. همچنین می توان آن را با باتری تامین کرد. این ساعت دارای 9 حالت نمایش است. جابجایی بین حالت ها با استفاده از دکمه های "+" و "-" انجام می شود. قبل از اینکه خوانش ها نمایش داده شوند، یک اشاره کوتاه در مورد نام حالت روی نشانگرها نمایش داده می شود. مدت زمان نمایش راهنمایی یک ثانیه است.


با استفاده از دکمه "اصلاح"، ساعت زنگ دار به حالت تنظیمات تغییر می کند. در این حالت یک اعلان کوتاه مدت به مدت نیم ثانیه نمایش داده می شود و پس از آن مقدار تنظیم شده شروع به چشمک زدن می کند. تصحیح قرائت ها با استفاده از دکمه های "+" و "-" انجام می شود. هنگامی که دکمه را برای مدت طولانی فشار می دهید، حالت تکرار خودکار در فرکانس مشخص شده فعال می شود. همه مقادیر، به جز ساعت، دقیقه و ثانیه، در EEPROM نوشته شده و پس از چرخه برق بازیابی می شوند.


اگر هیچ دکمه ای در عرض چند ثانیه فشار داده نشود، ساعت الکترونیکی به حالت نمایش زمان تغییر می کند. با فشار دادن دکمه "روشن/خاموش" ساعت زنگ دار روشن یا خاموش می شود، این عمل با صدای کوتاهی تایید می شود. وقتی ساعت زنگ دار روشن است، نقطه در رقم پایین نشانگر روشن می شود. داشتم به این فکر میکردم که ساعت رو کجا بذارم تو آشپزخونه و تصمیم گرفتم مستقیما داخل اجاق گاز نصب کنم :) مطالب توسط in_sane ارسال شده.


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



همچنین بخوانید: