Sisukord:
Video: Täppiskell: 3 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Me kõik vajame kellasid, nii et miks mitte teha selles juhendis oma käed? Näitan teile, kuidas teha täpsuskella, kui olete määranud, jälgib automaatselt kõikide taustal praegust aega. Kuigi see vajab ka väga vähe tarneid ja nulljootmist.
Tarvikud
Esiteks vajate Arduinot, kuid mis tahes Arduino töötab
Järgmisena vajate valikut üldisi hüppajajuhtmeid.
2 12mm Sparkfuni klahvilülitit
Traditsiooniline leivalaud
ja 16 -kontaktiline LCD 1602 ekraan
Samm: juhtmestik
Selleks, et see kell töötaks, peate selle ühendama väga spetsiifilisel viisil, vastasel juhul saate ekraanile hulga juhuslikke numbreid, mitte kellaaega.
2. samm: kood
Kuna me ei kasuta RTC -d, läheb kood natuke pikaks, kuid õnneks olen teinud teie heaks kogu raske töö ja esitanud selle siin.
Lihtsalt kopeerige ja kleepige see kas Arduino IDE -sse või veebiredaktorisse.
#include "LiquidCrystal.h"
// See määratleb LCD juhtmestiku DIGITALpins konstantidega rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal LCD (rs, en, d4, d5, d6, d7);
// Digitaalse vedelkristallekraani seadistus int cs = 9; // tihvt 9 kontrasti jaoks PWM const int kontrast = 100; // vaikekontrast
// esialgne kellaaeg on 12:59:45 PM int h = 12; int m = 59; int s = 45; int lipp = 1; // PM
// Aja määramise nupud int nupp1; int nupp2;
// Aja määramise nuppude tihvtide määratlus int hs = 0; // tihvt 0 tundide seadistamiseks int ms = 1; // pin 1 minutite seadistamiseks
// Taustavalguse ajavahemiku konst int int Time_light = 150; int bl_TO = Time_light; // Taustavalguse ajalõpp int bl = 10; // Taustavalgustuse tihvt konst int taustvalgus = 120; // mitte rohkem kui 7mA !!!
// Täpseks aja lugemiseks kasutage Arduino reaalajas kella ja mitte ainult delay () staatilist uint32_t last_time, now = 0; // RTC
void setup () {lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // vältige nupu 1 pinMode (ms, INPUT_PULLUP) väliseid tõmbetakistusi; // ja nupp 2 analogWrite (cs, kontrast); // Reguleerige kontrastsust VO analogWrite (bl, taustvalgus); // pööra taustvalgusel kohe = millis (); // RTC algväärtuse lugemine}
void loop () {lcd.begin (16, 2); // iga sekund // Värskenda LCD -ekraani // Prindi TIME in Hour, Min, Sec + AM/PM lcd.setCursor (0, 0); lcd.print ("Aeg"); if (h <10) lcd.print ("0"); // alati 2 numbrit lcd.print (h); lcd.print (":"); kui (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); kui (s <10) lcd.print ("0"); lcd.print (s);
if (lipp == 0) lcd.print ("AM"); if (lipp == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // rea 2 lcd.print ("Täppekell");
// täiustatud viivituse asendamine (1000) // Palju parem täpsus, ei sõltu enam tsükli täitmise ajast
jaoks (int i = 0; i <5; i ++) // tehke 5 -kordne 200 ms tsükkel, kiiremaks nupu reageerimiseks {
while ((nüüd-viimane_aeg) <200) // delay200ms {now = millis (); } // sisemine 200 ms silmus last_time = now; // valmistuge järgmiseks tsükliks
// nupp lugemisnuppude lugemine1 = digitalRead (hs); // nuppude lugemine nupp2 = digitalRead (ms);
// Taustavalguse aeg out bl_TO--; if (bl_TO == 0) {analogWrite (bl, 0); // Taustavalgus VÄLJA bl_TO ++; } // Taustvalgustuse aktiveerimiseks vajutage ükskõik millist, kui ((((nupp1 == 0) | (nupp2 == 0)) & (bl_TO == 1)) {bl_TO = Ajavalgus; analogWrite (bl, taustvalgus); // oodake, kuni nupp vabastatakse ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs); // nuppude lugemise nupp2 = digitalRead (ms); }} else // Töötle nuppu 1 või nuppu 2, kui taustavalgus on sisse lülitatud {if (button1 == 0) {h = h+1; bl_TO = Aegvalgus; analogWrite (bl, taustvalgus); }
kui (nupp2 == 0) {s = 0; m = m+1; bl_TO = Aegvalgus; analogWrite (bl, taustvalgus); }
/* ---- hallata sekundeid, minuteid, tunde am/pm overflow ----*/if (s == 60) {s = 0; m = m+1; } kui (m == 60) {m = 0; h = h+1; } kui (h == 13) {h = 1; lipp = lipp+1; kui (lipp == 2) lipp = 0; }
if ((nupp1 == 0) | (nupp2 == 0)) // Värskenda kuva, kui kellaaja seadistusnuppu vajutatakse {// Värskenda LCD -ekraani // Prindi TIME in Hour, Min, Sec + AM/PM lcd.setCursor (0, 0); lcd.print ("Aeg"); if (h <10) lcd.print ("0"); // alati 2 numbrit lcd.print (h); lcd.print (":"); kui (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); kui (s <10) lcd.print ("0"); lcd.print (s);
if (lipp == 0) lcd.print ("AM"); if (lipp == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // rea 2 lcd.print ("Täppekell"); }
} // lõpp, kui muidu} // lõpp jaoks
// välimine 1000 ms silmus
s = s+1; // juurdekasv sek. loendamine // ---- hallata sekundeid, minuteid, tunde am/pm overflow ---- if (s == 60) {s = 0; m = m+1; } kui (m == 60) {m = 0; h = h+1; } kui (h == 13) {h = 1; lipp = lipp+1; kui (lipp == 2) lipp = 0; }
// Tsükli lõpp}
Samm: skemaatiline (see pole tegelikult samm)
Kui keegi, kes seda loeb, on siin tehnikahull, on siin ka skemaatiline, võite vaadata, et see läheb hulluks.
Nautige ja nautige ning ennekõike jääge värskeks.
Soovitan:
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Akustiline levitatsioon Arduino Unoga samm-sammult (8 sammu): 8 sammu
Akustiline levitatsioon Arduino Uno abil samm-sammult (8 sammu): ultraheliheli muundurid L298N DC-naissoost adapteri toiteallikas isase alalisvoolupistikuga Arduino UNOBreadboard ja analoogpordid koodi teisendamiseks (C ++)
4G/5G HD -video otseülekanne DJI droonilt madala latentsusega [3 sammu]: 3 sammu
4G/5G HD-video otseülekanne DJI droonilt madala latentsusega [3 sammu]: Järgnev juhend aitab teil saada HD-kvaliteediga otseülekandeid peaaegu igalt DJI droonilt. FlytOSi mobiilirakenduse ja veebirakenduse FlytNow abil saate alustada drooni video voogesitust
Polt - DIY juhtmeta laadimise öökell (6 sammu): 6 sammu (piltidega)
Bolt - DIY juhtmeta laadimise öökell (6 sammu): Induktiivsed laadimised (tuntud ka kui juhtmeta laadimine või juhtmeta laadimine) on traadita jõuülekande tüüp. See kasutab kaasaskantavatele seadmetele elektrit pakkumiseks elektromagnetilist induktsiooni. Kõige tavalisem rakendus on Qi traadita laadimisst
4 sammu aku sisemise takistuse mõõtmiseks: 4 sammu
4 sammu aku sisemise takistuse mõõtmiseks: Siin on 4 lihtsat sammu, mis aitavad mõõta taigna sisemist takistust