Мазмұны:

Дәлдік сағаты: 3 қадам
Дәлдік сағаты: 3 қадам

Бейне: Дәлдік сағаты: 3 қадам

Бейне: Дәлдік сағаты: 3 қадам
Бейне: Ертең істеймін, арғы күні істеймін. Өміріңді өзгертетін 3 кеңес. Ертеңге қалдырма. Прокрастинация. 2024, Шілде
Anonim
Дәлдік сағаты
Дәлдік сағаты

Барлығымызға сағаттар қажет, сондықтан неге осы нұсқаулықта өз қолыңызбен жасамасаңыз, мен сізге дәлдіктегі сағатты қалай жасау керектігін көрсетемін, сіз барлық нәрсенің фонында ағымдағы уақытты автоматты түрде қадағалап отырасыз. Сонымен қатар, өте аз материалдар мен нөлдік дәнекерлеу қажет.

Жабдықтар

Біріншіден, сізге Arduino қажет, бірақ кез келген Arduino жұмыс істейді

Әрі қарай, сізге жалпы секіргіш сымдардың ассортименті қажет болады.

2 12 мм Sparkfun батырмалы қосқыштары

Дәстүрлі нан тақтасы

және СКД 1602 16 істікшелі дисплей

1 -қадам: Сымдарды жалғау

Сымдар
Сымдар

Бұл сағаттың жұмыс істеуі үшін сіз оны нақты түрде байланыстыруыңыз керек, әйтпесе экранда уақыт емес, кездейсоқ сандар пайда болады.

2 -қадам: Кодекс

Біз RTC қолданбайтындықтан, код біразға созылады, бірақ шүкір, мен сіз үшін барлық ауыр жұмысты орындадым және оны осында ұсындым.

Мұны Arduino IDE немесе веб -редакторға көшіріп, қойыңыз.

#«LiquidCrystal.h» қосыңыз

// Бұл LCD сымын DIGITALpins const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7 анықтайды; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

// Digital LCD Constrast параметрі int cs = 9; // контраст үшін PWM const int kontrast = 100 түйреуіш 9; // әдепкі контраст

// бастапқы Уақыт дисплейі - 12:59:45 PM int h = 12; int m = 59; int s = 45; int жалаушасы = 1; // PM

// Уақытты орнату түймелері int button1; int түймесі2;

// Уақытты орнату түймелері үшін түйреуіш анықтамасы int hs = 0; // сағатты орнату үшін 0 түйін int ms = 1; // минут 1 параметрі үшін // PIN 1.

// Артқы жарық уақыты аяқталды const int Time_light = 150; int bl_TO = Уақыттың жарығы; // Артқы жарықтың күту уақыты int bl = 10; // Артқы жарық pin const int backlight = 120; // 7 мА артық емес !!!

// Уақытты дәл оқу үшін 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 VO analogWrite (bl, backlight) реттеу; // бұру Артқы жарықта қазір = миллис (); // RTC бастапқы мәнін оқу}

void loop () {lcd.begin (16, 2); // әр секунд // СКД дисплейін жаңарту // TIME, Print in Hour, Min, Sec + AM/PM lcd.setCursor (0, 0); lcd.print («Уақыт»); if (h <10) lcd.print («0»); // әрқашан 2 цифр lcd.print (h); lcd.print («:»); егер (m <10) lcd.print («0»); lcd.print (m); lcd.print («:»); if (s <10) lcd.print («0»); lcd.print (s);

if (flag == 0) lcd.print («AM»); if (flag == 1) lcd.print («PM»); lcd.setCursor (0, 1); // 2 -жол үшін lcd.print («Нақты сағат»);

// кешіктіруді жақсарту (1000) // Біршама жақсы дәлдік, циклдің орындалу уақытына тәуелді емес

for (int i = 0; i <5; i ++) // 5 уақыт 200 мс цикл жасаңыз, тезірек батырмалық жауап беру үшін {

while ((now-last_time) <200) // delay200ms {now = millis (); } // ішкі 200ms цикл last_time = қазір; // келесі циклге дайындалу

// оқу батырмаларын орнату батырмасы1 = digitalRead (hs); // Read Buttons button2 = digitalRead (ms);

// Артқы жарықтың күту уақыты bl_TO--; if (bl_TO == 0) {analogWrite (bl, 0); // Backlight OFF bl_TO ++; } // Артқы жарығын іске қосу үшін кез келгенін басыңыз, егер ((((1 -түйме = = 0) | (2 -түйме == 0)) & (bl_TO == 1)) {bl_TO = Уақыт_ жарығы; analogWrite (bl, артқы жарық); // ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs); // Buttons оқу түймесі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; } егер (m == 60) {m = 0; h = h+1; } егер (h == 13) {h = 1; жалауша = жалауша+1; if (flag == 2) flag = 0; }

if ((button1 == 0) | (button2 == 0)) // Уақытты орнату батырмасы басылса, дисплейді жаңарту {// LCD дисплейін жаңарту // Сағаттың, мин, сек + AM/PM -де басып шығару уақыты lcd.setCursor (0, 0); lcd.print («Уақыт»); if (h <10) lcd.print («0»); // әрқашан 2 цифр lcd.print (h); lcd.print («:»); егер (m <10) lcd.print («0»); lcd.print (m); lcd.print («:»); if (s <10) lcd.print («0»); lcd.print (s);

if (flag == 0) lcd.print («AM»); if (flag == 1) lcd.print («PM»); lcd.setCursor (0, 1); // 2 -жол үшін lcd.print («Нақты сағат»); }

} // соңы егер басқа} // соңы

// сыртқы 1000 мс цикл

s = s+1; // ұлғаю сек. санау // ---- секундтарды, минуттарды, сағаттарды таңертең/кешкі асып кетуді басқару ---- if (s == 60) {s = 0; m = m+1; } егер (m == 60) {m = 0; h = h+1; } егер (h == 13) {h = 1; жалауша = жалауша+1; if (flag == 2) flag = 0; }

// Циклдың соңы}

3 -қадам: схемалық (бұл шынымен қадам емес)

Схема (бұл нақты қадам емес)
Схема (бұл нақты қадам емес)

Егер мұны оқитын адам технологиялық білгір болса, онда бұл схема, сіз оған ақылға қонымсыз қарауға болады.

Ләззат алыңыз және көңілді болыңыз және бәрінен бұрын сергек болыңыз.

Ұсынылған: