INHOUDSOPGAWE:
Video: Presisieklok: 3 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Ons het almal horlosies nodig, so hoekom maak u nie u eie in hierdie instruksionele nie, gaan ek u wys hoe u 'n presiese horlosie kan maak sodra u dit ingestel het, outomaties die huidige tyd op die agtergrond van alles byhou. Alhoewel dit slegs baie benodigdhede en nul soldeersels benodig.
Voorrade
Eerstens benodig u 'n Arduino, maar enige Arduino werk
Vervolgens benodig u 'n verskeidenheid algemene draaddrade.
2 12 mm Sparkfun -drukknopskakelaars
'N Tradisionele broodbord
en 'n 1660 -skerm LCD 1602 -skerm
Stap 1: Bedrading
Om hierdie horlosie te laat werk, moet u dit op 'n baie spesifieke manier bedraad, anders kry u 'n klomp ewekansige getalle op die skerm eerder as die tyd.
Stap 2: Die kode
Aangesien ons nie 'n RTC gebruik nie, sal die kode 'n bietjie lank wees, maar gelukkig het ek al die harde werk vir u gedoen en dit hier verskaf.
Kopieer en plak dit óf in die Arduino IDE óf in die webredakteur.
#sluit "LiquidCrystal.h" in
// Dit definieer die LCD -bedrading na die DIGITALpins const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
// Digitale LCD Constrast -instelling int cs = 9; // pen 9 vir kontras PWM const int contrast = 100; // standaard kontras
// aanvanklike tydsvertoning is 12:59:45 PM int h = 12; int m = 59; int s = 45; int vlag = 1; // PM
// Tydsinstellingsknoppies int knoppie1; int knoppie2;
// Pins definisie vir Time Set Buttons int hs = 0; // pin 0 for Hours Setting int ms = 1; // pin 1 for Minutes Setting
// Backlight Time Out const int Time_light = 150; int bl_TO = Time_light; // Backlight Time-Out int bl = 10; // Backlight pin const int backlight = 120; // nie meer as 7mA nie !!!
// Vir akkurate tydlesing, gebruik Arduino Real Time Clock en vertraag nie net () statiese uint32_t last_time nie, nou = 0; // RTC
ongeldige opstelling () {lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // vermy eksterne Pullup -weerstande vir Button 1 pinMode (ms, INPUT_PULLUP); // en Button 2 analogWrite (cs, kontras); // Pas kontras VO analogWrite aan (bl, agtergrond); // Draai nou op agtergrond = millis (); // lees RTC se aanvanklike waarde}
leegte -lus () {lcd.begin (16, 2); // elke sekonde // Werk LCD -skerm op // Druk TYD in uur, min., sek. + AM/PM lcd.setCursor (0, 0); lcd.print ("Tyd"); as (h <10) lcd.print ("0"); // altyd 2 syfers lcd.print (h); lcd.print (":"); as (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); as (s <10) lcd.print ("0"); lcd.print (s);
as (vlag == 0) lcd.print ("AM"); as (vlag == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // vir reël 2 lcd.print ("presisieklok");
// verbeterde vervanging van vertraging (1000) // Baie beter akkuraatheid, nie meer afhanklik van lusuitvoeringstyd nie
for (int i = 0; i <5; i ++) // maak 5 keer 200ms lus, vir vinniger knoppie -reaksie {
terwyl ((nou-laaste_tyd) <200) // delay200ms {nou = millis (); } // binneste 200ms lus last_time = nou; // berei u voor vir die volgende lus
// lees Knoppie knoppies instel1 = digitalRead (hs); // Knoppies leesknoppies2 = digitalRead (ms);
// Tydsverloop teen agtergrond bl_TO--; as (bl_TO == 0) {analogWrite (bl, 0); // Backlight OFF bl_TO ++; } // Druk op enige om die agtergrond te aktiveer as (((knoppie1 == 0) | (knoppie2 == 0)) en (bl_TO == 1)) {bl_TO = Tydslig; analogWrite (bl, agtergrond); // wag totdat Knoppie vrygestel word terwyl ((knoppie1 == 0) | (knoppie2 == 0)) {knoppie1 = digitalRead (hs); // Lees knoppies knoppie2 = digitalRead (ms); }} anders // Verwerk knoppie 1 of knoppie 2 wanneer dit getref word terwyl die agtergrond aan {if (button1 == 0) {h = h+1; bl_TO = Tydslig; analogWrite (bl, agtergrond); }
as (knoppie2 == 0) {s = 0; m = m+1; bl_TO = Tydslig; analogWrite (bl, agtergrond); }
/* ---- bestuur sekondes, minute, ure am/pm oorloop ----*/if (s == 60) {s = 0; m = m+1; } as (m == 60) {m = 0; h = h+1; } as (h == 13) {h = 1; vlag = vlag+1; as (vlag == 2) vlag = 0; }
if ((knoppie1 == 0) | (knoppie2 == 0)) // Opdateer die vertoning as die tydstelknoppie ingedruk word {// Werk LCD -skerm op // Druk TYD in uur, min, sek + AM/PM lcd.setCursor (0, 0); lcd.print ("Tyd"); as (h <10) lcd.print ("0"); // altyd 2 syfers lcd.print (h); lcd.print (":"); as (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); as (s <10) lcd.print ("0"); lcd.print (s);
as (vlag == 0) lcd.print ("AM"); as (vlag == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // vir reël 2 lcd.print ("presisieklok"); }
} // end if else} // end for
// buitenste 1000ms lus
s = s+1; // toename sek. tel // ---- beheer sekondes, minute, ure am/pm oorloop ---- as (s == 60) {s = 0; m = m+1; } as (m == 60) {m = 0; h = h+1; } as (h == 13) {h = 1; vlag = vlag+1; as (vlag == 2) vlag = 0; }
// Lus einde}
Stap 3: Skematiese (dit is nie regtig 'n stap nie)
As iemand wat dit lees 'n tegniese nerd is, is dit ook 'n skematiese skema, u kan gek daaroor kyk.
Geniet dit en geniet dit en bly veral vars.
Aanbeveel:
Spelontwerp in vyf stappe: 5 stappe
Spelontwerp in fliek in 5 stappe: Flick is 'n baie eenvoudige manier om 'n speletjie te maak, veral iets soos 'n legkaart, visuele roman of avontuurlike spel
Gesigsopsporing op Raspberry Pi 4B in 3 stappe: 3 stappe
Gesigsopsporing op Raspberry Pi 4B in 3 stappe: in hierdie instruksies gaan ons gesigsopsporing uitvoer op Raspberry Pi 4 met Shunya O/S met behulp van die Shunyaface-biblioteek. Shunyaface is 'n biblioteek vir gesigherkenning/opsporing. Die projek het ten doel om die vinnigste opsporing en herkenningssnelheid te bereik met
DIY Vanity Mirror in eenvoudige stappe (met LED -strookligte): 4 stappe
DIY Vanity Mirror in eenvoudige stappe (met behulp van LED Strip Lights): In hierdie pos het ek 'n DIY Vanity Mirror gemaak met behulp van die LED strips. Dit is regtig cool, en u moet dit ook probeer
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): 6 stappe
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): wil u u vriende skrik en 'n skreeu geraas maak tydens Halloween? Of wil u net 'n goeie grap maak? Hierdie pop-up skerm van Zombies kan dit doen! In hierdie instruksies sal ek u leer hoe u maklik Zombies kan spring deur Arduino te gebruik. Die HC-SR0
Speel Doom op u iPod in 5 maklike stappe !: 5 stappe
Speel Doom op u iPod in 5 maklike stappe !: 'n Stap-vir-stap gids oor hoe u Rockbox op u iPod kan dubbellaai om Doom en tientalle ander speletjies te speel. Dit is iets baie maklik om te doen, maar baie mense staan nog steeds verbaas as hulle sien hoe ek op my iPod doom speel en deurmekaar raak met die instruksies