Kazalo:
Video: Natančna ura: 3 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
Vsi potrebujemo ure, zato zakaj si v tem navodilu ne bi naredili svojega, vam bom pokazal, kako narediti natančno uro, ko nastavite, da bo samodejno spremljala trenutni čas v ozadju vsega. Medtem ko potrebujete le zelo malo zalog in nič spajkanja.
Zaloge
Najprej boste potrebovali Arduino, vendar bo kateri koli Arduino deloval
Nato boste potrebovali izbor splošnih mostičnih žic.
2 12mm stikalna stikala Sparkfun
Tradicionalna deska
in 16 -polni zaslon LCD 1602
1. korak: Ožičenje
Če želite, da ta ura deluje, morate to povezati na zelo poseben način, sicer boste na zaslonu namesto časa dobili več naključnih števil.
2. korak: Koda
Ker ne uporabljamo RTC, bo koda malce dolga, a na srečo sem za vas opravil vse trdo delo in ga posredoval tukaj.
To preprosto kopirajte in prilepite v Arduino IDE ali spletni urejevalnik.
#include "LiquidCrystal.h"
// To definira ožičenje LCD na DIGITALpins const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LCD tekoči kristal (rs, en, d4, d5, d6, d7);
// Nastavitev omejitve digitalnega LCD -ja int cs = 9; // pin 9 za kontrast PWM const int kontrast = 100; // privzeti kontrast
// začetni prikaz časa je 12:59:45 PM int h = 12; int m = 59; int s = 45; int zastavica = 1; // popoldan
// Gumbi za nastavitev časa int button1; gumb int2;
// Definicija nožic za gumbe za nastavitev časa int hs = 0; // pin 0 za nastavitev ur int ms = 1; // pin 1 za nastavitev minut
// Backlight Time Out const int Time_light = 150; int bl_TO = Time_light; // Čas osvetlitve ozadja int bl = 10; // osvetlitev pin const int osvetlitev ozadja = 120; // ne več kot 7mA !!!
// Za natančno odčitavanje časa uporabite uro Arduino v realnem času in ne samo zakasnite () static uint32_t last_time, now = 0; // RTC
void setup () {lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // se izogibajte zunanjim uporovnim uporom za gumb 1 pinMode (ms, INPUT_PULLUP); // in gumb 2 analogWrite (cs, kontrast); // Prilagodite kontrast VO analogWrite (bl, osvetlitev ozadja); // Vklopite vklop osvetlitve ozadja = millis (); // preberite začetno vrednost RTC}
void loop () {lcd.begin (16, 2); // vsako sekundo // Posodobi LCD zaslon // Natisni TIME v Uri, Min, Sec + AM/PM lcd.setCursor (0, 0); lcd.print ("Čas"); if (h <10) lcd.print ("0"); // vedno 2 števki lcd.print (h); lcd.print (":"); if (m <10) lcd.print ("0"); lcd.tisk (m); lcd.print (":"); if (s <10) lcd.print ("0"); lcd.tisk (i);
if (flag == 0) lcd.print ("AM"); if (zastava == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // za vrstico 2 lcd.print ("Precision clock");
// izboljšana zamenjava zakasnitve (1000) // Veliko boljša natančnost, ni več odvisna od časa izvajanja zanke
for (int i = 0; i <5; i ++) // naredimo 5 -kratno zanko 200 ms, za hitrejši odziv gumba {
while ((now-last_time) <200) // zamuda200ms {zdaj = millis (); } // notranja zanka 200 ms last_time = now; // priprava na naslednjo zanko
// branje gumbov za nastavitev button1 = digitalRead (hs); // Button Button button2 = digitalRead (ms);
// Časovna omejitev osvetlitve ozadja bl_TO--; if (bl_TO == 0) {analogWrite (bl, 0); // osvetlitev ozadja izklopljena bl_TO ++; } // Pritisnite katero koli, da aktivirate osvetlitev ozadja, če (((button1 == 0) | (button2 == 0)) & (bl_TO == 1)) {bl_TO = Time_light; analogWrite (bl, osvetlitev ozadja); // počakajte, da se gumb sprosti while ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs); // Button Button button2 = digitalRead (ms); }} else // Obdelaj gumb 1 ali gumb 2, ko pritisneš, ko je osvetlitev vklopljena {if (button1 == 0) {h = h+1; bl_TO = Časovna svetloba; analogWrite (bl, osvetlitev ozadja); }
če (button2 == 0) {s = 0; m = m+1; bl_TO = Časovna svetloba; analogWrite (bl, osvetlitev ozadja); }
/* ---- upravljanje sekund, minut, ur am/pm overflow ----*/if (s == 60) {s = 0; m = m+1; } če (m == 60) {m = 0; h = h+1; } če (h == 13) {h = 1; zastava = zastava+1; if (zastava == 2) zastava = 0; }
if ((button1 == 0) | (button2 == 0)) // Posodobi prikaz, če pritisnete gumb za nastavitev časa {// Posodobi LCD zaslon // Natisni TIME v uri, minuti, sekundah + AM/PM lcd.setCursor (0, 0); lcd.print ("Čas"); if (h <10) lcd.print ("0"); // vedno 2 števki lcd.print (h); lcd.print (":"); if (m <10) lcd.print ("0"); lcd.tisk (m); lcd.print (":"); if (s <10) lcd.print ("0"); lcd.print (s);
if (flag == 0) lcd.print ("AM"); if (zastava == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // za vrstico 2 lcd.print ("Precision clock"); }
} // konec, če je drugače} // konec za
// zunanja zanka 1000ms
s = s+1; // prirast sek. štetje // ---- upravljanje sekund, minut, ur am/pm overflow ---- if (s == 60) {s = 0; m = m+1; } če (m == 60) {m = 0; h = h+1; } če (h == 13) {h = 1; zastava = zastava+1; if (zastava == 2) zastava = 0; }
// konec zanke}
3. korak: Shema (to res ni korak)
Če je kdo, ki to bere, tehnološki norček, je tukaj tudi shema, ki jo lahko pogledate noro.
Uživajte in se zabavajte, predvsem pa ostanite sveži.
Priporočena:
Ura za upokojitev / štetje navzgor / ura Dn: 4 koraki (s slikami)
Ura za upokojitev / Odštevanje / Ura Dn: Nekaj teh 8-palčnih LED matričnih zaslonov 8x8 sem imel v predalu in razmišljal, kaj bi z njimi. Navdihnjen z drugimi navodili sem dobil idejo, da bi sestavil zaslon za odštevanje/navzgor za odštevanje do prihodnjega datuma/časa in če je ciljni čas p
Natančna svetlobna pištola Wiimote za Raspberry PI: 9 korakov (s slikami)
Natančna svetlobna pištola Wiimote za Raspberry PI: daljinski upravljalnik Wii, ki se uporablja kot svetlobna pištola, običajno ni dovolj natančen za retro igre, kot je NES Duck Hunt, ker daljinski upravljalnik Wii dejansko ne izbere točke na televizorju, na katerega je usmerjen. Ne more! Wii Remote ima na sprednji strani infrardečo kamero
ESP8266 Omrežna ura brez RTC - Nodemcu NTP Ura brez RTC - PROJEKT INTERNETNE URE: 4 koraki
ESP8266 Omrežna ura brez RTC | Nodemcu NTP Ura brez RTC | PROJEKT INTERNETNE URE: V projektu bo izdelan projekt ure brez RTC, vzelo si bo čas za internet z uporabo WiFi in ga bo prikazal na zaslonu st7735
Ura Gixie: Najlepša ura s sijočo cevjo: 4 koraki
Ura Gixie: Najlepša ura s svetlečo cevko: Nixie Tube mi je zelo všeč, vendar je predraga, tega si ne morem privoščiti. Tako sem pol leta ustvarjal to uro Gixie. Ura Gixie je dosežena z osvetlitvijo ws2812 za izdelavo akrilne svetlobe. Potrudim se, da bi bila cev RGB tanjša
Natančna peristaltična črpalka: 13 korakov
Natančna peristaltična črpalka: Smo študentska ekipa iz različnih disciplin univerze RWTH Aachen in smo ta projekt ustvarili v okviru tekmovanja iGEM 2017. Po vsem delu, ki je bilo vloženo v našo črpalko, bi radi svoje rezultate delili z vami ! Zgradili smo