Innholdsfortegnelse:
Video: Presisjonsklokke: 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Vi trenger alle klokker, så hvorfor ikke lage din egen i denne instruksjonsfulle jeg skal vise deg hvordan du lager en presisjonsklokke når du setter den automatisk vil holde oversikt over gjeldende tid i bakgrunnen av alt. Selv om den bare trenger veldig lite utstyr og null lodding.
Rekvisita
Først trenger du en Arduino, men enhver Arduino vil fungere
Deretter trenger du et utvalg av generiske hoppetråder.
2 12 mm Sparkfun trykknappbrytere
Et tradisjonelt brødbrett
og en LCD 1602 16 -pinners skjerm
Trinn 1: Kabling
For at denne klokken skal fungere, må du koble denne på en veldig spesifikk måte, ellers får du en haug med tilfeldige tall på skjermen i stedet for tiden.
Trinn 2: Koden
Siden vi ikke bruker en RTC, kommer koden til å bli litt lang, men heldigvis har jeg gjort alt hardt arbeid for deg og gitt den her.
Bare kopier og lim dette inn i enten Arduino IDE eller webredigereren.
#include "LiquidCrystal.h"
// Dette definerer LCD -ledningene til 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 -innstilling int cs = 9; // pin 9 for kontrast PWM const int contrast = 100; // standardkontrast
// innledende tidsvisning er 12:59:45 PM int h = 12; int m = 59; int s = 45; int flagg = 1; // PM
// Time Set Buttons int button1; int -knapp 2;
// Pins definisjon for Time Set Buttons int hs = 0; // pin 0 for Timer Setting int ms = 1; // pin 1 for Minutes Setting
// Backlight Time Out const int Time_light = 150; int bl_TO = Time_light; // Time-Out for bakgrunnsbelysning int bl = 10; // Bakgrunnsbelysning pin const int bakgrunnsbelysning = 120; // ikke mer enn 7mA !!!
// For nøyaktig tidsavlesning, bruk Arduino sanntidsklokke og ikke bare forsink () statisk uint32_t siste_tid, nå = 0; // RTC
ugyldig oppsett () {lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // unngå eksterne Pullup -motstander for knapp 1 pinMode (ms, INPUT_PULLUP); // og knapp 2 analogWrite (cs, kontrast); // Juster kontrast VO analogWrite (bl, bakgrunnsbelysning); // Turn på bakgrunnsbelysning nå = millis (); // les innledende verdi for RTC}
void loop () {lcd.begin (16, 2); // hvert sekund // Oppdater LCD -skjerm // Print TIME in Hour, Min, Sec + AM/PM lcd.setCursor (0, 0); lcd.print ("Tid"); hvis (h <10) lcd.print ("0"); // alltid 2 siffer lcd.print (h); lcd.print (":"); hvis (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); hvis (s <10) lcd.print ("0"); lcd.print (r);
hvis (flagg == 0) lcd.print ("AM"); if (flag == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // for Linje 2 lcd.print ("Presisjonsklokke");
// forbedret utskifting av forsinkelse (1000) // Mye bedre nøyaktighet, ikke mer avhengig av sløyfekjøringstid
for (int i = 0; i <5; i ++) // lag 5 gangers 200 ms sløyfe, for raskere knapprespons {
mens ((nå-siste_tid) <200) // forsinkelse200ms {nå = millis (); } // indre 200 ms sløyfe siste_tid = nå; // forbered deg på neste sløyfe
// lese Innstillingsknapper button1 = digitalRead (hs); // Read Buttons button2 = digitalRead (ms);
// Tidsavbrudd for motlys bl_TO--; hvis (bl_TO == 0) {analogWrite (bl, 0); // Bakgrunnsbelysning AV bl_TO ++; } // Trykk på hvilken som helst for å aktivere bakgrunnsbelysning hvis (((knapp1 == 0) | (knapp2 == 0)) og (bl_TO == 1)) {bl_TO = Time_light; analogWrite (bl, bakgrunnsbelysning); // vent til knappen slippes mens ((knapp1 == 0) | (knapp2 == 0)) {knapp1 = digitalRead (hs); // Leseknapper -knapp2 = digitalRead (ms); }} else // Behandle knapp 1 eller knapp 2 når du treffer den mens bakgrunnsbelysning er på {hvis (knapp1 == 0) {h = h+1; bl_TO = Time_light; analogWrite (bl, bakgrunnsbelysning); }
hvis (knapp2 == 0) {s = 0; m = m+1; bl_TO = Time_light; analogWrite (bl, bakgrunnsbelysning); }
/* ---- administrer sekunder, minutter, timer am/pm overløp ----*/if (s == 60) {s = 0; m = m+1; } hvis (m == 60) {m = 0; h = h+1; } hvis (h == 13) {h = 1; flagg = flagg+1; hvis (flagg == 2) flagg = 0; }
hvis ((knapp1 == 0) | (knapp2 == 0)) // Oppdater visning hvis tidsinnstillingsknappen trykkes ned {// Oppdater LCD -skjerm // Skriv ut TID i time, min, sek + AM/PM lcd.setCursor (0, 0); lcd.print ("Tid"); hvis (h <10) lcd.print ("0"); // alltid 2 siffer lcd.print (h); lcd.print (":"); hvis (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); hvis (s <10) lcd.print ("0"); lcd.print (r);
hvis (flagg == 0) lcd.print ("AM"); if (flag == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // for Linje 2 lcd.print ("Presisjonsklokke"); }
} // ende hvis annet} // ende for
// ytre 1000ms sløyfe
s = s+1; // økning sek. telling // ---- administrer sekunder, minutter, timer am/pm overløp ---- if (s == 60) {s = 0; m = m+1; } hvis (m == 60) {m = 0; h = h+1; } hvis (h == 13) {h = 1; flagg = flagg+1; hvis (flagg == 2) flagg = 0; }
// Sløyfe -slutt}
Trinn 3: Skjematisk (dette er egentlig ikke et trinn)
Hvis noen som leser dette er en teknisk nerd, er dette også en skjematisk du kan se på at det blir gal.
Nyt og ha det gøy, og vær mest frisk.
Anbefalt:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Trinn for trinn PC -bygging: 9 trinn
Steg for trinn PC -bygging: Rekvisita: Maskinvare: HovedkortCPU & CPU -kjøler PSU (strømforsyningsenhet) Lagring (HDD/SSD) RAMGPU (ikke nødvendig) CaseTools: Skrutrekker ESD -armbånd/mathermal pasta m/applikator
Tre høyttalerkretser -- Trinn-for-trinn opplæring: 3 trinn
Tre høyttalerkretser || Trinn-for-trinn opplæring: Høyttalerkretsen styrker lydsignalene som mottas fra miljøet til MIC og sender den til høyttaleren der forsterket lyd produseres. Her vil jeg vise deg tre forskjellige måter å lage denne høyttalerkretsen på:
RC -sporet robot ved hjelp av Arduino - Trinn for trinn: 3 trinn
RC -sporet robot ved bruk av Arduino - Steg for trinn: Hei folkens, jeg er tilbake med et annet kult Robot -chassis fra BangGood. Håper du har gått gjennom våre tidligere prosjekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms og The Badland Braw
Hvordan lage et nettsted (en trinn-for-trinn-guide): 4 trinn
Hvordan lage et nettsted (en trinn-for-trinn-guide): I denne veiledningen vil jeg vise deg hvordan de fleste webutviklere bygger nettstedene sine og hvordan du kan unngå dyre nettstedbyggere som ofte er for begrenset til et større nettsted. hjelpe deg med å unngå noen feil som jeg gjorde da jeg begynte