Mundarija:
Video: Nozik soat: 3 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Hammamizga soatlar kerak, shuning uchun nima uchun o'z qo'llaringiz bilan o'qitilmasin, men sizga aniq soatni qanday qilishni ko'rsataman, siz o'rnatganingizdan so'ng, hamma narsa fonida joriy vaqtni avtomatik ravishda kuzatib boradi. Shu bilan birga, faqat ozgina materiallar va nol lehim kerak.
Ta'minotlar
Birinchidan, sizga Arduino kerak bo'ladi, lekin har qanday Arduino ishlaydi
Keyinchalik, sizga umumiy o'tish simlarining assortimenti kerak bo'ladi.
2 12 mm Sparkfun tugmachalari
An'anaviy non paneli
va LCD 1602 16 pinli displey
1 -qadam: simlarni ulash
Bu soat ishlashi uchun siz uni aniq tarzda ulashingiz kerak, aks holda siz vaqtni emas, balki ekranda tasodifiy sonlarni olasiz.
2 -qadam: Kod
Biz RTC -ni ishlatmaganimiz uchun, kod biroz uzoqroq bo'ladi, lekin minnatdorchilik bilan men siz uchun hamma ishni qildim va shu erda berdim.
Buni Arduino IDE yoki veb -muharririga nusxalash va joylashtirish kifoya.
#"LiquidCrystal.h" ni qo'shing
// Bu LCD simlarini DIGITALpins const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7 ga aniqlaydi; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
// Raqamli LCD konstrast sozlamalari int cs = 9; // kontrast uchun 9 -pin PWM const int kontrast = 100; // standart kontrast
// dastlabki Vaqtni ko'rsatish - 12:59:45 PM int h = 12; int m = 59; int s = 45; int bayrog'i = 1; // PM
// Vaqtni sozlash tugmalari int button1; int tugmasi 2;
// Vaqtni sozlash tugmalari uchun pin ta'rifi int hs = 0; // soat sozlamalari uchun 0 pin int ms = 1; // daqiqalar uchun 1 pin.
// Orqa yorug'lik vaqti tugadi const int Time_light = 150; int bl_TO = Vaqt nuri; // Orqa yorug'lik vaqti tugashi int bl = 10; // Orqa nuri pin const int backlight = 120; // 7mA dan oshmaydi !!!
// Vaqtni aniq o'qish uchun Arduino Real Time Clock -dan foydalaning, faqat kechiktirmang () statik uint32_t last_time, now = 0; // RTC
void setup () {lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // 1 -tugma pinMode uchun tashqi tortish qarshiligidan saqlaning (ms, INPUT_PULLUP); // va Button 2 analogWrite (cs, kontrast); // Contrast VO analogWrite -ni sozlash (bl, orqa yorug'lik); // Burilish Orqa nuri hozirda = millis (); // RTC boshlang'ich qiymatini o'qing}
void loop () {lcd.begin (16, 2); // har soniyada // LCD displeyni yangilash // soat, min, sek + AM/PM da chop etish TIME lcd.setCursor (0, 0); lcd.print ("Vaqt"); if (h <10) lcd.print ("0"); // har doim 2 ta raqamli lcd.print (h); lcd.print (":"); agar (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); agar (s <10) lcd.print ("0"); lcd.print (lar);
agar (bayroq == 0) lcd.print ("AM"); agar (bayroq == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // 2 -qator uchun lcd.print ("Aniq soat");
// kechiktirishni almashtirish yaxshilandi (1000) // Juda aniqroq, tsiklni bajarish vaqtiga bog'liq emas
for (int i = 0; i <5; i ++) // 5 marta 200ms tsiklni bajaring, tezroq tugmachali javob berish uchun {
while ((now-last_time) <200) // delay200ms {now = millis (); } // ichki 200ms pastadir last_time = hozir; // keyingi tsiklga tayyorlaning
// o'qish sozlash tugmachalari tugmasi1 = digitalRead (hs); // o'qish tugmalari tugmasi2 = digitalRead (ms);
// Orqa yorug'lik vaqti tugashi bl_TO--; if (bl_TO == 0) {analogWrite (bl, 0); // Orqa nuri o'chirilgan bl_TO ++; } // Orqa nuri yoqish uchun har qanday tugmani bosing, agar (((tugma1 == 0) | (tugma2 == 0)) va (bl_TO == 1)) {bl_TO = Vaqt nuri; analogWrite (bl, orqa yorug'lik); // tugmachani qo'yib yuborilguncha kuting ((tugma1 == 0) | (tugma2 == 0)) {tugma1 = digitalRead (hs); // O'qish tugmalari tugmasi2 = digitalRead (ms); }} else // 1 -tugma yoki 2 -tugma, orqa nuri yonib turganda {if (button1 == 0) {h = h+1; bl_TO = Vaqt nuri; analogWrite (bl, orqa yorug'lik); }
agar (tugma2 == 0) {s = 0; m = m+1; bl_TO = Vaqt nuri; analogWrite (bl, orqa yorug'lik); }
/* ---- soniyalarni, daqiqalarni, soatlarni ertalab/kechani boshqaring ----*/if (s == 60) {s = 0; m = m+1; } agar (m == 60) {m = 0; h = h+1; } agar (h == 13) {h = 1; bayroq = bayroq+1; if (bayroq == 2) bayroq = 0; }
if ((button1 == 0) | (button2 == 0)) // Vaqtni sozlash tugmasi bosilsa, displeyni yangilang {// LCD displeyni yangilang // TIME, soat, min, sek + AM/PMda chop etish lcd.setCursor (0, 0); lcd.print ("Vaqt"); if (h <10) lcd.print ("0"); // har doim 2 ta raqamli lcd.print (h); lcd.print (":"); agar (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); agar (s <10) lcd.print ("0"); lcd.print (lar);
agar (bayroq == 0) lcd.print ("AM"); agar (bayroq == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // 2 -qator uchun lcd.print ("Aniq soat"); }
} // oxiri if if} // end uchun
// tashqi 1000ms pastadir
s = s+1; // soniya ortishi. sanash // ---- soniya, daqiqa, soatni ertalab/kechqurun boshqarish ---- if (s == 60) {s = 0; m = m+1; } agar (m == 60) {m = 0; h = h+1; } agar (h == 13) {h = 1; bayroq = bayroq+1; if (bayroq == 2) bayroq = 0; }
// Loop oxiri}
3 -qadam: sxematik (bu haqiqatan ham qadam emas)
Agar kimdir buni o'qiyotgan bo'lsa, bu erda texnologik nodonlik ham bor, siz buni aqldan ozgan holda ko'rishingiz mumkin.
Xursand bo'ling va zavqlaning va eng muhimi yangi bo'lib qoling.
Tavsiya:
Nozik yoritgichli DIY oddiy minigarnituralar stendi: 19 qadam (rasmlar bilan)
Nozik yoritgichli DIY oddiy minigarnituralar uchun stend: Men sizga ko'rsatma beraman, arzon materiallar va asosiy vositalardan foydalangan holda, orqa tomondan nozik yorug'lik bilan oddiy va ixcham minigarniturani qanday yasashni ko'rsataman. Lehimlovchi temir qisqichlar
Portativ nozik zarracha o'lchami (kengaytma): 3 qadam
Portativ nozik zarrachalarning o'lchami (kengaytmasi): Maqsad: CO2 sensorini qo'shish Dasturning o'qilishi yaxshilandi Dasturning boshqa turdagi sensorlarga ochilishi. Bu loyiha allaqachon chop etilgan boshqa loyihaga amal qiladi. Bu o'quvchilar tomonidan berilgan savollarga javob beradi. Qo'shimcha sensor o'rnatildi
Portativ nozik zarracha o'lchami: 4 qadam (rasmlar bilan)
Portativ nozik zarrachalarni o'lchash: Ushbu loyihaning maqsadi nozik zarracha miqdorini o'lchash orqali havo sifatini o'lchashdir. Portativligi tufayli uyda yoki harakatda o'lchovlarni amalga oshirish mumkin bo'ladi. Havoning sifati va mayda zarrachalari: Zarrachalar (
C51 4 bitli elektron soat - yog'och soat: 15 qadam (rasmlar bilan)
C51 4 bitli elektron soat - yog'ochdan yasalgan soat: dam olish kunlari bo'sh vaqtim bor edi, shuning uchun men ilgari AliExpress -dan sotib olgan 2,40 dollarlik 4 bitli DIY elektron raqamli soatni yig'dim
M-soat miniatyurali multimodli soat: 11 qadam
M-soat miniatyurali multimodli soat: Minimalistlar soati? Ko'p rejimli soat? Matrix Clock? Bu MSP430G2432 ga asoslangan ko'p rejimli soat loyihasi. U lehimsiz va asboblarni minimal ishlatmasdan yig'ilishi mumkin. Cheklangan 8x8 pikselli displey o'lchamlari bilan, bu 12 soatlik soat vaqtni ko'rsatadi