ضرورت
من یک AC پنجره قدیمی در آزمایشگاهم دارم که در تراس قرار دارد. هنگامی که من خارج از ایستگاه هستم، AC باید به طور متناوب اجرا شود و کامپیوتر آزمایشگاهی باید در طول ظهر شدید که دما به 35+ درجه سانتیگراد می رسد، صرف نظر از تابستان یا زمستان، خنک شود. البته ترموستات کار میکنه! اما باید به طور مداوم تغییر کند، در غیر این صورت برای مدت طولانی در تابستان به کار خود ادامه می دهد که من می خواهم از آن اجتناب کنم.
تایمر زیر مبتنی بر آردوینو دقیقاً این کار را انجام می دهد. من می توانم زمان و زمان خاموش را بر اساس زمان بندی کل تقویم تنظیم کنم! این دستگاه مبتنی بر یک تایمر ساده DS3231 RTC، یک تراشه آردوینو ATMEGA328، یک رله کوچک 5 ولتی برای اجرای کنتاکتور 5KW است که در نهایت AC را کنترل می کند.
ماشه برای رفتن بیشتر
عمو شما یک تایمر کاملاً وابسته به تقویم ساخته اید اما ساعت/تقویم یا ساعت زنگ دار و غیره را در هیچ کجا نشان نمی دهید، حداقل باید زمان را نشان دهد تا بدانید قرار است بعداً چه کاری انجام دهد یا تا کنون چه کاری انجام داده است و غیره! پسر دوستم، رئون، اولین برداشت خود را اعلام کرد.
و تمام قوطی کرم بیرون ریخت و من به سختی به درخواست او عمل نکردم! برای اجرای on-time و off-time، من از دستورات switch ترکیب شده با دستورات "if" استفاده کرده ام. بنابراین، ساعت لزوماً در داخل حلقه "اگر" متوقف می شود. تنها زمانی که دستور "if" منقضی می شود، حلقه به پایان می رسد، ساعت شروع می شود و دستور "switch" بعدی اجرا می شود. بنابراین، صفحه نمایش ساعت به طور متناوب با این طرح زمانی که حلقه را اجرا می کند، اجرا می شود، بنابراین من نتوانستم به نمایش پیوسته ساعت مطابق میل Reon دست پیدا کنم!
افسوس! اگر من می توانستم یک آردوینو دوم را مستقل اجرا کنم و در عین حال ساعت را به اشتراک بگذارم، مشکل به طور کامل حل می شد. در غیر این صورت، آیا می توانم یک ساعت 2 به موازات این آردوینو قرار دهم!
اندیشه
یک مرد با یک ساعت همیشه زمان را می داند، با دو ساعت هرگز کاملاً مطمئن نیست. بنابراین، هنگامی که یک پروژه وابسته به زمان است، همیشه بهتر است ساعت تکی توسط همه به اشتراک گذاشته شود. با این حال، من سختی زیادی را متحمل نشدم تا بتوانم آن را فوق العاده دقیق کنم، اما تست کره چشم را به خوبی پشت سر می گذارد و این برای من به اندازه کافی خوب است، من ماهواره ها یا برج های سلولی را مدیریت نمی کنم. راهاندازی یک I2C RTC چند استاد با استفاده از RTC DS3231 ساخته میشود. RTC DS3231 یک RTU بسیار دقیق است که دارای سنسور دمای داخلی برای تنظیم فرکانس ساعت برای اصلاحات دما است. زمان بندی بسیار دقیق را در مدت زمان طولانی حفظ می کند.
اصل عملکرد
DS3231 یک RTU بسیار دقیق است که در اینجا توسط دو آردوینو به اشتراک گذاشته می شود و در همان اصل، می توان آن را توسط میکروکنترلرهای بیشتری نیز به اشتراک گذاشت. یکی از آردوینو تایمر را اجرا می کند در حالی که آردوینو دیگر زمان را نشان می دهد و همه نمایشگرهای دیگر هر چیزی که باید نشان داده شود. برای رسیدگی به ساعت، دقیقه و ثانیه به روش اعشاری ساده، من ترفندی را دنبال کردم که توسط بسیاری در اینترنت نیز استفاده می شود -
بدون امضا طولانی now_time = ساعت*10000+دقیقه*100+ثانیه; به عنوان مثال 72323 7:23:23 است
بدون علامت طولانی on_Time=onhour*10000UL+onmin*100+onsec. 192123 است 19:21:23
بدون امضا طولانی off_Time=offhour*10000UL + offmin*100 + offset; 212223 21:22:23 است
حالا وقتی now_time می شود >= 192123 و <212223 تایمر روشن می شود! خیلی ساده.
با این حال، زمانی که زمان فراتر از 23:59:59 می رسد، من از ترفند دیگری برای مدیریت نمایش استفاده کرده ام…
TFT ILI9163 یک نمایشگر رنگی 128*128 است که روی گذرگاه SPI به همراه پین Reset و AO و CS برای اجرا در آردوینو دوم اجرا می شود. هنگامی که پین زنگ هشدار GPIO در آردوینو اول روشن می شود، آردوینو دوم روی پین A3 با استفاده از DigitalRead (alarm_pin) برای فعال کردن نمایشگر "alarm on" / "alarm off" خوانده می شود.
شماتیک
پین دیجیتال 3،4 به عنوان پین هشدار از اولین آردوینو عمل می کند، پین A3 در آردوینو دوم این وضعیت را برای پردازش در آردوینو دوم می خواند. TFT ILI9163 در آردوینو دوم برای نمایش زمان، زمان زنگ هشدار و غیره متصل است. RTC DS3231 توسط هر دو آردوینو به اشتراک گذاشته شده است. اتصال رله بیشتر به کنتاکتورها برای سوئیچینگ ماشین های AC که نیاز به تحمل بار بیشتری دارند می رود. صورتحساب مواد و قیمت [aliexpress.com ]
1 * DS3231 – 1 $
2 * ATMEGA328 / UNO – 4 $
1 * 128 * 128 TFT [ILI9163] – $ 3.5
2 * 5V رله حبه قند 1.5 دلار
————————— ——————–
مجموع: 10.0 دلار [جعبه، کنتاکتور، هزینه منبع تغذیه 5 ولت جداگانه است]