Inhoudsopgave:
Video: Precisieklok: 3 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
We hebben allemaal klokken nodig, dus waarom zou je er niet zelf een maken in deze instructable. Ik ga je laten zien hoe je een precisieklok kunt maken zodra je deze hebt ingesteld, die automatisch de huidige tijd op de achtergrond van alles bijhoudt. Terwijl je ook maar heel weinig benodigdheden nodig hebt en geen soldeerwerk.
Benodigdheden
Eerst heb je een Arduino nodig, maar elke Arduino zal werken
Vervolgens hebt u een assortiment generieke jumperdraden nodig.
2 Sparkfun-drukknopschakelaars van 12 mm
Een traditionele Breadboard
en een LCD 1602 16-pins display
Stap 1: Bedrading
Om deze klok te laten werken, moet je deze op een heel specifieke manier bedraden, anders krijg je een aantal willekeurige getallen op het scherm in plaats van de tijd.
Stap 2: De code
Aangezien we geen RTC gebruiken, zal de code een beetje lang zijn, maar gelukkig heb ik al het harde werk voor je gedaan en hier verstrekt.
Kopieer en plak dit gewoon in de Arduino IDE of de webeditor.
#include "LiquidCrystal.h"
// Dit definieert de LCD-bedrading naar de 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-contrastinstelling int cs=9;// pin 9 voor contrast PWM const int contrast = 100;// standaard contrast
// initiële tijdweergave is 12:59:45 uur int h=12; intm=59; int s=45; int vlag=1; //P. M
// Tijdinstelknoppen int button1; int-knop2;
// Pinsdefinitie voor Time Set Buttons int hs=0;// pin 0 voor Ureninstelling int ms=1;// pin 1 voor Minutes Setting
// Time-out achtergrondverlichting const int Time_light=150; int bl_TO=Time_light;// Time-out achtergrondverlichting int bl=10; // Achtergrondverlichting pin const int achtergrondverlichting = 120; // niet meer dan 7mA !!!
// Gebruik voor nauwkeurige tijdaflezing Arduino Real Time Clock en niet alleen delay() static uint32_t last_time, now = 0; // RTC
void setup() { lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP);// vermijd externe Pullup-weerstanden voor knop 1 pinMode (ms, INPUT_PULLUP);// en knop 2 analogWrite (cs, contrast);// Pas contrast aan VO analogWrite (bl, achtergrondverlichting);// Draai op Achtergrondverlichting nu=millis(); // lees RTC initiële waarde}
void loop() { lcd.begin (16, 2);// elke seconde // Update LCD-scherm // Print TIJD in uur, min, sec + AM/PM lcd.setCursor (0, 0); lcd.print("Tijd"); if(h<10)lcd.print("0");// altijd 2 cijfers lcd.print(h); lcd.print(":"); if(m<10)lcd.print("0"); lcd.afdruk(m); lcd.print(":"); if(s<10)lcd.print("0"); lcd.afdruk(ken);
if(flag==0) lcd.print("AM"); if(vlag==1) lcd.print("PM"); lcd.setCursor (0, 1);// voor Line 2 lcd.print ("Precisieklok");
// verbeterde vervanging van vertraging (1000) // Veel betere nauwkeurigheid, niet meer afhankelijk van de uitvoeringstijd van de lus
for (int i=0;i<5;i++)// maak een lus van 5 keer 200 ms, voor snellere knopreactie {
while ((nu-laatste_tijd)<200) //delay200ms { now=millis(); } // binnenste lus van 200 ms last_time=nu; // bereid je voor op de volgende lus
// lees Instellingsknoppen button1=digitalRead (hs);// Read Buttons button2=digitalRead (ms);
// Time-out achtergrondverlichting bl_TO--; if(bl_TO==0) {analogeWrite(bl, 0);// Achtergrondverlichting UIT bl_TO++; } // Druk op een willekeurige om achtergrondverlichting te activeren if(((button1==0)|(button2==0)) & (bl_TO==1)) { bl_TO=Time_light; analogWrite(bl, achtergrondverlichting); // wacht tot de knop wordt losgelaten terwijl ((button1==0)|(button2==0)) { button1=digitalRead (hs);// Read Buttons button2=digitalRead (ms); } } else // Verwerk knop 1 of knop 2 wanneer geraakt terwijl de achtergrondverlichting aan is { if(button1==0){ h=h+1; bl_TO=Tijd_licht; analogWrite(bl, achtergrondverlichting); }
if(knop2==0){ s=0; m=m+1; bl_TO=Tijd_licht; analogWrite(bl, achtergrondverlichting); }
/* ---- beheer seconden, minuten, uren am/pm overflow ----*/ if(s==60){ s=0; m=m+1; } als(m==60) { m=0; h=h+1; } if(h==13) { h=1; vlag=vlag+1; if(vlag==2)vlag=0; }
if((button1==0)|(button2==0))// Update het display als de tijdset-knop is ingedrukt { // Update het LCD-scherm // Print TIME in Hour, Min, Sec + AM/PM lcd.setCursor(0, 0); lcd.print("Tijd"); if(h<10)lcd.print("0");// altijd 2 cijfers lcd.print(h); lcd.print(":"); if(m<10)lcd.print("0"); lcd.afdruk(m); lcd.print(":"); if(s<10)lcd.print("0"); lcd.afdruk(ken);
if(flag==0) lcd.print("AM"); if(vlag==1) lcd.print("PM"); lcd.setCursor (0, 1);// voor Line 2 lcd.print ("Precisieklok"); }
} // end if else }// end for
// buitenste lus van 1000 ms
s=s+1; // verhoog sec. tellen // ---- beheren seconden, minuten, uren am/pm overflow ---- if(s==60){ s=0; m=m+1; } als(m==60) { m=0; h=h+1; } if(h==13) { h=1; vlag=vlag+1; if(vlag==2)vlag=0; }
// Lus einde}
Stap 3: Schematisch (dit is niet echt een stap)
Als iemand die dit leest een technische nerd is, hier is ook een schema, je kunt er gek van worden.
Geniet en veel plezier en blijf vooral vers.
Aanbevolen:
Game Design in Flick in 5 stappen: 5 stappen
Game-ontwerp in Flick in 5 stappen: Flick is een heel eenvoudige manier om een game te maken, vooral zoiets als een puzzel, visuele roman of avonturengame
Gezichtsdetectie op Raspberry Pi 4B in 3 stappen: 3 stappen
Gezichtsdetectie op Raspberry Pi 4B in 3 stappen: In deze Instructable gaan we gezichtsdetectie uitvoeren op Raspberry Pi 4 met Shunya O/S met behulp van de Shunyaface-bibliotheek. Shunyaface is een bibliotheek voor gezichtsherkenning/detectie. Het project streeft naar de hoogste detectie- en herkenningssnelheid met
Doe-het-zelfspiegel in eenvoudige stappen (met LED-stripverlichting): 4 stappen
DIY make-upspiegel in eenvoudige stappen (met behulp van LED-stripverlichting): In dit bericht heb ik een doe-het-zelfspiegel gemaakt met behulp van de LED-strips. Het is echt gaaf en je moet ze ook proberen
Hoe plug-ins in WordPress te installeren in 3 stappen: 3 stappen
Hoe plug-ins in WordPress te installeren in 3 stappen: In deze tutorial laat ik je de essentiële stappen zien om de WordPress-plug-in op je website te installeren. In principe kunt u plug-ins op twee verschillende manieren installeren. De eerste methode is via ftp of via cpanel. Maar ik zal het niet opsommen, want het is echt compl
Akoestische levitatie met Arduino Uno stap voor stap (8 stappen): 8 stappen
Akoestische levitatie met Arduino Uno Stap voor stap (8-stappen): ultrasone geluidstransducers L298N Vrouwelijke DC-adapter voeding met een mannelijke DC-pin Arduino UNOBreadboardHoe dit werkt: eerst upload je code naar Arduino Uno (het is een microcontroller uitgerust met digitale en analoge poorten om code te converteren (C++)