Innehållsförteckning:
- Tillbehör
- Steg 1: Kabeldragning
- Steg 2: Koden
- Steg 3: Schematisk (det här är verkligen inte ett steg)
Video: Precisionsklocka: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:40
Vi behöver alla klockor så varför inte göra dina egna i denna instruerbara Jag ska visa dig hur du gör en Precision -klocka när du ställer in kommer automatiskt att hålla reda på den aktuella tiden i bakgrunden av allt. Även om det bara behövs väldigt lite leveranser och noll lödningar.
Tillbehör
Först behöver du en Arduino men vilken Arduino som helst fungerar
Därefter behöver du ett sortiment av generiska bygelkablar.
2 12 mm Sparkfun -knappar
En traditionell brödbräda
och en LCD 1602 16 -stifts display
Steg 1: Kabeldragning
För att den här klockan ska fungera måste du koppla den på ett mycket specifikt sätt, annars får du en massa slumpmässiga nummer på skärmen snarare än tiden.
Steg 2: Koden
Eftersom vi inte använder en RTC kommer koden att bli lite lång men tack och lov har jag gjort allt hårt arbete för dig och tillhandahållit det här.
Bara kopiera och klistra in detta i antingen Arduino IDE eller webbredigeraren.
#inkludera "LiquidCrystal.h"
// Detta definierar LCD -kabeln till DIGITALpins const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
// Digital LCD Constrast -inställning int cs = 9; // pin 9 för kontrast PWM const int contrast = 100; // standardkontrast
// initial tidsvisning är 12:59:45 PM int h = 12; int m = 59; int s = 45; int flagga = 1; // PM
// Tidsinställningsknappar int -knapp1; int -knapp 2;
// Stiftdefinition för tidsuppsättningsknappar int hs = 0; // stift 0 för timinställning int ms = 1; // stift 1 för minutinställning
// Backlight Time Out const int Time_light = 150; int bl_TO = Time_light; // Backlight Time-Out int bl = 10; // Bakgrundsbelysning stift const int bakgrundsbelysning = 120; // inte mer än 7mA !!!
// För exakt tidsavläsning, använd Arduino Real Time Clock och inte bara fördröja () statisk uint32_t last_time, nu = 0; // RTC
void setup () {lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // undvik externa pullup -motstånd för knapp 1 pinMode (ms, INPUT_PULLUP); // och knapp 2 analogWrite (cs, kontrast); // Justera kontrast VO analogWrite (bl, bakgrundsbelysning); // Vrid på bakgrundsbelysning nu = millis (); // läs RTC -initialvärde}
void loop () {lcd.begin (16, 2); // varannan // Uppdatera LCD -skärm // Skriv ut TIME i timme, Min, Sec + AM/PM lcd.setCursor (0, 0); lcd.print ("Tid"); if (h <10) lcd.print ("0"); // alltid 2 siffror lcd.print (h); lcd.print (":"); om (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); om (s <10) lcd.print ("0"); lcd.print (er);
if (flagga == 0) lcd.print ("AM"); if (flagga == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // för rad 2 lcd.print ("Precision clock");
// förbättrad ersättning av fördröjning (1000) // Mycket bättre noggrannhet, inte mer beroende av slingans körtid
för (int i = 0; i <5; i ++) // gör 5 gångers 200 ms loop, för snabbare knappsvar {
medan ((nu-sista_tid) <200) // delay200ms {nu = millis (); } // inre 200ms slinga last_time = nu; // förbered för nästa slinga
// read Setting Buttons button1 = digitalRead (hs); // Read Buttons button2 = digitalRead (ms);
// Tidsgräns för bakgrundsbelysning bl_TO--; if (bl_TO == 0) {analogWrite (bl, 0); // Bakgrundsbelysning AV bl_TO ++; } // Tryck på någon för att aktivera bakgrundsbelysning om (((knapp1 == 0) | (knapp2 == 0)) & (bl_TO == 1)) {bl_TO = Time_light; analogWrite (bl, bakgrundsbelysning); // vänta tills knappen släpps medan ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs); // Read Buttons button2 = digitalRead (ms); }} else // Bearbeta knapp 1 eller knapp 2 när den träffas medan bakgrundsbelysningen är på {if (knapp1 == 0) {h = h+1; bl_TO = Time_light; analogWrite (bl, bakgrundsbelysning); }
om (knapp2 == 0) {s = 0; m = m+1; bl_TO = Time_light; analogWrite (bl, bakgrundsbelysning); }
/* ---- hantera sekunder, minuter, timmar am/pm överflöd ----*/if (s == 60) {s = 0; m = m+1; } om (m == 60) {m = 0; h = h+1; } om (h == 13) {h = 1; flagga = flagga+1; om (flagga == 2) flagga = 0; }
if ((knapp1 == 0) | (knapp2 == 0)) // Uppdatera displayen om knappen för tidsinställning trycks ned {// Uppdatera LCD -display // Skriv ut TID i timme, min, sek + AM/PM lcd.setCursor (0, 0); lcd.print ("Tid"); if (h <10) lcd.print ("0"); // alltid 2 siffror lcd.print (h); lcd.print (":"); om (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); om (s <10) lcd.print ("0"); lcd.print (er);
if (flagga == 0) lcd.print ("AM"); if (flagga == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // för rad 2 lcd.print ("Precisionsklocka"); }
} // slut om annat} // slut för
// yttre 1000ms slinga
s = s+1; // inkrement sek. räkna // ---- hantera sekunder, minuter, timmar am/pm överflöd ---- om (s == 60) {s = 0; m = m+1; } om (m == 60) {m = 0; h = h+1; } om (h == 13) {h = 1; flagga = flagga+1; om (flagga == 2) flagga = 0; }
// Loop end}
Steg 3: Schematisk (det här är verkligen inte ett steg)
Om någon som läser detta är en teknisk nörd här är också en schematisk kan du titta på det blir galet.
Njut och ha kul och håll dig mest fräsch.
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg
Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg
Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Steg-för-steg-utbildning i robotik med ett kit: 6 steg
Steg-för-steg-utbildning i robotik med ett kit: Efter ganska många månader av att bygga min egen robot (se alla dessa), och efter att två gånger ha misslyckats med delar, bestämde jag mig för att ta ett steg tillbaka och tänka om min strategi och riktning. De flera månaders erfarenhet var ibland mycket givande och
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)