Mündəricat:
Video: Həssas Saat: 3 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Hamımızın saata ehtiyacımız var, buna görə də bu təlimatda öz vaxtınızı yaratmasınız, hər şeyin fonunda cari vaxtı avtomatik olaraq izləyəcək bir dəfə dəqiq bir saat qurmağı sizə göstərəcəyəm. Həm də çox az təchizata və sıfır lehimlərə ehtiyac olsa da.
Təchizat
Birincisi, bir Arduinoya ehtiyacınız olacaq, ancaq hər hansı bir Arduino işləyəcək
Sonra, bir sıra ümumi keçid tellərinə ehtiyacınız olacaq.
2 12 mm Sparkfun düymə açarları
Ənənəvi Breadboard
və LCD 1602 16 pinli ekran
Addım 1: Kabel çəkmə
Bu saatın işləməsi üçün bunu çox xüsusi bir şəkildə bağlamalısınız, yoxsa ekranda vaxtdan çox təsadüfi ədədlər alacaqsınız.
Addım 2: Kod
Bir RTC istifadə etmədiyimiz üçün kod bir az uzun olacaq, amma şükürlər olsun ki, sizin üçün bütün ağır işləri gördüm və burada təqdim etdim.
Bunu Arduino IDE və ya veb redaktoruna kopyalayın və yapışdırın.
#"LiquidCrystal.h" daxil edin
// Bu, DIGITALpins const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7 üçün LCD kabelini təyin edir; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
// Digital LCD Konstrast ayarı int cs = 9; // kontrast üçün pin 9 PWM const int kontrast = 100; // standart kontrast
// ilkin Saat göstəricisi 12:59:45 PM int h = 12; int m = 59; int s = 45; int bayrağı = 1; // PM
// Zaman Ayarlama Düymələri int button1; int düyməsi 2;
// Vaxt Ayarı Düymələri üçün sancaqlar tərifi int hs = 0; // Saat Ayarı üçün 0 pin int ms = 1; // Dəqiqə Ayarı üçün 1 pin.
// Arxa işıq vaxtı bitdi const int Time_light = 150; int bl_TO = Zaman işığı; // Arxa işıq vaxtı bitdi int bl = 10; // Arxa işığı pin const int arxa işıq = 120; // 7mA -dan artıq deyil !!!
// Vaxtın dəqiq oxunması üçün Arduino Real Time Clock istifadə edin və yalnız gecikdirməyin () statik uint32_t last_time, indi = 0; // RTC
void setup () {lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // Button 1 pinMode (ms, INPUT_PULLUP); // və Button 2 analogWrite (cs, kontrast); // Kontrast VO analogWrite (bl, arxa işıq) üçün xarici çəkmə rezistorlarından çəkinin; indi arxa işıqda = millis (); // RTC ilkin dəyərini oxuyun}
void loop () {lcd.begin (16, 2); // hər saniyə // LCD Ekranı Yeniləyin // Saat, Dəqiqə, Saniyə + AM/Ömərdə ÇALDIRMA vaxtı lcd.setCursor (0, 0); lcd.print ("Zaman"); if (h <10) lcd.print ("0"); // həmişə 2 rəqəm lcd.print (h); lcd.print (":"); əgər (m <10) lcd.print ("0"); lcd çap (m); lcd.print (":"); əgər (s <10) lcd.print ("0"); lcd çap (lar);
əgər (bayraq == 0) lcd.print ("AM"); əgər (bayraq == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // Satır 2 üçün lcd.print ("Həssas saat");
// təkmilləşdirilmiş gecikmənin dəyişdirilməsi (1000) // Daha yaxşı dəqiqlik, döngənin icra müddətindən artıq asılılıq yoxdur
for (int i = 0; i <5; i ++) // 5 dəfə 200 ms döngə yaradın, daha sürətli Düymə cavabı üçün {
while ((now-last_time) <200) // delay200ms {now = millis (); } // daxili 200ms döngəsi last_time = indi; // növbəti döngəyə hazırlaş
// oxumaq Setting Buttons button1 = digitalRead (hs); // Read Buttons button2 = digitalRead (ms);
// Arxa işıq vaxtı bitdi bl_TO--; if (bl_TO == 0) {analogWrite (bl, 0); // Arka işıq OFF bl_TO ++; } // Arka işığı aktivləşdirmək üçün hər hansı bir vurun (((düymə1 == 0) | (düymə2 == 0)) və (bl_TO == 1)) {bl_TO = Zaman işığı; analogWrite (bl, arxa işıq); // ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs); // Butonları Oxu düyməsi2 = digitalRead (ms); }} başqa // Arxa işıq yandıqda {if (button1 == 0) {h = h+1; bl_TO = Zaman işığı; analogWrite (bl, arxa işıq); }
əgər (düymə2 == 0) {s = 0; m = m+1; bl_TO = Zaman işığı; analogWrite (bl, arxa işıq); }
/* ---- saniyələri, dəqiqələri, saatları idarə et/axşam axını ----*/if (s == 60) {s = 0; m = m+1; } əgər (m == 60) {m = 0; h = h+1; } əgər (h == 13) {h = 1; bayraq = bayraq+1; əgər (bayraq == 2) bayraq = 0; }
if ((button1 == 0) | (button2 == 0)) // Vaxt təyin düyməsinə basıldığı təqdirdə ekranı yeniləyin {// LCD Ekranı Yeniləyin // Saat Çapında, Dəqiqədə, Saniyədə + AM/PMdə Çap Vaxtını yazın lcd.setCursor (0, 0); lcd.print ("Zaman"); if (h <10) lcd.print ("0"); // həmişə 2 rəqəm lcd.print (h); lcd.print (":"); əgər (m <10) lcd.print ("0"); lcd çap (m); lcd.print (":"); əgər (s <10) lcd.print ("0"); lcd çap (lar);
əgər (bayraq == 0) lcd.print ("AM"); əgər (bayraq == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // Satır 2 üçün lcd.print ("Həssas saat"); }
} // başqa halda bitər} // üçün bitər
// xarici 1000ms döngəsi
s = s+1; // artım saniyəsi saymaq // ---- saniyələri, dəqiqələri, saatları idarə et/axşam axını ---- əgər (s == 60) {s = 0; m = m+1; } əgər (m == 60) {m = 0; h = h+1; } əgər (h == 13) {h = 1; bayraq = bayraq+1; əgər (bayraq == 2) bayraq = 0; }
// Döngənin sonu}
Addım 3: Şematik (Bu həqiqətən bir addım deyil)
Bunu oxuyan kimsə burada bir texnologiyadırsa, baxa biləcəyiniz bir sxemdir.
Zövq alın və əylənin və ən çox təzə qalın.
Tövsiyə:
Arduino istifadə edərək Led Strip ilə Analog Saat və Rəqəmsal Saat Necə Hazırlanır: 3 Addım
Arduino istifadə edərək Led Strip ilə Analog Saat və Rəqəmsal Saat Necə Hazırlanır: Bu gün biz Analog Clock & Led Strip və Arduino ilə MAX7219 Dot modulu olan rəqəmsal saat yerli vaxt qurşağı ilə saatı düzəldəcək. Analog saat daha uzun bir LED şeridi istifadə edə bilər, buna görə də sənətkar olmaq üçün divara asıla bilər
Ağıllı Zəngli Saat: Raspberry Pi ilə Ağıllı Zəngli Saat: 10 addım (şəkillərlə)
Ağıllı Zəngli Saat: Raspberry Pi ilə Ağıllı Zəngli Saat: Heç ağıllı bir saat istəmisinizmi? Əgər belədirsə, bu sizin üçün bir həlldir! Ağıllı Zəngli Saat hazırladım, bu veb saytına görə zəngli saatını dəyişə biləcəyiniz bir saatdır. Siqnal çalınanda bir səs (zil) olacaq və 2 işıq yanacaq
C51 4 Bit Elektron Saat - Taxta Saat: 15 Addım (Şəkillərlə)
C51 4 Bit Elektron Saat - Taxta Saat: Bu həftə sonu bir az boş vaxtım oldu, buna görə də bir müddət əvvəl AliExpress -dən aldığım 2.40 dollarlıq 4 bitlik elektron elektron rəqəmsal saatı yığdım
M-Saat Miniatür Çox Modlu Saat: 11 addım
M-Clock Miniatür Çox Modlu Saat: Minimalist Saatı? Çox rejimli saat? Matrix Clock? Bu MSP430G2432-ə əsaslanan çox rejimli bir saat layihəsidir. Lehim olmadan və minimum alət istifadə etmədən yığıla bilər. Məhdud 8x8 piksel ekran qətnaməsi ilə bu 12 saatlıq saat göstərir
Kompüteriniz üçün əsl zəng vuran bir saat və yanğınsöndürən bir saat yaradın .: 3 addım (şəkillərlə)
Kompüteriniz üçün əsl zəng vuran bir saat və yanğınsöndürmə saatı yaradın .: Bir pirinç zəngi, kiçik bir neçə şey və əsl bir zəng masaüstünüzdəki saatları vura bilər. Bu layihə Windows və Mac-da işləyir. OS X də, zibil qutusunda tapdığım bir kompüterə Ubuntu Linux qurmaq qərarına gəldim və bu işlə məşğul oldum: heç vaxt