Բովանդակություն:
Video: Preշգրիտ ժամացույց `3 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Մեզ բոլորիս անհրաժեշտ են ժամացույցներ, ուստի ինչու՞ ձեր սեփականը չդարձնել այս ուսանելի ծրագրում: Ես ձեզ ցույց կտամ, թե ինչպես պատրաստել ճշգրիտ ժամացույց, երբ դուք սահմանեք, ինքնաբերաբար հետևելու է ընթացիկ ժամանակին ամեն ինչի ֆոնին: Մինչդեռ անհրաժեշտ է միայն շատ քիչ պաշարներ և զրոյական զոդումներ:
Պարագաներ
Նախ, ձեզ հարկավոր է Arduino, բայց ցանկացած Arduino կաշխատի
Հաջորդը, ձեզ հարկավոր է ընդհանուր jumper լարերի տեսականի:
2 12 մմ Sparkfun սեղմիչ կոճակ
Ավանդական Breadboard
և LCD 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);
// Թվային LCD կոնստրակտ պարամետր int cs = 9; // PIN 9 հակադրության համար PWM const int Contrast = 100; // կանխադրված հակադրություն
// սկզբնական displayամանակի ցուցադրումը `12:59:45 PM int h = 12; int m = 59; int s = 45; int դրոշ = 1; // PM
// Time Set Buttons int button1; int կոճակ 2;
// insամանակի սահմանման կոճակների համար կապում սահմանումներ int hs = 0; // pin 0 Hամերի կարգավորման համար int ms = 1; // pin 1 րոպեների կարգավորման համար
// Backlight Time Out out const int Time_light = 150; int bl_TO = Time_light; // Backlight Time-Out int bl = 10; // Հետին լուսավորության pin const int լուսային լուսավորություն = 120; // ոչ ավելի, քան 7 մԱ !!!
// Timeամանակի ճշգրիտ ընթերցման համար օգտագործեք Arduino իրական ժամանակի ժամացույց և ոչ միայն հետաձգեք () static uint32_t վերջին_ժամանակը, այժմ = 0; // RTC
void setup () {lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // խուսափել արտաքին Pullup resistors կոճակի համար 1 pinMode (ms, INPUT_PULLUP); // և Button 2 analogWrite (cs, contrast); // Adjust Contrast VO analogWrite (bl, backlight); // Turn այժմ Backlight- ում = millis (); // կարդալ RTC- ի սկզբնական արժեքը}
void loop () {lcd.begin (16, 2); // ամեն վայրկյան // Թարմացրեք LCD էկրանը // Տպեք IMEԱՄԱՆԸ ժամում, րոպե, վրկ + AM/PM lcd.setCursor (0, 0); lcd.print («"ամանակ»); եթե (h <10) lcd.print ("0"); // միշտ 2 նիշ lcd.print (h); lcd.print (":"); եթե (մ <10) lcd.print ("0"); lcd. տպագիր (մ); lcd.print (":"); if (s <10) lcd.print ("0"); lcd. տպագիր (ներ);
եթե (դրոշ == 0) lcd.print ("AM"); եթե (դրոշ == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // տող 2 -ի համար lcd.print («clockշգրիտ ժամացույց»);
// բարելավված հետաձգման փոխարինում (1000) // Շատ ավելի լավ ճշգրտություն, այլևս կախված չէ օղակի կատարման ժամանակից
for (int i = 0; i <5; i ++) // կատարեք 5 անգամ 200ms հանգույց, ավելի արագ կոճակի պատասխանի համար {
while ((now-last_time) <200) // delay200ms {now = millis (); } // ներքին 200ms հանգույց last_time = այժմ; // պատրաստվել հաջորդ հանգույցին
// կարդալ Setting Buttons button1 = digitalRead (hs); // Read Buttons button2 = digitalRead (ms);
// Հետին լուսավորության ժամանակը դուրս bl_TO--; if (bl_TO == 0) {analogWrite (bl, 0); // Backlight OFF bl_TO ++; } // Կտտացրեք որևէ մեկին ՝ Backlight- ը ակտիվացնելու համար, եթե ((((button1 == 0) | (button2 == 0)) & (bl_TO == 1)) {bl_TO = Time_light; analogWrite (bl, backlight); // սպասեք, մինչև կոճակը բացվի մինչ ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs); // Read Buttons button2 = digitalRead (ms); }} else // Գործընթացի կոճակ 1 կամ կոճակ 2, երբ հարվածում է Backlight- ը {if (button1 == 0) {h = h+1; bl_TO = _ամանակի լույս; analogWrite (bl, backlight); }
if (button2 == 0) {s = 0; մ = մ+1; bl_TO = _ամանակի լույս; analogWrite (bl, backlight); }
/* ---- կառավարել վայրկյաններ, րոպեներ, առավոտյան/ժամերի արտահոսք ----*/եթե (s == 60) {s = 0; մ = մ+1; } եթե (m == 60) {m = 0; h = h+1; } եթե (h == 13) {h = 1; դրոշ = դրոշ+1; եթե (դրոշ == 2) դրոշ = 0; }
if ((button1 == 0) | (button2 == 0)) // Թարմացնել ցուցադրումը, եթե սեղմել է ժամանակը սահմանված կոճակը {// Update LCD Display // Print TIME in Hour, Min, Sec + AM/PM lcd.setCursor (0, 0); lcd.print («"ամանակ»); եթե (h <10) lcd.print ("0"); // միշտ 2 նիշ lcd.print (h); lcd.print (":"); եթե (մ <10) lcd.print ("0"); lcd. տպագիր (մ); lcd.print (":"); if (s <10) lcd.print ("0"); lcd. տպագիր (ներ);
եթե (դրոշ == 0) lcd.print ("AM"); եթե (դրոշ == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // տող 2 -ի համար lcd.print («clockշգրիտ ժամացույց»); }
} // ավարտել, եթե այլ բան է} // ավարտել համար
// արտաքին 1000ms հանգույց
s = s+1; // ավելացում վրկ. հաշվում // ---- կառավարել վայրկյաններ, րոպեներ, ժամեր առավոտյան/երեկոյան արտահոսք ---- եթե (s == 60) {s = 0; մ = մ+1; } եթե (m == 60) {m = 0; h = h+1; } եթե (h == 13) {h = 1; դրոշ = դրոշ+1; եթե (դրոշ == 2) դրոշ = 0; }
// Օղակի ավարտը}
Քայլ 3: Սխեմատիկ (սա իրականում քայլ չէ)
Եթե որևէ մեկը, ով կարդում է սա, տեխնիկական խելագար է, այստեղ նաև սխեմատիկ է, կարող եք դրան խելագարվել:
Վայելեք և զվարճացեք և ամենից շատ թարմ մնացեք:
Խորհուրդ ենք տալիս:
Ինչպես պատրաստել անալոգային ժամացույց և թվային ժամացույց Led Strip- ով `օգտագործելով Arduino: 3 քայլ
Ինչպես պատրաստել անալոգային ժամացույց և թվային ժամացույց Led Strip- ով Arduino- ի միջոցով. Այսօր մենք պատրաստելու ենք անալոգային ժամացույց & Թվային ժամացույց Led Strip- ով և MAX7219 Dot մոդուլով Arduino- ով: willամանակը կուղղի տեղական ժամային գոտու հետ: Անալոգային ժամացույցը կարող է օգտագործել ավելի երկար LED ժապավեն, այնպես որ այն կարող է կախվել պատից ՝ արվեստի գործ դառնալու համար
Կենսաթոշակային ժամացույց / հաշվել / Dn ժամացույց ՝ 4 քայլ (նկարներով)
Կենսաթոշակային ժամացույց / Count Up / Dn ockամացույց. Ես դարակում ունեի այս 8x8 LED dot-matrix ցուցադրումներից մի քանիսը և մտածում էի, թե ինչ անել դրանց հետ: Ոգեշնչված այլ հրահանգներով, ես գաղափար ստացա կառուցել հետհաշվարկի/վերևի ցուցադրում `հետ հաշվելու համար մինչև ապագա ամսաթիվը/ժամը և եթե նպատակային ժամանակը պ
Arduino- ի վրա հիմնված ժամացույց ՝ օգտագործելով DS1307 իրական ժամանակի ժամացույց (RTC) մոդուլ և 0.96: 5 քայլ
Arduino- ի վրա հիմնված ժամացույց ՝ օգտագործելով DS1307 Իրական ժամանակի ժամացույց (RTC) մոդուլ և 0.96. Բարև տղերք, այս ձեռնարկում մենք կտեսնենք, թե ինչպես պատրաստել աշխատանքային ժամացույց ՝ օգտագործելով իրական ժամանակի DS1307 ժամացույցի մոդուլ և AMP; OLED էկրաններ: Այսպիսով, մենք կկարդանք ժամանակը ժամացույցի մոդուլից DS1307: Եվ տպեք այն OLED էկրանին
M5stick C- ով ժամացույց պատրաստելը `օգտագործելով Arduino IDE - RTC Իրական ժամանակի ժամացույց M5stack M5stick-C: 4 քայլ
M5stick C- ով ժամացույց պատրաստելը `օգտագործելով Arduino IDE | RTC Իրական ժամանակի ժամացույց M5stack M5stick-C- ով: Ողջույն, այս հրահանգների ընթացքում մենք կսովորենք, թե ինչպես պատրաստել ժամացույց m5stack- ի m5stick-C մշակումով Arduino IDE- ով: Այսպիսով, m5stick- ը կցուցադրի ամսաթիվ, ժամ և AMP; ամսվա շաբաթը ցուցադրվում է
Preշգրիտ ուղղման փորձ. 11 քայլ
Recentlyշգրիտ ուղղման փորձ. Ես վերջերս փորձ եմ կատարել ճշգրիտ ուղղիչ սխեմայի վրա և ստացել մի քանի կոպիտ եզրակացություններ: Հաշվի առնելով, որ ճշգրիտ ուղղիչ միացումը սովորական շրջան է, այս փորձի արդյունքները կարող են որոշակի տեղեկատու տեղեկատվություն տրամադրել: Էլեկտրոնային