İçindekiler:
- Gereçler
- Adım 1: Bileşenleri Bağlayın
- 2. Adım: 3D Basılı Parçalar
- Adım 3: Kod
- Adım 4: Çalıştırma ve Ayarlar
Video: Emeklilik Saati / Sayım/Dn Saati: 4 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Çekmecede bu 8x8 LED nokta vuruşlu ekranlardan birkaçı vardı ve onlarla ne yapacağımı düşünüyordum. Diğer talimatlardan esinlenerek, gelecekteki bir tarih/saat için geri sayım yapmak için bir geri sayım/yukarı sayım ekranı oluşturma fikrini aldım ve eğer hedef zaman geçerse ondan geri sayım. Bunu şimdi rafta duran emeklilik saatim yaptım.
Onu bir şişeye koyma fikri, bir kasayı düşünürken daha çok bir kazaydı. Diğerleri gemileri bir şişeye koyar, neden bir saat olmasın?
Ayrıca saatin gün ışığından yararlanma saatine uymasını ve elbette fişten çekildiğinde ayarları ve saati hatırlamasını istedim. Farklı bir şey yapmak veya sadece koda özellikler eklemek isterseniz saati yeniden programlanabilir kılan USB üzerinden saate güç veriyorum. Kod oldukça basittir ve ayrıca birçok optimizasyon kullanabilir. Kabul etmeliyim ki RAM tüketimine iyi bakmadım. Zamanım ve motivasyonum olursa, buna geri döneceğim.
Gereçler
1. Arduino Nano
2. RTC (EEPROM'u da olan ortak DS3231'i kullandım)
3. 12x 8x8 nokta vuruşlu modül. (Sıralaması daha kolay olan dörtlü modüllerim vardı)
4. Ekran parlaklığını ayarlamak için LDR
5. Direnç 10 kOhm
6. Kapasitör 5x 100 uF ekrandaki ani yükselmeleri bastırıyor
7. 8x8 modüllerin kontrastını arttırmak için koyu renkli "Pencere Filmi" kullandım. Ekran, yanmıyorsa LED'leri beyaz noktalar olarak gösterir. Cam filmi parlak siyah bir görünüm verir.
Adım 1: Bileşenleri Bağlayın
Ekranı birleştirmek için dörtlü ekranlardan üçünü kullandım. Eğik çizgili bir tarih ve iki nokta üst üste ile saat göstermek için 8 karakterlik alana ihtiyacımız var. Tipik 5x7 yazı tipini kullanarak, satır başına altı adet 8x8 bloğa ihtiyacımız olacak. Dörtlü bloklardan birini ikiye böldüm ve bunları breadboard şemasında gösterildiği gibi iki sıra altı blok olarak düzenledim.
2. Adım: 3D Basılı Parçalar
Ekranın iki sırasını tutmak ve bunları şişeye yerleştirmek için ekran çerçevesi için yuvarlak mesafe halkaları yazdırdım. Kullandığım dosyaları aşağıya ekledim. Bunları desteksiz yazdırabilmek için parçalara ayrılırlar. Ekran görüntüsü, ekran çerçevesine yapıştırılmış iki halkayı gösteriyor. Şişe boynu kapağı, görüntüleme modları arasında geçiş yapmak ve mevcut saati ve hedef saati ayarlamak için üç düğmeyi barındırır. TPU'da yazdırdığım şişe boynu kapağı, USB kablosunu konektörleri kesmeden kapağa kaydırmaya ve birkaç sargı teli ile bağlamaya izin veriyor. En dipten kestiğim 1,5 L'lik şarap şişesi kullandığımı söylemeyi unuttum. Basılacak tüm parçalar 20x20 cm (8x8 inç) yazıcı yatağına oturmaktadır.
Adım 3: Kod
Arduino kodu, yaygın olarak kullanılan birkaç kitaplığı kullanıyor.
MD_MAX72xx
SPI
Tel
RTClib
Saat dilimi
Zaman Kitaplığı
INO dosyasında değiştirilmesi gerekebilecek birkaç satır var:
Satır 38: #define HARDWARE_TYPE MD_MAX72XX::FC16_HW <-- 8x8 modülüne ve yönüne bağlıdır
FC16_HW yerine şunlardan biri olabilir:
- MD_MAX72XX::PAROLA_HW
- MD_MAX72XX::GENERIC_HW
- MD_MAX72XX::ICSTATION_HW
- MD_MAX72XX::FC16_HW
Kod, ABD Merkezi saati ayarlarını kullanıyor ve diğer saat dilimleri için ayarlanması gerekiyor:
53/54 satırı:
TimeChangeRule myDST = {"CDT", Second, Sun, Mar, 2, -300}; // Yaz Saati UTC-5TimeChangeRule mySTD = {"CST", First, Sun, Nov, 2, -360}; // Standart saat UTC -6
Bunu ayarlamak kolaydır. CST/CDT adı sadece bir referansa sahip olmak içindir. Üç harfli kısaltmayı göstermiyorum, bu yüzden önemli değil. Sonraki parametreler, geçişin ayın hangi gününde gerçekleştiğini gösterir. Ayarlama dakika cinsindendir, bu nedenle +/- 30 dakikalık ayarlamaları kullanan konumlar da işe yarayacaktır.
RTC, dahili olarak UTC-Time üzerinde çalışır ve saat dilimi kitaplığının istendiği gibi çalışmasına izin verir. Kodun neden benim kullandığım saat çipinin aksine eski DS1307 çipine atıfta bulunduğunu merak edebilirsiniz, ancak bu önemli değil. Kütüphane her iki çiple de iyi çalışıyor. DS1307, DS3132'den daha fazla kayma eğilimine sahiptir. DS3132 tercih edilen saattir. İnternet saati eklemek isteyenler için bir ESP8266 işi oldukça kolay yapacaktır. Bu, RTC'yi geçersiz kılabilir. Bu değişiklikleri yapıyorsanız, hedef zamanı saklamak için Arduino EEPROM'u kullanın, bunu yapmak için RTC EEPROM'u kullandım.
Adım 4: Çalıştırma ve Ayarlar
Üç düğme var
1. Menü / ayarlar
2. Yukarı
3. Aşağı
Menü düğmesi, üç ekran türü arasında geçişe izin verir: Geçerli saat, Hedef saat, Delta Saati. Delta zamanı, mevcut saat ile hedef saat arasındaki gün sayısını, SS/MM/SS'yi gösterir. Hedef gelecekteyse t- ve geri sayım, hedef geçmişte ise t+ ve geri sayım gösterecektir.
Mevcut veya hedef zamanı ayarlamak için mevcut zamanı veya hedef zaman görüntüsünü seçin. Saati değiştirmek için menü düğmesini 2 saniye basılı tutun ve sizi ayar moduna getirecek olan serbest bırakın. Komşu "/" veya ":", hangi basamağı ayarladığınızı belirtmek için "" e dönüşecektir. Bireysel ss/aa/ss ve aa/gg/yy'yi ayarlamak için yukarı/aşağı düğmelerini kullanın. Aa/gg/yy ve gg/aa/yy arasında geçiş yapmak için bir ayar eklemedim, bunun kodda değiştirilmesi gerekiyor veya belki birileri bu özelliği eklemek istiyor.
Dakikaları 59'un üzerine veya 00'ın altına inerseniz saat göstergesinin de ayarlanacağını fark edeceksiniz. aynısı, bu basamak için 0'ın altında veya maksimumun üstünde geçilirse bir sonraki yüksek değeri değiştiren saniyeler, saatler ve günler için de geçerlidir. Bunu, bireysel ayların çeşitli sınırlarını programlamaktan kaçınmak için ve Şubat ayının artık yılda 29 güne ihtiyacı varsa yaptım. Zamanın ayarlanması aslında epoch-time, yani Ocak-1-1970'den bu yana saniyeler cinsinden yapılır.
Saymayı göstermek için basit bir video ekledim. Bunları dönen bir tekerlek göstergesi gibi yapmak istedim. Değişikliğin süresini ayarlamak isterseniz, INO'daki 69. satır, değişikliği hızlandırmak veya yavaşlatmak için size birkaç seçenek sunar. 120ms, sürekli çalışan bir tekerlek olacağı için rakamların yeterince yavaş kaymasını sağlar.
Umarım bu öğreticiyi beğenmişsinizdir.
Patrick Geschwindner
Önerilen:
Cumhurbaşkanlığı Açılışı Geri Sayım Saati (Wifi): 6 Adım
Cumhurbaşkanlığı Açılışı Geri Sayım Saati (Wifi): Genel Bakış: Geri sayım saati, ticari ürünlere benzer, birkaç dönüşle: a) Hedef etkinlik zamanına ulaşıldığında, geri sayım saati: kayan bir duyuru görüntüler ve ses efektlerini ve bir mp3 şarkısını çalar - Bu durumda, REM şarkı: &ld
Yaklaşan Etkinlik Geri Sayım Sayacı: 5 Adım
Yaklaşan Etkinlik Geri Sayım Sayacı: Genel Bakış: Etkinlik Geri Sayım saati, ticari ürünlere benzer, birkaç değişiklikle:a) Oda ekranından okunabilir.b) Özelleştirilebilir etkinlik resmi.c) Etkinlik hedefi zamanı geri saydıkça, kalan günler değişir. renk - yeşil -> sarı
Arduino ile Geri Sayım Düğmesi: 4 Adım
Arduino Geri Sayım W/Dinlenme Düğmesi ile: Bu Talimat size bir düğme ile sıfırlanabilen 4 Haneli 7 Segment Ekran kullanarak bir geri sayım sayacının nasıl oluşturulacağını öğretecektir. Bunu yapma fikri aklıma geldi çünkü sınıfta 1 haneli 7 segmentli ekranı oluştururken bir şeyler yaratmak istedim
GLCD Shield Kullanarak Geri Sayım Sayacı: 8 Adım (Resimli)
GLCD Shield Kullanarak Geri Sayım Sayacı: Bu projede 1sheeld GLCD shield üzerine geri sayım sayacı çiziyorum, bu projenin kullanıcısı GLCD üzerindeki çizili buton ile sayacın süresini belirleyebilir, timer 0'a ulaştığında buzzer sesi ve titreşim olacaktır
LED'li Geri Sayım Saati: 3 Adım
LED'li Geri Sayım Saati: Bunlar, 10 yıl önce Y2K için yaptığım bir 'geri sayım saati' hakkında bazı kısa notlar, Saat önden 4 fit kare. Yaklaşık 4 inç kalınlığındadır ve gömülü bir mikrodenetleyici üzerinde çalışır. Her Segment, yaklaşık 20x 10mm LED'lerden yapılmıştır. ben