Mundarija:
- Ta'minotlar
- 1 -qadam: Komponentlarni ulang
- 2 -qadam: 3D bosilgan qismlar
- 3 -qadam: Kod
- 4 -qadam: Operatsiya va sozlash
Video: Pensiya soati / hisoblash / Dn soati: 4 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Menda tortmasida 8x8 o'lchamli LED nuqta matritsali displeylar bor edi va ular bilan nima qilish kerakligi haqida o'yladim. Boshqa ko'rsatmalardan ilhomlanib, men kelajakdagi sana/vaqtni sanash uchun orqaga/yuqoriga ko'rsatish ekranini yaratish g'oyasini oldim va agar belgilangan vaqt o'tgan bo'lsa, undan hisoblang. Men buni tokchada o'tirgan pensiya soatim qilib qo'ydim.
Uni shishaga solib qo'yish fikri korpus haqida o'ylash paytida ko'proq tasodif edi. Boshqalar kemalarni shishaga soladilar, nega soat emas?
Men ham soatni yozgi vaqtga bo'ysundirmoqchi edim va, albatta, tarmoqdan uzilgan vaqtni va sozlamalarni eslayman. Men soatni USB orqali quvvatlantiryapman, agar siz boshqa biror narsa qilishni xohlasangiz yoki kodga xususiyatlar qo'shishni xohlasangiz, uni qayta dasturlash mumkin. Kod juda sodda va ko'p optimallashtirishni ham ishlatishi mumkin. Men tan olishim kerak bo'lgan RAM iste'mol qilish haqida yaxshi g'amxo'rlik qilmadim. Agar menda vaqt va motivatsiya bo'lsa, men unga qaytaman.
Ta'minotlar
1. Arduino Nano
2. RTC (men EEPROMga ega bo'lgan umumiy DS3231 dan foydalanardim)
3. 12x 8x8 nuqtali matritsali modul. (Menda to'rtta modul bor edi, ularni navbatga qo'yish osonroq edi)
4. Displey yorqinligini sozlash uchun LDR
5. Rezistor 10 kOm
6. Kondansatkich 5x 100 uF displeydagi chayqalishni bostiradi
7. 8x8 modullarning kontrastini oshirish uchun men qorong'i tusli "Oynali plyonka" dan foydalandim. Agar displey yonmagan bo'lsa, LEDlar oq nuqta sifatida ko'rsatiladi. Deraza plyonkasi uni yaltiroq qora ko'rinishga aylantiradi.
1 -qadam: Komponentlarni ulang
Displeyni yig'ish uchun to'rtta to'rtta displeydan foydalandim. Sana va chiziqlar bilan vaqtni ko'rsatish uchun bizga 8 ta belgidan iborat bo'sh joy kerak. Oddiy 5x7 shriftdan foydalanib, har bir satr uchun oltita 8x8 blok kerak bo'ladi. Men to'rtburchaklar bloklardan birini yarmiga kesib tashladim va ularni non paneli sxemasida ko'rsatilgandek, ikki qatorli olti blokga ajratdim.
2 -qadam: 3D bosilgan qismlar
Displeyning ikkita qatorini ushlab turish va ularni shishaga joylashtirish uchun men ekran ramkasi uchun yumaloq masofali halqalarni bosdim. Men quyida ishlatilgan fayllarni qo'shdim. Qo'llab -quvvatlamasdan chop etish uchun ular qismlarga bo'linadi. Skrinshotda displey ramkasiga yopishtirilgan ikkita halqa ko'rsatilgan. Shishaning bo'yni qopqog'i uchta tugmachani o'z ichiga oladi, bu displey rejimlari o'rtasida o'tish va joriy vaqt va maqsadli vaqtni sozlash uchun mo'ljallangan. Men TPU -da bosilgan shisha bo'yin qopqog'i, USB kabelini ulagichlarni uzmasdan qopqog'iga suring va uni bir nechta o'rash simlari bilan bog'lab qo'ying. Men 1,5 L sharob shishasidan foydalanganimni aytishni unutdim. Bosib chiqariladigan barcha qismlar 20x20 sm (8x8 dyuymli) printer to'shagiga o'rnatiladi.
3 -qadam: Kod
Arduino kodi ko'p ishlatiladigan kutubxonalardan foydalanadi.
MD_MAX72xx
SPI
Tel
RTClib
Vaqt zonasi
TimeLib
INO faylida o'zgarishi mumkin bo'lgan bir nechta satrlar mavjud:
38-qator: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- 8x8 modul va uning yo'nalishiga bog'liq
FC16_HW o'rniga quyidagilardan biri bo'lishi mumkin:
- MD_MAX72XX:: PAROLA_HW
- MD_MAX72XX:: GENERIC_HW
- MD_MAX72XX:: ICSTATION_HW
- MD_MAX72XX:: FC16_HW
Kod AQShning markaziy vaqti sozlamalarini ishlatadi va boshqa vaqt zonalari uchun sozlashni talab qiladi:
53/54 qator:
TimeChangeRule myDST = {"CDT", Ikkinchi, Quyosh, 2 -mart, -300}; // Kunduzgi vaqt UTC -5TimeChangeRule mySTD = {"CST", birinchi, quyosh, noyabr, 2, -360}; // Standart vaqt UTC -6
Bu sozlash oson. CST/CDT nomi faqat ma'lumotga ega. Men uchta harfli qisqartmani ko'rsatmayman, shuning uchun bu muhim emas. Keyingi parametrlar qaysi oyda qaysi kunga o'tishini ko'rsatadi. O'zgartirish bir necha daqiqada, shuning uchun +/- 30 daqiqali sozlamalarni ishlatadigan joylar ham ishlaydi.
RTC ichki ravishda UTC-Time da ishlaydi, vaqt zonasi kutubxonasi maqsadga muvofiq ishlashiga imkon beradi. Siz nima uchun kod men ishlatgan soat chipiga qarama -qarshi bo'lgan eski DS1307 chipiga ishora qilayotganiga hayron bo'lishingiz mumkin, lekin bu muhim emas. Kutubxona har qanday chip bilan ham yaxshi ishlaydi. DS1307 modeli DS3132 ga qaraganda ancha uzoqlashib ketadi. DS3132 afzal qilingan soat. Internet vaqtini qo'shishni istaganlar uchun ESP8266 bu ishni juda oson bajaradi. Bu RTCni eskirishi mumkin. Agar siz ushbu o'zgarishlarni amalga oshirayotgan bo'lsangiz, maqsadli vaqtni saqlash uchun Arduino EEPROM -dan foydalaning, men buni amalga oshirish uchun RTC EEPROM -dan foydalandim.
4 -qadam: Operatsiya va sozlash
Uchta tugma mavjud
1. Menyu / sozlash
2. Yuqoriga
3. Pastga
Menyu tugmasi uchta displey turida velosipedda harakatlanish imkonini beradi: Joriy vaqt, Maqsadli vaqt, Delta vaqti. Delta vaqti joriy vaqt va maqsadli vaqt oralig'idagi kunlar sonini, HH/MM/SS ni ko'rsatadi. Bu maqsad kelajakda bo'lsa, t- va orqaga sanashni ko'rsatadi, yoki nishon o'tmishda bo'lsa- yuqoriga.
Joriy yoki maqsadli vaqtni sozlash uchun joriy vaqtni yoki maqsadli vaqt ko'rsatilishini tanlang. Vaqtni o'zgartirish uchun menyu tugmachasini 2 soniya ushlab turing va qo'yib yuboring, bu sizni sozlash rejimiga olib keladi. Qaysi raqamni to'g'rilayotganingizni ko'rsatish uchun qo'shni "/" yoki ":" "" ga aylanadi. Shax/s/s va mm/gg/yy ni sozlash uchun yuqoriga/pastga tugmalaridan foydalaning. Men mm/dd/yy va dd/mm/yy o'rtasida o'tish uchun sozlamani qo'shmadim, bu kodni o'zgartirishi kerak yoki kimdir bu xususiyatni qo'shishga tayyor bo'lishi mumkin.
Agar siz daqiqalarni 59 dan yuqori yoki 00 dan pastroqqa qo'ysangiz, soat ko'rsatkichi ham o'zgaradi. xuddi shu soniya, soat va kunlar uchun ham amal qiladi, agar bu raqam uchun maksimal 0 dan past yoki undan yuqori bo'lsa, keyingi yuqori qiymat o'zgaradi. Men buni individual oylarning turli chegaralarini dasturlashdan qochish uchun qildim va agar fevralda kabisa yilida 29 kun kerak bo'lsa. Vaqtni to'g'rilash, aslida, 1-1970 yil yanvaridan boshlab, soniyalarda amalga oshiriladi.
Men hisoblashni ko'rsatish uchun oddiy video qo'shdim. Men ularni aylanadigan g'ildirakli displeyga o'xshatmoqchi edim. Agar siz o'zgartirish muddatini o'zgartirishni xohlasangiz, INO 69 -qatorida o'zgarishlarni tezlashtirish yoki sekinlashtirish uchun bir nechta variantlar mavjud. 120ms raqamlar sekin aylanishga olib keladi, chunki bu doimiy ishlaydigan g'ildirak.
Umid qilamanki, sizga bu ko'rsatma yoqdi.
Patrik Geshvindner
Tavsiya:
0 dan 9999 gacha hisoblash 8051 bilan 7 segmentli displey yordamida: 5 qadam
7 segmentli displey yordamida 8051 bilan 0 dan 9999 gacha sanash: Hammaga salom, bu darslikda biz faqat bitta port va 4 ta raqamli pin yordamida 7 segmentli to'rtta displey yordamida 0 dan 9999 gacha qanday sanashni aytib beramiz
Shaxsiy Raspberry Pi hisoblash modulini loyihalash: 5 qadam (rasmlar bilan)
O'zingizning Raspberry Pi hisoblash modulini tenglashtirish: Agar siz ilgari Raspberry Pi hisoblash moduli haqida hech qachon eshitmagan bo'lsangiz, bu asosan formatli kompyuterli noutbuk RAM tayoqchasi bo'lgan to'liq Linuxli kompyuter! Bu bilan siz o'zingizning shaxsiy taxtangizni loyihalashingiz mumkin bo'ladi. Raspberry Pi - bu yana bir narsa
Bandlik amaliyotini osonlashtirish; Bosim tugmachasi bilan taqiladigan hisoblash moslamasi: 7 qadam
Bandlik amaliyotini osonlashtirish; Bosim tugmachasi bilan taqiladigan hisoblash moslamasi: oddiy bosim yordamida
7 segmentli displeyli 8051 mikrokontroller yordamida 0 dan 99 gacha qanday hisoblash mumkin: 5 qadam (rasmlar bilan)
7 segmentli displeyli 8051 mikrokontrolder yordamida 0 dan 99 gacha qanday hisoblash mumkin: Hammaga salom, bu darslikda biz 7 ta ikkita segmentli displey yordamida 0 dan 99 gacha sanashni aytamiz
Sesame ko'chasi - Pinball sonini hisoblash vaqti: 8 qadam (rasmlar bilan)
Sesame ko'chasi - Pinball sonini hisoblash soati: Bu ko'rsatma moslashtirilgan soat qurilishini tasvirlab beradi. Bu aniq Susam ko'chasida joylashgan soat qurilishi; Pinball raqamlarini hisoblash animatsiyasi, umumiy protseduralar bir xil va ko'rsatmalar