Orodha ya maudhui:

Saa ya usahihi: 3 Hatua
Saa ya usahihi: 3 Hatua

Video: Saa ya usahihi: 3 Hatua

Video: Saa ya usahihi: 3 Hatua
Video: Зачем мы спасли ПРИШЕЛЬЦА от ЛЮДЕЙ В ЧЕРНОМ!? ПРИШЕЛЬЦЫ В РЕАЛЬНОЙ ЖИЗНИ! 2024, Julai
Anonim
Saa ya usahihi
Saa ya usahihi

Sisi sote tunahitaji saa kwa nini usijitengenezee mwenyewe katika hii inayoweza kufundishwa nitakuonyesha jinsi ya kutengeneza Saa ya usahihi mara tu utakapoweka itafuatilia moja kwa moja wakati wa sasa nyuma ya kila kitu. Wakati pia inahitaji vifaa vichache tu na kutengenezea sifuri.

Vifaa

Kwanza, utahitaji Arduino lakini Arduino yoyote itafanya kazi

Ifuatayo, utahitaji urval wa waya za kawaida za kuruka.

2 12mm Sparkfun Pushbutton Swichi

Bodi ya mkate ya jadi

na kuonyesha LCD 1602 16

Hatua ya 1: Wiring

Wiring
Wiring

Ili saa hii ifanye kazi unahitaji waya kwa njia maalum sana au sivyo utapata idadi kubwa ya nambari kwenye skrini badala ya wakati.

Hatua ya 2: Kanuni

Kwa kuwa hatutumii RTC sisi nambari hiyo itakuwa ndefu kidogo lakini nashukuru nimefanya kazi ngumu kwako na kuipatia hapa.

Nakili tu na Bandika hii katika Arduino IDE au Mhariri wa wavuti.

# pamoja na "LiquidCrystal.h"

// Hii inafafanua wiring ya LCD kwa DIGITALpins const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal LCD (rs, sw, d4, d5, d6, d7);

// Mpangilio wa LCD ya Dijitali ya Int cs = 9; // pini 9 kwa kulinganisha PWM const int kulinganisha = 100;

// onyesho la wakati wa kwanza ni 12:59:45 PM int h = 12; int m = 59; int s = 45; bendera = 1; // PM

// Vifungo vya Kuweka Saa wakati kifungo1; kifungo cha int2;

// Ufafanuzi wa pini kwa vifungo vya kuweka wakati int hs = 0; // pini 0 kwa Saa Kuweka int ms = 1;

// Mwangaza wa Muda wa Kuondoka const int Time_light = 150; int bl_TO = Muda_mwangaza; // Muda wa Mwangaza wa Mwangaza int bl = 10; // Pini ya mwangaza const int backlight = 120; // hakuna tena basi 7mA !!!

// Kwa kusoma Saa sahihi, tumia Saa ya Saa ya Arduino na sio tu kuchelewesha () tuli uint32_t last_time, sasa = 0; // RTC

kuanzisha batili () {lcd.anza (16, 2); pinMode (hs, INPUT_PULLUP); kwenye Backlight sasa = millis (); // soma thamani ya awali ya RTC}

kitanzi batili () {lcd. anza (16, 2); lcd.print ("Wakati"); ikiwa (h <10) lcd.print ("0"); // kila siku nambari 2 lcd.print (h); lcd.print (":"); ikiwa (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); ikiwa (s <10) lcd.print ("0"); lcd.print (s);

ikiwa (bendera == 0) lcd.print ("AM"); ikiwa (bendera == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // kwa Line 2 lcd.print ("Saa ya usahihi");

// uboreshaji wa ucheleweshaji wa kuboreshwa (1000) // Usahihi zaidi, hautegemei zaidi wakati wa utekelezaji wa kitanzi

kwa (int i = 0; i <5; i ++) // fanya kitanzi mara 5 200ms, kwa majibu ya Kitufe haraka {

wakati ((sasa -mwisho_muda- wa mwisho) <200) // delay200ms {now = millis (); } // kitanzi cha ndani cha 200ms last_time = sasa; // jiandae kwa kitanzi kijacho

// soma vifungo vya Kuweka vifungo1 = kusoma kwa dijiti (hs); // Soma vifungo kifungo 2 = dijitiSoma (ms);

// Muda wa mwanga hautapita bl_TO--; ikiwa (bl_TO == 0) {analogWrite (bl, 0); } // Piga yoyote ili kuamilisha Mwangaza wa Mwangaza ikiwa (((button1 == 0) | (button2 == 0)) & (bl_TO == 1)) {bl_TO = Time_light; Andika Analog (bl, backlight); // subiri mpaka Button itolewe wakati ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs); // Read Buttons button2 = digitalRead (ms); }} mwingine // Kitufe cha Mchakato 1 au Kitufe 2 wakati unapigwa wakati Mwangaza wa Mwangaza ukiwa {if (button1 == 0) {h = h + 1; bl_TO = Mwangaza_ wa Saa; Andika Analog (bl, backlight); }

ikiwa (kifungo2 == 0) {s = 0; m = m + 1; bl_TO = Mwangaza_ wa Saa; Andika Analog (bl, backlight); }

/ * ---- simamia sekunde, dakika, masaa asubuhi / jioni kufurika ---- * / if (s == 60) {s = 0; m = m + 1; } ikiwa (m == 60) {m = 0; h = h + 1; } ikiwa (h == 13) {h = 1; bendera = bendera + 1; ikiwa (bendera == 2) bendera = 0; }

ikiwa ((button1 == 0) | (button2 == 0)) // Sasisha onyesho ikiwa kitufe cha kuweka wakati kimeshinikizwa {// Sasisha Uonyesho wa LCD // Chapisha MUDA katika Saa, Min, Sec + AM / PM lcd.setCursor (0, 0); lcd.print ("Wakati"); ikiwa (h <10) lcd.print ("0"); // kila siku nambari 2 lcd.print (h); lcd.print (":"); ikiwa (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); ikiwa (s <10) lcd.print ("0"); lcd.print (s);

ikiwa (bendera == 0) lcd.print ("AM"); ikiwa (bendera == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // kwa Line 2 lcd.print ("Saa ya usahihi"); }

} // mwisho ikiwa ni nyingine} // mwisho wa

// kitanzi cha nje cha 1000ms

s = s + 1; // nyongeza sec. kuhesabu // ---- kusimamia sekunde, dakika, masaa asubuhi / jioni kufurika ---- ikiwa (s == 60) {s = 0; m = m + 1; } ikiwa (m == 60) {m = 0; h = h + 1; } ikiwa (h == 13) {h = 1; bendera = bendera + 1; ikiwa (bendera == 2) bendera = 0; }

// Mwisho wa kitanzi}

Hatua ya 3: Mpangilio (Hii sio Hatua Kweli)

Mpangilio (Hii Sio Hatua Kwa Kweli)
Mpangilio (Hii Sio Hatua Kwa Kweli)

Ikiwa mtu yeyote anayesoma hii ni mtaalam wa teknolojia hapa pia ni skimu ambayo unaweza kuiangalia kuwa wazimu.

Furahiya na uburudike na zaidi ya yote kaa safi.

Ilipendekeza: