Satura rādītājs:
Video: Precīzs pulkstenis: 3 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:53
Mums visiem ir vajadzīgi pulksteņi, tāpēc kāpēc neizdarīt savu šajā pamācošajā? Lai gan arī vajag tikai ļoti maz krājumu un nulles lodēšanas.
Piegādes
Pirmkārt, jums būs nepieciešams Arduino, bet jebkurš Arduino darbosies
Tālāk jums būs nepieciešams vispārēju džemperu vadu sortiments.
2 12 mm Sparkfun spiedpogas slēdži
Tradicionāls maizes dēlis
un LCD 1602 16 kontaktu displejs
1. solis: Elektroinstalācija
Lai šis pulkstenis darbotos, jums tas ir jāpievieno ļoti specifiskā veidā, pretējā gadījumā ekrānā tiks parādīts virkne nejaušu skaitļu, nevis laiks.
2. darbība: kods
Tā kā mēs neizmantojam RTC, kods būs nedaudz garš, bet, par laimi, esmu izdarījis visu smago darbu jūsu vietā un sniedzis to šeit.
Vienkārši kopējiet un ielīmējiet to Arduino IDE vai tīmekļa redaktorā.
#include "LiquidCrystal.h"
// Tas nosaka LCD vadu savienošanu ar DIGITALpins const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal LCD (rs, en, d4, d5, d6, d7);
// Digitālā LCD kontrasta iestatījums int cs = 9; // pin 9 kontrastam PWM const int kontrasts = 100; // noklusējuma kontrasts
// sākotnējais laika displejs ir 12:59:45 PM int h = 12; int m = 59; int s = 45; int karogs = 1; // PM
// Laika iestatīšanas pogas int poga1; int poga2;
// Piespraudes definīcija laika iestatīšanas pogām int hs = 0; // pin 0 for Stundu iestatījums int ms = 1; // pin 1 for Minutes Setting
// Backlight Time Out const int Time_light = 150; int bl_TO = Laika apgaismojums; // Fona apgaismojuma taimauts int bl = 10; // Backlight pin const int backlight = 120; // ne vairāk kā 7mA !!!
// Lai iegūtu precīzu laika nolasīšanu, izmantojiet Arduino reālā laika pulksteni un ne tikai aizkavējiet () static uint32_t last_time, now = 0; // RTC
void setup () {lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // izvairieties no ārējiem pievilkšanas rezistoriem 1. pogai pinMode (ms, INPUT_PULLUP); // un 2. poga analogWrite (cs, kontrasts); // Pielāgojiet kontrastu VO analogWrite (bl, fona apgaismojums); // Pagrieziet uz Apgaismojums tagad = milis (); // lasīt RTC sākotnējo vērtību}
void loop () {lcd.begin (16, 2); // katru sekundi // Atjaunināt LCD displeju // Drukāt TIME in Hour, Min, Sec + AM/PM lcd.setCursor (0, 0); lcd.print ("Laiks"); if (h <10) lcd.print ("0"); // vienmēr 2 cipari lcd.print (h); lcd.print (":"); ja (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); ja (s <10) lcd.print ("0"); lcd.print (s);
ja (karogs == 0) lcd.print ("AM"); ja (karogs == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // 2. rindai lcd.print ("Precīzs pulkstenis");
// uzlabota aiztures aizvietošana (1000) // Daudz labāka precizitāte, vairs nav atkarīga no cilpas izpildes laika
for (int i = 0; i <5; i ++) // izveidojiet 5 reizes 200 ms cilpu, lai ātrāk reaģētu poga {
while ((tagad-pēdējais_laiks) <200) // delay200ms {now = millis (); } // iekšējā 200 ms cilpa last_time = now; // sagatavoties nākamajai cilpai
// poga Iestatīšanas pogu lasīšana1 = digitalRead (hs); // Pogas Read22 = digitalRead (ms);
// Fona apgaismojuma noildze bl_TO--; ja (bl_TO == 0) {analogWrite (bl, 0); // Fona apgaismojums OFF bl_TO ++; } // Lai aktivizētu fona apgaismojumu, nospiediet jebkuru, ja ((((poga1 == 0) | (poga2 == 0)) & (bl_TO == 1)) {bl_TO = Laika gaisma; analogWrite (bl, fona apgaismojums); // pagaidiet, līdz poga tiek atbrīvota, kamēr ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs); // Pogas Read2 poga2 = digitalRead (ms); }} else // Apstrādes poga 1 vai poga 2, kad tiek nospiests, kamēr ir ieslēgts apgaismojums {if (button1 == 0) {h = h+1; bl_TO = Laika_gaisma; analogWrite (bl, fona apgaismojums); }
ja (poga2 == 0) {s = 0; m = m+1; bl_TO = Laika_gaisma; analogWrite (bl, fona apgaismojums); }
/* ---- pārvaldīt sekundes, minūtes, stundas am/pm pārplūdi ----*/ja (s == 60) {s = 0; m = m+1; } ja (m == 60) {m = 0; h = h+1; } ja (h == 13) {h = 1; karogs = karogs+1; ja (karogs == 2) karogs = 0; }
ja ((poga1 == 0) | (poga2 == 0)) // Atjaunināt displeju, ja tiek nospiesta laika iestatīšanas poga {// Atjaunināt LCD displeju // Drukāt LAIKU stundās, minūtēs, sekundēs + AM/PM lcd.setCursor (0, 0); lcd.print ("Laiks"); if (h <10) lcd.print ("0"); // vienmēr 2 cipari lcd.print (h); lcd.print (":"); ja (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); ja (s <10) lcd.print ("0"); lcd.print (s);
ja (karogs == 0) lcd.print ("AM"); ja (karogs == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // 2. rindai lcd.print ("Precīzs pulkstenis"); }
} // beigas, ja citādi} // beigas par
// ārējā 1000ms cilpa
s = s+1; // pieaugums sek. skaitīšana // ---- pārvaldīt sekundes, minūtes, stundas am/pm pārplūdi ---- if (s == 60) {s = 0; m = m+1; } ja (m == 60) {m = 0; h = h+1; } ja (h == 13) {h = 1; karogs = karogs+1; ja (karogs == 2) karogs = 0; }
// Cikla beigas}
3. darbība: shematisks (tas nav īsti solis)
Ja kāds, kas lasa šo, ir tehnoloģiju nerd, šeit ir arī shematisks raksturs, un jūs varat paskatīties, ka tas kļūst traks.
Izbaudiet un izklaidējieties, un galvenais - esiet svaigs.
Ieteicams:
Waveshare E-ink displeja precīzs voltmetrs (0-90v DC) ar Arduino Nano: 3 soļi
Waveshare E-ink displeja precīzs voltmetrs (0–90 V DC) ar Arduino Nano: Šajā instrukcijā es izmantoju 2,9 collu Waveshare E-papīra displeju ar Arduino Nano, sprieguma dalītāju un ADS1115, lai parādītu precīzu spriegumu līdz 90 volti līdzstrāvas E-papīra displejā. Šis norādījums apvieno šos divus iepriekšējos projektus:- Ardui
Arduino precīzs un precīzs voltu mērītājs (0-90V DC): 3 soļi
Arduino precīzs un precīzs voltu mērītājs (0-90V DC): Šajā pamācībā esmu izveidojis voltmetru, lai relatīvi precīzi un precīzi mērītu augstspriegumu DC (0-90v), izmantojot Arduino Nano. Manis veiktie testa mērījumi bija pietiekami precīzi, galvenokārt 0,3 V robežās no faktiskā sprieguma, kas mērīts ar
3D drukāts beigu spēles loka reaktors (filmas precīzs un valkājams): 7 soļi (ar attēliem)
3D drukāts Endgame Arc Reactor (Filmas precīzs un valkājams): pilna Youtube apmācība: Es nevarēju atrast īpaši filmas precīzus 3D failus Mark 50 loka reaktoram/nanodaļiņu korpusam, tāpēc mans draugs un es pagatavojām dažus saldos. Bija jāpielāgo daudz, lai lieta izskatītos precīza un satriecoša
GPSDO YT, disciplinēts oscilators 10Mhz atskaites frekvence. Lēts. Precīzs: 3 soļi
GPSDO YT, disciplinēts oscilators 10Mhz atskaites frekvence. Lēts. Precīzs: ********************************************** ********************************* STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP Šis ir novecojis projekts. Tā vietā pārbaudiet manu jauna 2x16 lcd displeja versija pieejama šeit: https: //www.instructables.com/id
Precīzs YouTube abonentu skaitītājs: 4 soļi
Precīzs YouTube abonentu skaitītājs: Es sāku gatavoties šim projektam apmēram pirms mēneša, bet pēc tam YouTube mani izsita no sliedēm, kad viņi paziņoja, ka vairs nesniegs patieso abonentu skaitu, bet gan tuvāko noapaļoto skaitli. Šobrīd tas īsti nav problēma