فهرست مطالب:

ساعت آسان برای صرفه جویی در روز: 7 مرحله
ساعت آسان برای صرفه جویی در روز: 7 مرحله

تصویری: ساعت آسان برای صرفه جویی در روز: 7 مرحله

تصویری: ساعت آسان برای صرفه جویی در روز: 7 مرحله
تصویری: لحظه دستگیری قاتل که دو فرد را در کنار خیابان سر برید ! 2024, نوامبر
Anonim
ساعت آسان برای صرفه جویی در روز
ساعت آسان برای صرفه جویی در روز
ساعت آسان برای صرفه جویی در روز
ساعت آسان برای صرفه جویی در روز

داستان

این پروژه برای من یادگیری برنامه نویسی (برنامه نویسی) با Arduino Uno و یک صفحه نمایش LCD 1602A به عنوان یک چالش برای من آغاز شد ، من ابتدا می خواستم آردوینو را برای دقت به محدوده خود برسانم. این یک پروژه برای ساخت یک ساعت بدون استفاده از ماژول RTC (ماژول ساعت زمان واقعی) و عدم استفاده از هیچ گونه تاخیری () است. دستورات چون تاخیر ()؛ فرمان کد را برای مدت زمان معینی متوقف می کند. در حین کار با کد اولیه نگه داشتن زمان ، فکر کردم این ممکن است کمی پیش پا افتاده باشد ، بنابراین تصمیم گرفتم ویژگی صرفه جویی در وقت روز را به عنوان یک افزودنی جدید به ادویه جات اضافه کنم و احتمالاً علاقه بیشتری به این پروژه ایجاد کنم. در ابتدا این ایده کاملاً بدیع بود اما هرچه بیشتر با آن کار می کنم و ساعت فیزیکی را که روی میز کار می کنم تماشا می کنم ، ایده عملی تر می شود. با افزودن یک ماژول RTC و تنظیم کد ، این ساعت در سالهای آینده دقیق خواهد بود و برای تولیدکنندگان و عموم افرادی که چنین ساعتی را خریداری می کنند ، بسیار کم هزینه است.

ساعت تابستانی یا (DST) بیش از 100 سال است که وجود دارد (در گوگل سرچ کنید ، تاریخچه ای بسیار رنگارنگ دارد). من نمی خواهم وارد سیاست آن شوم اما این یک تمرین خام و دردناک است که زندگی را برای مردم عادی (من و شما) آسان نمی کند. در بیشتر موارد ما از ساعت اضافی نور روز لذت می بریم اما نحوه استفاده از آن وحشیانه است. وقت آن است که یک ایده بسیار قدیمی را ارتقا دهیم.

زندگی با این مثال آسان است و با عصر دیجیتال و پیشرفت های فناوری به راحتی می توان همه اشکال ساعت دیجیتال را اعمال کرد ، اما می تواند به از بین رفتن ساعت آنالوگ کمک کند. این ساعت به جای یک ساعت پرش از زمان استاندارد به زمان DST و زمان DST به زمان استاندارد بر اساس پیشرفت تدریجی زمان از انقلاب زمستانی به انقلاب تابستانی و سپس بازگشت به زمان استاندارد در انقلاب زمستانی بعدی سال به سال است. این گذار به مدت 180 روز از هر 6 ماه انجام می شود ، تعدیل 20 ثانیه در روز برای 360 روز است و 5 یا 6 روز باقی مانده به طول انقلاب ها اضافه می شود. مثال من در اینجا هر 3 روز یکبار در یک چرخه 180 روزه 1 دقیقه افزایش می یابد. تقریباً در 21 ژوئن هر سال ، ساعت یک ساعت کامل جلوتر است و تقریباً در 21 دسامبر هر سال ، ساعت به زمان استاندارد برمی گردد. سال کبیسه به راحتی در صورت استفاده از RTC محاسبه می شود. نیمکره جنوبی نیز به راحتی با این ساعت سازگار می شود ، مقیاس اسلاید به سادگی 6 ماه از فاز نیمکره شمالی خارج است.

سه نقطه در جهان وجود دارد که DST تقریباً جز در منطقه استوایی و قطب ها نخواهد بود. من فکر نمی کنم که نور روز در خط استوا تغییر زیادی می کند ، نمی دانم آیا در مناطق گرمسیری حتی از DST استفاده می شود و قطب ها باز هم داستان متفاوتی است ، اما به هر حال ساعت "قطب" ساعت چند است؟

مرحله 1: درباره ساعت

درباره ساعت
درباره ساعت
درباره ساعت
درباره ساعت

ساعتی که من ایجاد کرده ام بر اساس زمان استاندارد است که هرگز با ساعت جهانی پذیرفته شده بین المللی متفاوت نیست ، این ساعت در اولین خط LCD 1602 نمایش داده می شود. خط دوم مقیاس زمانی یکسانی دارد اما مجموعه ای از دقیقه ها را از یک انقلاب به انقلاب دیگر نشان می دهد. از انقلاب زمستانی تا انقلاب تابستانی ، تنظیمات جداگانه هر سه روز یک دقیقه تا حداکثر شصت دقیقه افزایش می یابد. از انقلاب تابستانی تا انقلاب زمستانی ، تنظیمات جداگانه هر سه روز یک دقیقه کاهش می یابد تا زمان استاندارد و زمان DST یکسان شود.

برای این مثال ، من از زمان نظامی (ساعت 24 ساعته) و زمان استاندارد (ساعت 12 ساعته) صبح و بعدازظهر برای کمک به افرادی که با مقیاس ساعت 24 ساعت آشنا نیستند استفاده کرده ام ، همچنین به اتاق من داده شده است تا شماره روز DST را نشان دهد تنظیم از کد را می توان تغییر داد تا ساعت 12 ساعته نمایش داده شود. برای تنظیم زمان ، سه دکمه متصل به پین های دیجیتال 2 ، 3 و 4 اضافه کرده ام. این دکمه ها فقط ثانیه ، دقیقه یا ساعت را افزایش می دهند. دکمه ها اختیاری هستند ، اگر هنوز دکمه ها را وصل نکنید و نیازی به تغییر کد نداشته باشید ، ساعت همچنان خوب کار می کند. توصیه می کنم حداقل از یک دکمه برای تنظیم ثانیه استفاده کنید و اگر نمی توان به دقت کامل دست یافت ساعت را در سمت آهسته نگه دارید ، دکمه زمان را 1 ثانیه در ثانیه جلو می برد.

اگر ساعت را از Arduino IDE شروع کنید ، 5.5 تا 6 ثانیه طول می کشد تا طرح بارگیری و بوت شود ، اگر طرح را روی آردوینو بارگذاری کرده اید ، سپس آن را به زگیل دیواری یا منبع تغذیه وصل کنید ، حدود 2.5 تا زمان می برد. 3 ثانیه برای راه اندازی و اجرا.

هنگامی که بالاخره ساعت را برای کار آماده کردید ، به تنظیمات دستی نیاز است.

این ساعت از ماژول RTC استفاده نمی کند و از "تأخیر ()؛" استفاده نمی کند. دستورات

اگر دوست دارید از RTC با آردوینو استفاده کنید ، هنوز می توانید از این مفهوم استفاده کنید. RTC تمام اطلاعات مورد نیاز برای افزودن زمان EDSC را در اختیار شما قرار می دهد. ممکن است کد با یک ماژول RTC بسیار متفاوت باشد ، من به آن توجه نکرده ام. اگر این کار را بکنید تقریباً مستقل هستید ، اما این راهی عالی برای تمرین مغز است.

مرحله 2: آنچه شما نیاز دارید

آنچه شما نیاز خواهید داشت
آنچه شما نیاز خواهید داشت
آنچه شما نیاز خواهید داشت
آنچه شما نیاز خواهید داشت
آنچه شما نیاز خواهید داشت
آنچه شما نیاز خواهید داشت

لیست خرید

1 Arduino Uno یا Mega2569 (پین های I2C A4 و A5 در UNO و 20 و 21 در 2560 مگا هستند)

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

1 صفحه LCD 1602 (رنگ دلخواه)

من از یک بسته پشتی I2C با LCD استفاده می کنم ، راه اندازی آن آسان تر و سریعتر است.

سیم های بلوز

تأمین کننده های اختیاری

1 تخته نان سایز متوسط

1-3 دکمه تماس لحظه ای

1-3 مقاومت 10 کیلو اهم

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

یادداشت:

برای جلوگیری از قطعی قطعی برق ، ساعت پایانی من از یک پنل خورشیدی که بیرون دارم تغذیه می شود. پنل خورشیدی یک باتری 12 ولت را با یک رگولاتور شارژ نگه می دارد تا از شارژ بیش از حد جلوگیری کند. این باتری از طریق جک پاور کنار پورت USB به آردوینو متصل می شود. من پورت USB را به شبکه متصل می کنم تا میزان شارژ باتری کاهش یابد. از هر دو منبع تغذیه می توان به طور همزمان بدون آسیب رساندن به آردوینو استفاده کرد. باتری 12 ولت را می توان حداکثر 14.5 ولت شارژ کرد که برای آردوینو بسیار زیاد است ، بنابراین من از مبدل باک برای کاهش ولتاژ تغذیه باتری به محدوده 9 تا 12 ولت استفاده می کنم. باتری 12 ولت که من آن را شارژ نگه می دارم در صورت بارندگی 3 یا 4 روز دوام می آورد. اگر ولتاژ باتری به 11 ولت کاهش یابد ، رگولاتور مورد استفاده من آردوینو را قطع می کند. باتری من از سیستم چراغ اضطراری ساختمانهای تجاری می آید ، اندازه آن تقریباً یک چهارم یک باتری ماشین کوچک است. اگر قصد استفاده از باتری خودرو را دارید ، حتماً آن را در منطقه ای با تهویه مناسب (بیرون) نگه دارید ، باتری خودرو هنگام شارژ و تخلیه گاز هیدروژن و اکسیژن از خود خارج می کند ، این ترکیبی انفجاری است.

هشدار

باتری را به خوبی حفظ کنید

منطقه تهویه شده ،

خارج از

مرحله 3: سیم کشی

سیم کشی
سیم کشی

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

صفحه نمایش LCD 1602 دارای یک بسته پشتی I2C برای سادگی است ، اگر از اتصالات SPI استفاده می کنید ، باید نحوه استفاده از آن را جستجو کرده و کد را در ابتدای طرح تغییر دهید. من هرگز از اتصالات SPI استفاده نکرده ام بنابراین ممکن است پین 2 ، 3 و 4 برای سه دکمه فشاری در دسترس نباشد.

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

اگر ثانیه ، دقیقه یا ساعت را تنظیم می کنید (برای مثال اگر دقیقه 58 ، 59 ، 00 پیشرفته باشد) ساعت به ساعت بعدی پیش می رود.

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

مرحله 4: آنچه نمایش می دهد

آنچه نمایش می دهد
آنچه نمایش می دهد

من اطلاعات زیادی روی صفحه LCD 1602 قرار داده ام که نیاز به توضیح دارد:

خط 1 یا خط صفر '0' هنگام صحبت با کد ، زمان استاندارد را نشان می دهد. در سمت چپ "STD" قرار دارد ، این نشان دهنده زمان "STandarD" است.

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

این مقیاس زمانی یک ساعت 12 ساعته است بنابراین در سمت راست 'AM یا' PM 'برای نشان دادن صبح یا بعد از ظهر است.

خط 2 یا خط یک '1' هنگام صحبت با کد ، زمان صرفه جویی در روز را نشان می دهد که با توجه به روز سال متفاوت است. "DST" در سمت چپ به معنی "ساعت تابستانی است"

در وسط خط دوم زمان نظامی محلی شما قرار دارد که 24 ساعت است. خواهید شنید که به عنوان مثال "آه ششصد ساعت" نامیده می شود.

در سمت راست روز سال است که از انقلاب زمستانی اشاره شده است ، در نیمکره شمالی 21 دسامبر (تقریبا) روز صفر '0' و در نیمکره جنوبی 21 ژوئن (تقریبا) روز صفر '0' است.

من دو فایل.pdf را برای مرجع در هنگام تنظیم اولیه ساعت ارائه کرده ام. فایلی را انتخاب کنید که به نیمکره ای که در آن زندگی می کنید اشاره دارد.

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

مرحله 5: Sketch Setup

Sketch Setup
Sketch Setup

چندین خط کد وجود دارد که برای راه اندازی اولیه باید تنظیم شود. هر بار که ساعت را قطع می کنید و مقادیر متغیرها را در طرح تغییر می دهید ، برخی از این خطوط باید تغییر کنند. اگر ساعت را برای IDE روشن کنید ، بارگیری و شروع آن حدود 6 ثانیه طول می کشد. اگر طرح را از IDE بارگیری می کنید ، ساعت را جدا کرده و مجدداً از زگیل دیواری راه اندازی کنید یا منبع تغذیه ، طرح در حدود 2.5 ثانیه بوت می شود.

خط 11 LiquidCrystal_I2C ال سی دی (0x27 ، 2 ، 1 ، 0 ، 4 ، 5 ، 6 ، 7) ؛

این خط صفحه نمایش LCD را نشان می دهد و آدرس مناسب بسته پشتی I2C را تعیین می کند. 0x27 آدرس هر بسته پشتی است که خریدم. اگر ساعت را روشن می کنید اما هیچ داده ای نمایش داده نمی شود اما روشن می شود ، آدرس احتمالاً در LCD شما متفاوت است. پیوند زیر را برای توضیح نحوه تغییر آدرس پشت صفحه LCD یا یافتن آدرس قرار می دهم.

خطوط 24 اینچ دقیقه ST = 35؛

دقیقه شروع را برای ساعت استاندارد تنظیم کنید ، معمولاً آن را 5 دقیقه قبل از شروع ساعت تنظیم کنید تا زمان راه اندازی امکان پذیر باشد.

خطوط 25 int ساعت ST = 18؛

ساعت را روی زمان STD (ساعت 24 ساعته) شروع کنید تنظیم کنید. 6 بعد از ظهر ساعت 18 خواهد بود.

خط 26 int DSTdays = 339؛

فایل pdf "مقیاس زمان آسان ساعت DST" را بارگیری و به آن مراجعه کنید (نیمکره شمالی یا جنوبی) که در آن زندگی می کنید ، تاریخ را جستجو کرده و روز # را در این خط وارد کنید. (ستون سمت چپ). مثال (24 نوامبر روز #339 در نیمکره شمالی و روز #156 در نیمکره جنوبی است)

خط 27 int DSTyear = 2019؛

سال جاری را وارد کنید.

خط 92 if ((masterTime - previousMasterTimeSt> = 1000) && (microTime - previousMicroTimeSt> = 500)) {

"previousMasterTimeSt" باید با تعداد میلی ثانیه مقایسه شود بنابراین این "1000" ممکن است نیاز به 999 بسته به ساعت داخلی برد Arduino داشته باشد و سپس previousMicroTime را برای تنظیم دقیق ساعت تنظیم کنید. ساعت داخلی اگرچه 16MH دارای تغییرات از یک صفحه به صفحه دیگر است.

"previousMicroTimeSt" با تنظیم دقیق ساعت داخلی می تواند یک ثانیه دقیق را شمارش کند. اگر ساعت خیلی سریع باشد میکرو ثانیه را افزایش دهید و اگر ساعت خیلی کند باشد میکرو ثانیه را کاهش دهید و در صورت نیاز میلی ثانیه را به 999 کاهش دهید و سپس میکرو ثانیه را در حدود 999 ، 990 شروع کنید یا سرعت ساعت را افزایش دهید.

سرعت هر برد آردوینو کمی متفاوت است بنابراین این اعداد با هر برد مورد استفاده شما تغییر می کند. بخشی از کد هنوز آزمایش نشده است ، این خط 248 برای هر سال کبیسه است. در چند هفته آینده آن را آزمایش می کنم و در صورت لزوم تغییرات را ارسال می کنم.

مرحله 6: نکات نهایی

نکات پایانی
نکات پایانی

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

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

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

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

آیا DST در قطب شمال یا جنوب ضروری است یا حتی ممکن است؟

ساعت چند در قطب شمال یا جنوب است؟

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

از قطب جنوب برای رسیدن به استرالیا ، آمریکای شمالی ، اروپا یا آسیا چه مسیری را طی می کنید؟

بابا نوئل در چه منطقه زمانی زندگی می کند؟

آیا او به DST نیاز دارد؟

به هر حال ساعت چند در قطب شمال است؟

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

DST در چه عرض جغرافیایی م effectiveثر است؟

اکنون برای خط استوا ؛

آیا این ساعت در خط استوا قابل استفاده است؟

آیا آنها از مقیاس نیمکره شمالی یا جنوبی استفاده می کنند؟

انقلاب زمستانی و تابستانی چه تاریخی است؟

DST در چه عرض جغرافیایی م effectiveثر است؟

آیا پنگوئن ها به DST نیاز دارند؟

آیا فکر می کنید من عجیب هستم که به این سوالات فکر می کنم؟

ساخت همه مبارک!

فلفل دلمه ای

مرحله 7: پیوندهای دیگر

این پیوندی برای تعیین یا تغییر آدرس در بسته پشتی I2C است:

www.instructables.com/id/1602-2004-LCD-Adapter-Addressing/

PiotrS یک دستورالعمل عالی برای آدرسهای سخت افزاری I2C نوشته است

playground.arduino.cc/Main/I2cScanner

این پیوند دستگاه I2C شما را اسکن کرده و آدرس را برمی گرداند

توصیه شده: