نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی
  • خانه
  • ویندوز 7، XP
  • ساعت خود را با نشانگرهای LED انجام دهید. ساعت روی میکروکنترلر AVR با DS1307

ساعت خود را با نشانگرهای LED انجام دهید. ساعت روی میکروکنترلر AVR با DS1307

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

1. ساعت - تقویم:

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

    در دسترس بودن تصحیح خودکار زمان جاری، که هر ساعت انجام می شود (حداکثر مقادیر +/- 9999 واحد، 1 واحد = 3.90625 میلی ثانیه).

    محاسبه روز هفته بر اساس تاریخ (برای قرن جاری)

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

  • سالهای کبیسه در نظر گرفته شده است

2. دو آلارم مستقل (هنگامی که یک ملودی به صدا در می آید)
3. تایمر با گسست 1 ثانیه. (حداکثر زمان شمارش معکوس 99 ساعت 59 دقیقه و 59 ثانیه)
4. کرونومتر دو کانال با نرخ شمارش 0.01 ثانیه. (حداکثر زمان شمارش 99 ساعت 59 دقیقه و 59 ثانیه)
5. کرونومتر با نرخ شمارش 1 ثانیه. (حداکثر زمان شمارش 99 روز)
6. دماسنج در محدوده -5 درجه سانتیگراد. تا 55 درجه سانتیگراد (محدود شده توسط محدوده دمای عملکرد عادی دستگاه) با افزایش 0.1 درجه سانتیگراد.
7. خواننده و شبیه ساز کلیدهای الکترونیکی - تبلت های نوع DS1990 با استفاده از پروتکل Dallas 1-Wire (حافظه 50 قطعه که قبلاً چندین "کلید سراسری" جهانی وجود دارد) با قابلیت مشاهده بایت کد کلید. .
8. کنترل از راه دور IR (فقط دستور "عکس بگیرید" اجرا می شود) برای دوربین های دیجیتال "Pentax"، "Nikon"، "Canon"
9. چراغ قوه LED
10.7 ملودی
11. سیگنال صوتی در ابتدای هر ساعت (قابل تعویض)
12. تایید صدای فشار دادن دکمه ها (قابل تعویض)
13. نظارت بر ولتاژ باتری با عملکرد کالیبراسیون
14. تنظیم دیجیتال روشنایی نشانگر

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

نمودار شماتیک ساعت

این دستگاه مبتنی بر میکروکنترلر ATmega168PA-AU است. ساعت مطابق با تایمر T2 است که در حالت ناهمزمان از کوارتز ساعت در 32768 هرتز کار می کند. میکروکنترلر تقریباً همیشه در حالت خواب است (نشانگر خاموش است)، هر ثانیه یک بار بیدار می شود تا این ثانیه را به زمان فعلی اضافه کند و دوباره به خواب می رود. در حالت فعال، MC از نوسانگر داخلی RC در 8 مگاهرتز کلاک می شود، اما پیش مقیاس کننده داخلی آن را بر 2 تقسیم می کند، در نتیجه، هسته از 4 مگاهرتز کلاک می شود. برای نشان دادن، از چهار نشانگر دیجیتال LED تک رقمی هفت بخش با یک آند مشترک و نقطه اعشار استفاده می شود. همچنین 7 LED وضعیت وجود دارد که هدف آنها به شرح زیر است:
D1- علامت مقدار منفی (منهای)
D2- علامت کرونومتر در حال اجرا (چشمک می زند)
د3- علامت ساعت زنگ دار اول شامل
د4- علامت ساعت زنگ دار دوم گنجانده شده
د5- علامت سیگنال صوتی در ابتدای هر ساعت
D6- علامت تایمر در حال اجرا (چشمک می زند)
د7- علامت ولتاژ پایین باتری

R1-R8 - مقاومت های محدود کننده جریان بخش هایی از نشانگرهای دیجیتال HG1-HG4 و LED های D1-D7. R12، R13 - تقسیم کننده برای کنترل ولتاژ باتری. از آنجایی که ولتاژ منبع تغذیه ساعت 3 ولت است و LED سفید D9 در مصرف جریان نامی به 3.4-3.8 ولت نیاز دارد، با قدرت کامل نمی درخشد (اما کافی است در تاریکی تلو تلو تلو نخورد) و بنابراین بدون برق وصل می شود. مقاومت محدود کننده جریان عناصر R14، Q1، R10 برای کنترل LED مادون قرمز D8 (اجرای کنترل از راه دور برای دوربین های دیجیتال) طراحی شده اند. R19، R20، R21 برای ارتباط در هنگام برقراری ارتباط با دستگاه هایی که دارای رابط 1-Wire هستند استفاده می شود. کنترل توسط سه دکمه انجام می شود که من به طور مشروط آنها را نامگذاری کردم: MODE (حالت)، بالا (بالا)، پایین (پایین). اولین آنها همچنین برای بیدار کردن MC توسط یک وقفه خارجی (در حالی که نشانگر روشن می شود) طراحی شده است، بنابراین به طور جداگانه به ورودی PD3 متصل می شود. فشار دادن بقیه دکمه ها با استفاده از ADC و مقاومت های R16، R18 تعیین می شود. اگر دکمه ها در عرض 16 ثانیه فشار داده نشوند، MK به خواب می رود و نشانگر خاموش می شود. وقتی در حالت است "کنترل از راه دور برای دوربین ها"این فاصله 32 ثانیه و با روشن شدن چراغ قوه 1 دقیقه است. همچنین MK را می توان به صورت دستی با استفاده از دکمه های کنترل به حالت خواب درآورد. زمانی که کرونومتر با نرخ شمارش 0.01 ثانیه کار می کند. دستگاه وارد حالت خواب نمی شود.

تخته مدار چاپی

این دستگاه بر روی یک برد مدار چاپی گرد شکل دو طرفه مونتاژ می شود تا با قطر داخلی قاب ساعت مچی مطابقت داشته باشد. اما در ساخت از دو تخته یک طرفه با ضخامت 0.35 میلی متر استفاده کردم. این ضخامت دوباره با کندن آن از فایبرگلاس دو طرفه به ضخامت 1.5 میلی متر به دست آمد. سپس تخته ها را چسب زد. همه این کارها به این دلیل انجام شد که من یک فایبرگلاس دو طرفه نازک نداشتم و هر میلی متر ضخامت ذخیره شده در فضای داخلی محدود قاب ساعت بسیار ارزشمند است و نیازی به ترکیب آن در ساخت هادی های چاپی با استفاده از روش LUT نقشه PCB و محل قطعات در فایل های پیوست می باشد. در یک طرف نشانگرها و مقاومت های محدود کننده جریان R1-R8 وجود دارد. در پشت - تمام جزئیات دیگر. دو سوراخ برای LED های سفید و مادون قرمز وجود دارد.

کنتاکت دکمه ها و نگهدارنده باتری از ورق فولادی انعطاف پذیر فنری با ضخامت 0.2 ... 0.3 میلی متر ساخته شده است. و کنسرو شده در زیر عکس های تابلو از هر دو طرف آمده است:

ساخت و ساز، قطعات و جایگزینی احتمالی آنها

میکروکنترلر ATmega168PA-AU را می توان با ATmega168P-AU، ATmega168V-10AU ATmega168-20AU جایگزین کرد. نشانگر دیجیتال - 4 عدد KPSA02-105 رنگ قرمز فوق العاده روشن با ارتفاع 5.08 میلی متر. می توان از همان سری KPSA02-xxx یا KCSA02-xxx تهیه کرد. (فقط سبز نیست - آنها کم نور خواهند درخشید) من آنالوگ های دیگر با اندازه های مشابه با روشنایی مناسب را نمی شناسم. در HG1، HG3، اتصال کاتدی قطعات با HG2، HG4 متفاوت است، زیرا برای من راحت تر بود که برد مدار چاپی را قرار دهم. در این راستا از یک جدول مولد کاراکتر متفاوت برای آنها در برنامه استفاده شده است. مقاومت و خازن استفاده شده SMD جهت نصب سطحی سایزهای استاندارد 0805 و 1206، ال ای دی های D1-D7 سایز استاندارد 0805. ال ای دی های سفید و مادون قرمز با قطر 3 میلی متر. تخته دارای 13 سوراخ است که در آن باید جامپرها را نصب کنید. یک DS18B20 با رابط 1-Wire به عنوان سنسور دما استفاده شد. LS1 یک صداگیر پیزوالکتریک معمولی است که در درب قرار می گیرد. با یک کنتاکت به کمک فنری که روی آن تعبیه شده به برد و با دیگری توسط خود درب به قاب ساعت متصل می شود. تشدید کننده کوارتز از ساعت مچی.

برنامه نویسی، سیستم عامل، فیوزها

برای برنامه نویسی در مدار، برد فقط 6 پین تماس گرد (J1) دارد، زیرا یک اتصال دهنده تمام عیار در ارتفاع مناسب نیست. من آنها را با استفاده از یک دستگاه تماسی ساخته شده از یک فیش پین PLD2x3 به برنامه نویس متصل کردم و با فنر روی آنها لحیم کردم و با یک دست آنها را به لکه ها فشار دادم. در زیر یک عکس از دستگاه است.

من از آن استفاده کردم زیرا در طول فرآیند اشکال زدایی مجبور شدم بارها MK را reflash کنم. با یک سیستم عامل یک بار مصرف، لحیم کردن سیم های نازک متصل به برنامه نویس به وصله ها و سپس لحیم کاری مجدد آسان تر است. فلش کردن MK بدون باتری راحت تر است، اما به طوری که برق از یک منبع خارجی + 3 ولت یا از یک برنامه نویس با همان ولتاژ تغذیه تامین می شود. این برنامه در اسمبلر در محیط VMLAB 3.15 نوشته شده است. کدهای منبع، سیستم عامل برای FLASH و EEPROM در برنامه.

بیت های فیوز میکروکنترلر DD1 باید به صورت زیر برنامه ریزی شوند:
CKSEL3 ... 0 = 0010 - کلاکینگ از نوسانگر داخلی RC 8 مگاهرتز;
SUT1 ... 0 = 10 - زمان راه اندازی: 6 CK + 64 میلی ثانیه;
CKDIV8 = 1 - تقسیم کننده فرکانس بر 8 غیرفعال است.
CKOUT = 1 - ساعت خروجی در CKOUT غیرفعال است.
BODLEVEL2… 0 = 111 - کنترل ولتاژ تغذیه غیرفعال است.
EESAVE = 0 - پاک کردن EEPROM در طول برنامه ریزی تراشه ممنوع است.
WDTON = 1 - بدون فعال سازی ثابت Watchdog Timer.
بهتر است به بقیه بیت های FUSE دست نزنید. FUSE - اگر روی "0" تنظیم شود، بیت برنامه ریزی می شود.

چشمک زدن EEPROM با dump محصور شده در بایگانی مورد نیاز است.

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

آدرس سلول

وقت ملاقات

پارامتر

توجه داشته باشید

مقدار ولتاژ باتری که در آن سیگنال باتری کم رخ می دهد

260 (104 دلار) (2.6 ولت)

ضریب برای تصحیح مقدار ولتاژ باتری اندازه گیری شده

فاصله زمانی برای انتقال به حالت خواب

1 واحد = 1 ثانیه

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

1 واحد = 1 ثانیه

فاصله زمانی برای تغییر حالت خواب در حالت کنترل از راه دور برای دوربین ها

1 واحد = 1 ثانیه

اینجا جایی است که اعداد کلید IButton ذخیره می شوند.

توضیحات کوچک برای نکات:

1 امتیاز مقدار ولتاژ باتری در اینجا نشان داده شده است که در آن LED روشن می شود و مقدار کم آن را نشان می دهد. من آن را روی 2.6 ولت تنظیم کردم (پارامتر - 260). اگر به چیز دیگری نیاز دارید، به عنوان مثال 2.4 ولت، باید 240 (00F0 دلار) بنویسید. بایت کم با 0000 دلار و بایت بالا به ترتیب 0001 دلار وارد سلول می شود.

2 امتیاز از آنجایی که به دلیل کمبود جا مقاومت متغیری برای تنظیم دقت اندازه گیری ولتاژ باتری روی برد نصب نکردم، کالیبراسیون نرم افزاری را معرفی کردم. روش کالیبراسیون برای اندازه گیری دقیق به شرح زیر است: در ابتدا ضریب 1024 (400 دلار) در این سلول EEPROM نوشته شده است، شما باید دستگاه را در حالت فعال قرار دهید و به ولتاژ روی نشانگر نگاه کنید و بلافاصله ولتاژ واقعی را اندازه گیری کنید. ولتاژ روی باتری با ولت متر ضریب تصحیح (K) که باید تنظیم شود، با فرمول محاسبه می شود: K = Uр / Ui * 1024 که در آن Uр ولتاژ واقعی اندازه گیری شده توسط یک ولت متر است، Ui ولتاژ اندازه گیری شده توسط خود دستگاه است. پس از محاسبه ضریب "K"، وارد دستگاه می شود (همانطور که در دستورالعمل های عملیاتی توضیح داده شده است). بعد از کالیبراسیون خطای من از 3% بیشتر نشد.

3 پیپ در اینجا می‌توانید زمانی را تنظیم کنید که در صورت فشار دادن هیچ دکمه‌ای، دستگاه به حالت خواب می‌رود. هزینه اش 16 ثانیه است. اگر باید بعد از 30 ثانیه بخوابید، باید 30 (26 دلار) را یادداشت کنید.

امتیاز 4 و 5 یکسان است.

6 پیپ آدرس 0030 دلار کد خانواده کلید صفر (dallas 1-Wire)، سپس شماره 48 بیتی و CRC آن را ذخیره می کند. و بنابراین 50 کلید به صورت سری.

تنظیمات، ویژگی های کار

راه‌اندازی دستگاه به کالیبره کردن اندازه‌گیری ولتاژ باتری همانطور که در بالا توضیح داده شد خلاصه می‌شود. همچنین لازم است انحراف ساعت را در 1 ساعت تشخیص دهید، مقدار تصحیح مربوطه را محاسبه و وارد کنید (روال در دستورالعمل های عملیاتی توضیح داده شده است).

انرژی دستگاه توسط یک باتری لیتیومی CR2032 (3V) تامین می شود و در حالت خواب حدود 4 μA و در حالت فعال 5 ... 20 میلی آمپر بسته به روشنایی نشانگر مصرف می کند. با پنج دقیقه استفاده روزانه از حالت فعال، باتری باید بسته به روشنایی حدود 2 ... .8 ماه کافی باشد. قاب ساعت به منهای باتری متصل است.

خواندن کلید در DS1990 بررسی شد. شبیه سازی بر روی اینترکام METAKOM تست شده است. شماره های سریال از 46 تا 49 (4 مورد آخر) دوخته شده اند (همه کلیدها در EEPROM ذخیره می شوند ، می توان آنها را قبل از چشمک زدن تغییر داد) کلیدهای جهانی برای اینترکام. کلید ثبت شده در شماره 49 تمام اینترکام های متاکوم را که من با آنها برخورد کردم باز کرد ، بقیه کلیدهای جهانی تست نشد ، کد آنها را از شبکه گرفتم.

کنترل از راه دور برای دوربین های تست شده بر روی Pentax optio L20، Nikon D3000. Canon نتوانست آن را بررسی کند.

دفترچه راهنمای کاربر 13 صفحه است، بنابراین من آن را در مقاله قرار ندادم، اما آن را در فایل پیوست در قالب PDF قرار دادم.

آرشیو شامل:
طرح در و GIF.
ترسیم برد مدار چاپی و چیدمان عناصر در قالب.
سیستم عامل و منابع در اسمبلر؛

فهرست عناصر رادیویی

تعیین یک نوع فرقه تعداد توجه داشته باشیدنمرهدفترچه من
DD1 MK AVR 8 بیتی

ATmega168PA

1 PA-AU داخل دفترچه یادداشت
U2 حسگر دما

DS18B20

1 داخل دفترچه یادداشت
Q1 ترانزیستور ماسفت

2N7002

1 داخل دفترچه یادداشت
C1، C2 خازن30 pF2 داخل دفترچه یادداشت
C3، C4 خازن0.1 uF2 داخل دفترچه یادداشت
C5 خازن الکترولیتی47 uF1 داخل دفترچه یادداشت
R1-R8، R17 مقاومت

100 اهم

9 داخل دفترچه یادداشت
R9 مقاومت

10 کیلو اهم

1 داخل دفترچه یادداشت
R10 مقاومت

8.2 اهم

1 داخل دفترچه یادداشت
R11 مقاومت

300 اهم

1 داخل دفترچه یادداشت
R12 مقاومت

2 MOhm

1 داخل دفترچه یادداشت
R13 مقاومت

220 کیلو اهم

1 داخل دفترچه یادداشت
R14 مقاومت

30 کیلو اهم

1 داخل دفترچه یادداشت
R15، R19 مقاومت

4.7 کیلو اهم

2 داخل دفترچه یادداشت
R16 مقاومت

20 کیلو اهم

1

ساعت مچی خود ساخته روی نشانگر خلاء، ساخته شده به سبک استیمپانک. مطالب از www.johngineer.com گرفته شده است. این ساعت مچی بر اساس صفحه نمایش IVL-2 ساخته شده است. در ابتدا چندین مورد از این نشانگرها را برای ایجاد یک ساعت رومیزی استاندارد خریدم، اما پس از تأمل متوجه شدم که می توانید یک ساعت مچی شیک نیز بسازید. این نشانگر دارای تعدادی ویژگی است که آن را نسبت به سایر نمایشگرهای شوروی برای این منظور مناسب تر می کند. در اینجا پارامترها هستند:

  • جریان نامی رشته 60 میلی آمپر 2.4 ولت است، اما با 35 میلی آمپر 1.2 ولت کار می کند.
  • اندازه کوچک - فقط 1.25 x 2.25 اینچ
  • می تواند با ولتاژ شبکه نسبتا کم 12 ولت (تا 24) کار کند
  • فقط 2.5 میلی آمپر / قطعه در 12.5 ولت مصرف می کند

همه تصاویر را می توان با کلیک بر روی آنها بزرگتر کرد. بزرگترین مانع برای تکمیل موفقیت آمیز پروژه غذا بود. از آنجایی که این ساعت به عنوان بخشی از کت و شلوار در نظر گرفته شده است، مهم نیست که باتری آن تنها 10 ساعت دوام می آورد. برای AA و AAA متوقف شد.

مدار بسیار ساده است. میکروکنترلر Atmel AVR ATMega88 و ساعت بلادرنگ - DS3231. اما آی سی های دیگری نیز وجود دارند، بسیار ارزان تر، که در یک ژنراتور به خوبی کار می کنند.

VFD توسط رجیستر شیفت 12 بیتی MAX6920 با خروجی های ولتاژ بالا (تا 70 ولت) هدایت می شود. استفاده از آن آسان، بسیار قابل اعتماد و جمع و جور است. همچنین برای درایور نمایشگر این امکان وجود دارد که دسته ای از اجزای مجزا را به یکدیگر لحیم کند، اما به دلیل محدودیت فضا این عملی نبود.

ولتاژ باتری همچنین مبدل تقویت کننده 5 ولت (MCP1640 SOT23-6) را تغذیه می کند که برای عملکرد صحیح AVR، DS3231 و MAX6920 مورد نیاز است و همچنین به عنوان ولتاژ ورودی برای مبدل تقویت کننده دوم (NCP1403 SOT23-5) عمل می کند. که 13 ولت را برای ولتاژ شبکه نشانگر خلاء تولید می کند.

این ساعت دارای سه سنسور است: یک آنالوگ و دو سنسور دیجیتال. سنسور آنالوگ یک ترانزیستور نوری است و برای تشخیص سطح نور (Q2) استفاده می شود. سنسورهای دیجیتال: BMP180 - فشار و دما، و MMA8653 - شتاب سنج برای تشخیص حرکت. هر دو سنسور دیجیتال از طریق گذرگاه I2C به DS3231 متصل می شوند.

لوله های برنجی برای زیبایی و محافظت از نمایشگر شیشه ای ساعت مچی لحیم کاری شده اند و برای اتصال بند چرمی از سیم های مسی با ضخامت 2 میلی متر استفاده شده است. نمودار شماتیک کامل در مقاله اصلی ارائه نشده است - اتصال از طریق برگه های داده به ریز مدارهای نشان داده شده را ببینید.

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

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

طرح ساعت:

متأسفانه یک خطایی در طرح وجود دارد:
- نتایج MK به پایه های ترانزیستور باید متصل شود:
PB0 به T4، PB1 به T3، PB2 به T2، PB3 به T1
یا اتصال کلکتورهای ترانزیستور را به تخلیه نشانگر تغییر دهید:
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 VS847 و مقاومت های CHIP استفاده می کند

ضمیمه های مقاله:

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

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

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

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


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

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

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

ساعت های ارائه شده دارای تقویم هستند. دو گزینه برای نمایش تاریخ دارد - ماه به صورت رقمی یا هجا، همه اینها پس از وارد کردن تاریخ با جابجایی بیشتر با دکمه پیکربندی می شود. S1در حالی که پارامتر مورد نظر نمایش داده می شود، دماسنج. فریمورهایی برای سنسورهای مختلف وجود دارد. دستگاه داخل قاب را ببینید:


همه می دانند که تشدید کننده های کوارتز از نظر دقت کامل نیستند و در عرض چند هفته یک خطا جمع می شود. برای مبارزه با این مورد، ساعت یک اصلاح سکته مغزی را ارائه می دهد که توسط پارامترها تنظیم می شود SHو SL... جزئیات بیشتر:

SH = 42 و SL = 40 - این 5 دقیقه در روز است.
SH = 46 و SL = 40 - این 3 دقیقه در روز است.
SH = 40 و SL = 40 - این 2 دقیقه در روز جلو می رود.
SH = 45 و SL = 40 - این 1 دقیقه در روز است.
SH = 44 و SL = С0 - این 1 دقیقه در روز جلو می رود.
SH = 45 و SL = 00 - این اصلاح غیرفعال است.

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

دمای 29 درجه سانتیگراد

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

ساعتی با نور پس‌زمینه LED و عقربه‌گر دقیقه‌ای تپنده روی میکروکنترلر آردوینو
این ساعت منحصر به فرد با نور پس زمینه LED و عقربه دقیقه شمار تپنده با استفاده از تراشه کنترلر PWM TLC5940 ساخته شده است. وظیفه اصلی آن گسترش تعداد مخاطبین با مدولاسیون PWM است. یکی دیگر از ویژگی های این ساعت تبدیل ولت متر آنالوگ به دستگاهی است که دقیقه را اندازه گیری می کند. برای این کار، یک ترازو جدید روی یک چاپگر استاندارد چاپ شد و روی یک چاپگر قدیمی چسبانده شد. به این ترتیب، دقیقه 5 شمارش نمی شود، فقط در دقیقه 5، شمارنده زمان یک فلش را نشان می دهد که روی انتهای ترازو قرار دارد (از مقیاس خارج می شود). کنترل اصلی بر روی میکروکنترلر Arduino Uno پیاده سازی شده است.

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

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



در اینجا چیزی است که شما نیاز دارید:

  • ماژول ولت متر آنالوگ برای 5 ولت DC؛
  • میکروکنترلر آردوینو UNO یا آردوینو مناسب دیگر؛
  • برد مدار آردوینو (پرتو برد);
  • ساعت واقعی DS1307 (RTC)؛
  • ماژول با کنترلر PWM TLC5940;
  • LED های گلبرگ برای روشنایی - 12 عدد.
  • قطعات برای مونتاژ مدار کنترل روشنایی خودکار (LDR).

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

مرحله 2: شماره گیری




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

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

نقشه فنی قطعات صفحه در آدرس زیر موجود است:

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



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

مرحله 4: اتصال برد مدار آردوینو





  1. اولین گام این است که تمام کنتاکت های سوزن روی تخته های مدار و تخته های شکستگی را لحیم کنید.
  2. علاوه بر این، با توجه به این واقعیت که بسیاری از بردها و تجهیزات جانبی از برق 5 ولت و GND استفاده می کنند، برای اطمینان، دو سیم برای 5 ولت و GND روی برد مدار لحیم شده است.
  3. سپس یک کنترلر PWM TLC5940 در کنار پین های مورد استفاده نصب شد.
  4. پس از آن، طبق نمودار اتصال، کنترلر TLC5940 متصل می شود.
  5. برای اینکه بتوان از باتری استفاده کرد، یک ماژول RTC روی لبه برد مدار نصب شد. اگر آن را در وسط برد لحیم کنید، نام مخاطبین قابل مشاهده نخواهد بود.
  6. ماژول RTC مطابق نمودار اتصال متصل می شود.
  7. مدار کنترل خودکار روشنایی (LDR) مونتاژ شده است، می توانید آن را از طریق پیوند پیدا کنید
  8. سیم های ولت متر با اتصال سیم ها به پایه 6 و GND متصل می شوند.
  9. در پایان، 13 سیم برای LED ها لحیم شدند (در عمل معلوم شد که قبل از ادامه مرحله 3 بهتر است این کار را انجام دهید).

مرحله 5: کد برنامه

کد زیر از قطعات مختلفی از اجزای ساعت موجود در اینترنت جمع آوری شده است. به طور کامل اشکال زدایی شده است و اکنون کاملاً کاربردی است، به علاوه برخی نظرات نسبتاً دقیق اضافه شده است. اما قبل از بارگذاری در میکروکنترلر به نکات زیر توجه کنید:

  • قبل از فلش کردن آردوینو، باید خطی را که زمان را تنظیم می‌کند، کامنت کنید:
    rtc.adjust (DateTime (__ DATE__، __TIME__))
    پس از فلش کردن کنترلر با این خط (زمان تنظیم شده است) باید دوباره آن را کامنت کنید و دوباره کنترلر را فلش کنید. این به RTC اجازه می دهد تا در صورت قطع برق اصلی از باتری برای پیگیری زمان استفاده کند.
  • هر بار که از "Tlc.set ()" استفاده می کنید، باید از "Tlc.update" استفاده کنید.

مرحله 6: حلقه بیرونی

حلقه بیرونی ساعت بر روی Replicator Z18 به صورت سه بعدی چاپ شده بود. با پیچ روی صفحه ساعت به ساعت متصل می شود. در زیر فایلی با مدل سه بعدی حلقه برای چاپ روی پرینتر سه بعدی آورده شده است.

مرحله 7: مونتاژ ساعت


میکروکنترلر آردوینو به همراه بقیه لوازم الکترونیکی با پیچ و مهره به عنوان فاصله به پشت ساعت وصل شده بود. سپس تمام ال ای دی ها، ولت متر آنالوگ و LDR به سیم هایی که قبلاً به برد مدار لحیم شده بودند وصل می شوند. همه LED ها توسط یک پایه به یکدیگر متصل شده و به پین ​​VCC روی کنترلر TLC5940 متصل می شوند (فقط یک تکه سیم به صورت دایره ای لحیم شده است).

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

مقالات مرتبط برتر