فهرست مطالب:
تصویری: ساعت دقیق: 3 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
همه ما به ساعت نیاز داریم ، بنابراین چرا در این دستورالعمل ساعت خود را تنظیم نمی کنید ، من به شما نشان می دهم که چگونه یک ساعت دقیق بسازید هنگامی که تنظیم کرده اید به طور خودکار زمان فعلی را در پس زمینه همه چیز پیگیری می کند. در حالی که فقط به منابع بسیار کم و لحیم کاری صفر نیاز دارد.
تدارکات
ابتدا شما به آردوینو احتیاج دارید اما هر آردوینو کار می کند
در مرحله بعد ، شما نیاز به مجموعه ای از سیم های جهنده عمومی دارید.
2 کلید 12 میلی متری Sparkfun Pushbutton
یک تخته نان سنتی
و یک صفحه نمایش LCD 1602 16 پین
مرحله 1: سیم کشی
برای اینکه این ساعت کار کند ، باید آن را به روشی خاص سیم کشی کنید ، در غیر اینصورت به جای زمان ، تعدادی اعداد تصادفی روی صفحه نمایش خواهید داشت.
مرحله 2: کد
از آنجا که ما از RTC استفاده نمی کنیم ، کد کمی طولانی می شود ، اما خوشبختانه من تمام کارهای سخت را برای شما انجام داده ام و آن را در اینجا ارائه کرده ام.
فقط کافی است این را در IDE Arduino یا ویرایشگر وب کپی و جایگذاری کنید.
#شامل "LiquidCrystal.h"
// این سیم کشی LCD را به DIGITALpins const int rs = 2 ، en = 3 ، d4 = 4 ، d5 = 5 ، d6 = 6 ، d7 = 7 تعریف می کند. LCD مایع LiquidCrystal (rs، en، d4، d5، d6، d7)؛
// تنظیم کنتراست LCD دیجیتال int cs = 9؛ // پین 9 برای کنتراست PWM const int contrast = 100؛ // کنتراست پیش فرض
// نمایش اولیه ساعت 12:59:45 بعد از ظهر int h = 12 است؛ int m = 59 ؛ int s = 45 ؛ int flag = 1؛ // PM
// Time Set Buttons int button1؛ دکمه int2 ؛
// پین ها برای تنظیم دکمه های زمان int hs = 0 ؛ // پین 0 برای Hours Setting int ms = 1 ؛ // پین 1 برای تنظیم دقیقه
// Backlight Time Out out const int Time_light = 150؛ int bl_TO = Time_light؛ // Backlight Time-Out int bl = 10؛ // backlight pin const int backlight = 120؛ // بیش از 7mA !!!
// برای خواندن دقیق زمان ، از Arduino Real Time Clock استفاده کنید و نه فقط () static uint32_t last_time، now = 0؛ // RTC
void setup () {lcd.begin (16 ، 2) ؛ pinMode (hs، INPUT_PULLUP)؛ // اجتناب از مقاومت های کششی خارجی برای دکمه 1 pinMode (ms، INPUT_PULLUP)؛ // و Button 2 analogWrite (cs، contrast)؛ // Adjust Contrast VO analogWrite (bl، backlight)؛ // Turn در Backlight now = millis ()؛ // خواندن مقدار اولیه RTC}
void loop () {lcd.begin (16، 2)؛ // هر ثانیه // به روز رسانی نمایشگر LCD // زمان چاپ در ساعت ، دقیقه ، ثانیه + AM/PM lcd.setCursor (0 ، 0) ؛ lcd.print ("زمان") ؛ if (h <10) lcd.print ("0")؛ // همیشه 2 رقم lcd.print (h) ؛ lcd.print (":")؛ if (m <10) lcd.print ("0") ؛ ال سی دی چاپ (متر) ؛ lcd.print (":")؛ if (s <10) lcd.print ("0") ؛ ال سی دی چاپ (ها) ؛
if (flag == 0) lcd.print ("AM") ؛ if (flag == 1) lcd.print ("PM") ؛ lcd.setCursor (0 ، 1) ؛ // برای خط 2 lcd.print ("ساعت دقیق") ؛
// بهبود جایگزینی تأخیر (1000) // دقت بسیار بیشتر ، بیشتر وابسته به زمان اجرای حلقه نیست
برای (int i = 0 ؛ i <5؛ i ++) // 5 بار حلقه 200ms ایجاد کنید ، برای پاسخ سریع تر دکمه {
while ((now-last_time) <200) // delay200ms {now = millis ()؛ } // حلقه داخلی 200ms last_time = now؛ // برای حلقه بعدی آماده شوید
// خواندن دکمه تنظیم دکمه ها 1 = digitalRead (hs) ؛ // دکمه های دکمه های خواندن 2 = digitalRead (ms) ؛
// زمان نور پس زمینه bl_TO--؛ if (bl_TO == 0) {analogWrite (bl، 0)؛ // نور پس زمینه خاموش bl_TO ++ ؛ } // برای فعال کردن نور پس زمینه if (((button1 == 0) | (button2 == 0)) & (bl_TO == 1)) {bl_TO = Time_light؛ analogWrite (bl ، نور پس زمینه) ؛ // منتظر بمانید تا دکمه آزاد شود در حالی که ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs) ؛ // دکمه های دکمه خواندن2 = digitalRead (ms) ؛ }} else // پردازش دکمه 1 یا دکمه 2 هنگام ضربه زدن در حالی که نور پس زمینه روشن است {if (button1 == 0) {h = h+1؛ bl_TO = نور_زمان analogWrite (bl ، نور پس زمینه) ؛ }
if (button2 == 0) {s = 0؛ m = m+1 ؛ bl_TO = نور_زمان analogWrite (bl ، نور پس زمینه) ؛ }
/* ---- مدیریت ثانیه ، دقیقه ، ساعت صبح/بعدازظهر سرریز ----*/if (s == 60) {s = 0؛ m = m+1 ؛ } if (m == 60) {m = 0؛ h = h+1 ؛ } if (h == 13) {h = 1؛ پرچم = پرچم+1؛ if (flag == 2) flag = 0؛ }
if ((button1 == 0) | (button2 == 0)) // در صورت فشردن دکمه تنظیم زمان نمایش صفحه را به روز کنید {// Update LCD Display // Print TIME in Hour، Min، Sec + AM/PM lcd.setCursor (0 ، 0) ؛ lcd.print ("زمان") ؛ if (h <10) lcd.print ("0")؛ // همیشه 2 رقم lcd.print (h) ؛ lcd.print (":")؛ if (m <10) lcd.print ("0") ؛ ال سی دی چاپ (متر) ؛ lcd.print (":")؛ if (s <10) lcd.print ("0") ؛ ال سی دی چاپ (ها) ؛
if (flag == 0) lcd.print ("AM") ؛ if (flag == 1) lcd.print ("PM") ؛ lcd.setCursor (0 ، 1) ؛ // برای خط 2 lcd.print ("ساعت دقیق") ؛ }
} // end if else} // پایان برای
// حلقه خارجی 1000ms
s = s+1 ؛ // افزایش ثانیه شمارش // ---- مدیریت ثانیه ، دقیقه ، ساعت صبح/بعد از ظهر سرریز ---- اگر (s == 60) {s = 0؛ m = m+1 ؛ } if (m == 60) {m = 0؛ h = h+1 ؛ } if (h == 13) {h = 1؛ پرچم = پرچم+1؛ if (flag == 2) flag = 0؛ }
// حلقه پایان}
مرحله 3: شماتیک (این واقعا یک مرحله نیست)
اگر کسی که این مطلب را می خواند یک متخصص فنی است ، در اینجا نیز شماتیک است ، می توانید دیوانه وار به آن نگاه کنید.
لذت ببرید و لذت ببرید و بیشتر از همه شاداب بمانید.
توصیه شده:
با استفاده از سرو موتور ، هر ساعت یک ساعت را بچرخانید - آردوینو: 8 مرحله
چرخش سند ساعت در هر دقیقه با استفاده از سرو موتور - آردوینو: در این آموزش ما یاد می گیریم که چگونه یک ساعت ماسه ای کوچک (1 دقیقه ای) را در هر 60 ثانیه با استفاده از سرو موتور و Visuino بچرخانیم ، یک فیلم نمایشی تماشا کنید
نحوه ساخت ساعت آنالوگ و ساعت دیجیتال با نوار LED با استفاده از آردوینو: 3 مرحله
نحوه ساخت ساعت آنالوگ و ساعت دیجیتال با نوار LED با استفاده از آردوینو: امروز ما یک ساعت آنالوگ تولید می کنیم & amp؛ ساعت دیجیتال با Led Strip و ماژول MAX7219 Dot با آردوینو. زمان را با منطقه زمانی محلی تصحیح می کند. ساعت آنالوگ می تواند از نوار LED طولانی تری استفاده کند ، بنابراین می توان آن را به دیوار آویزان کرد تا به یک هنر تبدیل شود
ولت متر دقیق و دقیق آردوینو (0-90V DC): 3 مرحله
متر ولتاژ دقیق و دقیق آردوینو (0-90V DC): در این قسمت ، من یک ولت متر برای اندازه گیری ولتاژهای بالا DC (0-90v) با دقت و دقت نسبی با استفاده از آردوینو نانو ساخته ام. اندازه گیری های آزمایشی که من انجام دادم به اندازه کافی دقیق بود ، بیشتر در 0.3 ولت از ولتاژ واقعی اندازه گیری شده با
ساعت شبکه ESP8266 بدون هیچ گونه RTC - Nodemcu NTP ساعت بدون RTC - پروژه ساعت اینترنتی: 4 مرحله
ساعت شبکه ESP8266 بدون هیچ گونه RTC | Nodemcu NTP ساعت بدون RTC | پروژه ساعت اینترنتی: در پروژه ایجاد پروژه ساعت بدون RTC ، زمان استفاده از اینترنت با استفاده از wifi و نمایش آن بر روی صفحه نمایش st7735
تنظیم DTC3231 RTC (ساعت زمان واقعی) به صورت دقیق ، سریع و خودکار با استفاده از جاوا (+-1s): 3 مرحله
تنظیم دقیق DS3231 RTC (ساعت در زمان واقعی) با استفاده از جاوا (+-1s): این دستورالعمل به شما نشان می دهد که چگونه زمان را بر روی ساعت واقعی DS3231 با استفاده از آردوینو و یک برنامه جاوا کوچک که از آن استفاده می کند ، تنظیم کنید. اتصال سریال آردوینو. منطق اساسی این برنامه: 1. آردوینو یک درخواست سریال ارسال می کند