İçindekiler:

LCD TARİH/SAAT RTC'yi unutun: 9 Adım
LCD TARİH/SAAT RTC'yi unutun: 9 Adım

Video: LCD TARİH/SAAT RTC'yi unutun: 9 Adım

Video: LCD TARİH/SAAT RTC'yi unutun: 9 Adım
Video: LCD kullanımı ve LCD'ye yazı yazdırma | PIC Mikrodenetleyicileri | #16 2024, Kasım
Anonim
LCD TARİH/SAAT RTC'yi unutun
LCD TARİH/SAAT RTC'yi unutun

Tek bir alüminyum iyonuna dayalı bir NIST 2010 kuantum mantık saati.

2010'da bir deney, birbirine yakın iki alüminyum-iyon kuantum saati yerleştirdi, ancak ikincisi, birincisine kıyasla 12 inç (30.5 cm) yükseldi ve yerçekimi zaman genişlemesi etkisini günlük laboratuvar ölçeklerinde görünür hale getirdi. Böylece Einstein'ın yerçekimi teorilerini çürütüyor. Saatler konumları tersine çevrildi ve aynı zaman farklarını gösterdi. NIST doktora sonrası araştırmacısı James Chin-wen Chou, tek bir alüminyum iyonunun (elektrik yüklü atom) titreşimlerine dayanan dünyanın en hassas saatine sahip. İyon metal silindirin (orta sağda) içinde tutulur. '3,7 Milyar yılda 1 saniye farkla' diyor… bekleyip görelim!

SÜPER DUPER WOW.

Yani gerçekten hızlı olan kuantum titreşimlerini kullanarak, daha hızlının daha iyi olduğunu düşünüyorsunuz. Unos'taki 328 yongası 16mhz'de oldukça hızlı. Bu, 32.768 khz olan tipik saat (saat) kristalinden çok daha hızlıdır. Bu 500 kat daha hızlı! Ve 328, saati telafi etmek için bir sıcaklık sensörüne sahiptir.

Öyleyse neden 328 çıkışı bir cıvıl cıvıl saat kristali oluşturamıyor?

1. Adım: NE BEKLEMELİ

NE BEKLEYEBİLECEĞİNİZİ
NE BEKLEYEBİLECEĞİNİZİ

Bu, SADECE 328 yongasını kullanarak bir saat yapmak için ikinci girişimim. Her 328, 16 mhz kristal olmasına rağmen farklı zamanlarda çalışır. Böylece sadece millis() sayarak kötü sonuçlar elde edersiniz. 1.000 hz'de çalışır. Bu, BİR milis(1) ortalamasını saatte yaklaşık +- 3,6 saniyeye kadar doğru yapar. Arduino değirmenleri (), fraksiyonel değirmenleri saymaz veya yüzer kullanmaz. Bu, bir değirmenin kesirlerini saymayı imkansız hale getirir. Bu yüzden Arduino micros() kullanmak bir sonraki seçimdir. Ancak micros() kullanmak sadece 71 dakikada biter. (bu gerçekten bir sorun DEĞİLDİR). Benim için sorun büyük sayılarla uğraşmak ve gps saatli zamana göre tekrarlanan ayarlamalar yapmak. Başka bir seçenek bir kesmedir. Bu, kodun döngü içinde nerede çalıştığına bakılmaksızın saniyeleri sayar. Bu, 328'i bir RTC kadar iyi yapar. 'micros()' zerreleri dikkate alınsa bile, +- 4 uS'de bu 250khz'lik bir saat olarak çıkıyor. Bu, 32.768khz'den 7 kat daha iyidir.

İşte 16bit timerOne'a dayalı Arduino lcd saatim, mikrosaniyeler kullanarak kesinti yapıyor. Alüminyum iyonlarını saymak kadar iyi değil! Ancak kolaydır ve bazı kalibrasyonlarla RTC kadar iyi olabilir. Bu saatin 3 versiyonunu yaptım. Bağlantıdan bilgisayar usb'sine. 4 düğme ile tek başına durmak için. Bir HC12 kullanarak sıcaklık ile gps'in dışına. Bu talimat ilk 2 saati kapsayacak ve HC12 için başka bir 'derinlemesine' yazacağım.

HC12 aralığı sorunlarıyla ilgili diğer talimatlarıma bakın.

Bekleyebileceğiniz şey, UNO ve 16x2 LCD kullanan kolay bir lcd saat/tarih. LCD için bazı özel numaralar yaptım. 'BÜYÜK sayılar' kitaplığı 3 boşluk kaplar, benimki sadece 1. Bunun için bir davam var ve 2 lcd ve arkalar.

Buradaki küçük kasabamdaki halk kütüphanesinde herkesin kullanabileceği bir 3d yazıcı var. Bu nedenle, lcd kasayı yapmak için yakınınızdaki bir kütüphaneye bakın.

Testlerim her 24-48 saatte bir -+ saniye gösteriyor. Bu, iki ayda yaklaşık bir dakika tatil demek. Üç veya dört ayar saat noktasını açık hale getirir. MONTH öncesi sadece yaklaşık 12 saniye kapalı. Sadece sayıları takip etmek için dikişleri 'kalibre etmek' için tekrarlanan girişimler. Tek KÖTÜ özellik, HERHANGİ BİR 'menü' kullanmaktır, saniyeleri 00'a sıfırlar. Bu, geçerli saati değiştirir. Başka bir saatle senkronizasyona izin vermek için düğmeye basmak için 60 saniyelik bir zaman aşımı bıraktım.

2. Adım: SOMUNLAR VE CIVATALAR

SOMUNLAR VE CIVATALAR
SOMUNLAR VE CIVATALAR
SOMUNLAR VE CIVATALAR
SOMUNLAR VE CIVATALAR
SOMUNLAR VE CIVATALAR
SOMUNLAR VE CIVATALAR
SOMUNLAR VE CIVATALAR
SOMUNLAR VE CIVATALAR

Bu proje, RTC'siz, yalnızca bir uno ve lcd'siz BAĞIMSIZ bir saattir. 4 düğme, saat/tarih ayarına ve saat dilimini ayarlamaya ve kalibre etmeye izin verir.

3d yazıcı dosyaları, diğer projeler için bir ve iki lcd kasaya sahiptir.

LCD, yalnızca BİR alan genişliğinde BÜYÜK NUMARALARA sahiptir. Bunu yapmak epey zamanımı aldı

Kasanın diğer projeler için düğmeler için 8 deliği var.

Güç için sadece 5v'lik bir duvar siğilini bağlayın.

3d yazıcı kullanımı için yerel KÜTÜPHANE'nizi kontrol edin !!

Adım 3: YAPI HAKKINDA

BİNA HAKKINDA
BİNA HAKKINDA
BİNA HAKKINDA
BİNA HAKKINDA
BİNA HAKKINDA
BİNA HAKKINDA

MEGA 328 mikrolu herhangi bir Arduino kartı çalışmalıdır. 16 mhz kristale ihtiyacı var ve bu hızda çalışıyor olmalı. 8 mhz'de 3,3 volt, kesinti zamanlaması ile çalışmayabilir. Muhafaza kutusu için bir pro-mini en uygunudur ancak bir nanoyu sıkıştırabilirsiniz ancak usb kablosu bir sorun olabilir. Bu, çok popüler olan bir Hitachi 16x2 lcd'dir. Bazı cıvıl cıvıl olanlar DULL ve sadece soluk. Popüler bir I2c dönüştürücü modülüne uyması için bir kenar konektörü gereklidir. Uno'ya bağlanmak için sadece 4 kablo gereklidir. Eğer istemiyorsanız, dönüştürücü modülü olmadan lcd'yi nasıl bağlayacağınızı gösteren birçok öğretici var. Tek yaptığınız düğmesiz saat için.

Lcd'de BÜYÜK NUMARA özel bir karakter var. Büyük sayılar yalnızca BİR genişlik kaplar.

Adım 4: 4 DÜĞME ve VAKA

4 DÜĞME ve KASA
4 DÜĞME ve KASA
4 DÜĞME ve KASA
4 DÜĞME ve KASA
4 DÜĞME ve KASA
4 DÜĞME ve KASA

Yukarıdakiyle aynı, ancak 4 anahtarı ekleyin. Kasaya uyması için standart bir pc kartı 2 inç x 2,5 inç kullanılır. Sadece ikiye bölün ve anahtarları, bacaklar soldan sağa gidecek şekilde takın. Anahtarları ayakları yukarı bakacak şekilde koyarsanız, kasadaki delikler aynı hizada olmayacaktır. Lehimlemeden ÖNCE kasa deliklerine hizalanıp hizalanmadıklarını test edin. Alt bacakları (tümü) topraklayın ve her bir üst bacağı uno üzerindeki bir pime geçirin. Ekteki şemaya bakın. Kasayı 3d yazdırırsanız, düğme kısmının lcd kasaya YAPIŞTIRILMASI gerekir. Arkadaki gibi SIKIŞMAZ. Herhangi bir küçük kendinden bantlı vida, lcd'yi yerinde tutacaktır. ÇOK büyük ve davayı kıracaksın. Sıcak tutkal çubuğu en iyisi olabilir. LCD'yi monte etmeden önce… led alanını siyah bantla karartın. Aksi takdirde, davanın içinden parlayacaktır. Pro mini'yi monte etmek için 2 kat 2 taraflı köpük bant kullanıyorum. Bu kaset, 'dolar ağacı dükkanlarında' bir pazarlıktır. Yaklaşık 26 gauge katı kaplamalı mıknatıs teli kullanıyorum. Bu teli bağlantılarda kullanmak için 'fakir bir adamın lehim potası' hakkında harika bir talimatım var.

Adım 5: LCD

LCD
LCD
LCD
LCD
LCD
LCD

lcd sorunları

Derlemeyi bitirdikten sonra taslağı indirin ve kurun. LCD ekranı aydınlatmayabilir. İşte bazı ipuçları. LCD 'led' yanmalı ve ekranı mavimsi yapmalıdır. Led yoksa, direnç potasının karşısındaki jumper pinlerini kontrol edin. Bunun için jumper veya 150 ohm direnç gerekir. Mavi pot her zaman problemdir. Bu nedenle, ekranda 2 sıra kare görünene kadar potu çevirin. Ardından kareler zar zor kaybolana kadar geri çekilin. Hala görüntü yoksa, SDA ve SCL bağlantılarını kontrol edin. Onları geri almak çok kolay. Bu, A4'ten SDA'ya ve A5'ten SCL'ye. Bunlar D pinleri değil A pinleridir ve bazı pro minilerde bu pinler kenarlarda değil bilgisayarın içinde bulunur. Son seçenek adresi kontrol etmektir. Bazı lcd dönüştürücü modüllerin farklı adresleri vardır. Veya birden fazla cihaz kullanırken hepsinin farklı adreslere ihtiyacı vardır. Çoğu modülde 3 farklı adres ayarlamak için 3 lehim pimi bulunur. I2c'nin tüm ve TÜM cihazlara yalnızca 2 kablo çalıştırdığını unutmayın. Bu nedenle her cihazın benzersiz bir adresi OLMALIDIR. Dahil olan bir I2c adres tarayıcıdır. Tarayıcı kurulumunu indirin ve seri monitörü okuyun. Ekran HERHANGİ BİR I2c cihazının adresini gösterir. Çizimin üstündeki çizgi için saat çizimini kontrol edin. 'LiquidCrystal_I2C lcd(0x3F, 16, 2); ' 0x3F dönüştürücüm için doğru adres. Adresiniz farklıysa, tarayıcıdan doğru adrese değiştirin. Dikkat: yeni adresi kopyalayıp yapıştırın bazen satır sonu veya satır sonu içerir. Sadece diğer adreste TYPE yazın. İlk harfler her zaman sıfırdır ve küçük harf x 0x'dir. Bu, C++'a bunun bir altıgen olduğunu söyler. 0x'den sonra herhangi bir harf büyük harftir.

6. Adım: BAĞLANTILAR

BAĞLANTILAR
BAĞLANTILAR
BAĞLANTILAR
BAĞLANTILAR
BAĞLANTILAR
BAĞLANTILAR

şemayı takip edin ve üniteyi kablolayın.

7. Adım: DİĞER FOTOĞRAFLAR

DİĞER FOTOĞRAFLAR
DİĞER FOTOĞRAFLAR
DİĞER FOTOĞRAFLAR
DİĞER FOTOĞRAFLAR
DİĞER FOTOĞRAFLAR
DİĞER FOTOĞRAFLAR

iyi şanslar LÜTFEN diğer talimatlarımı görün

Adım 8: KAZIM

talimatlar bir Arduino dosyası indirmeme izin vermiyor !!!! bu yüzden metin kullandım. Metni kopyalayıp IDE……. SORRY adresindeki YENİ bir arduino açık dosyasına yapıştırmanız gerekecek.

ve metin dosyaları da yüklenmeyecek !!! ve buraya yapıştırmaya çalıştım ama karıştırdım !!

nihayet !!! Burada indirmek için taslağım var. 3-26-2020 Bazı küçük şeyler de düzeltildi.

Kod yazmak için para alan insanlar kodumu gördüklerinde yerde yuvarlanıyorlar. Eskizlerim genellikle basit başlar. Sonra yapacak daha çok şey ekliyorum. Böylece eskiz bir karmaşaya dönüşüyor. Umarım en büyük iki hatamdan ders alırsın. Başlangıçta tanımlanmış bir anahat ve hedef olmalıdır. Eskiz boyunca tonlarca şey eklemeyin. En büyük hatam bir FONKSİYONU yanlış kullanmaktır. Kısa olmalı ve bir toplam döndürmeli ve yalnızca çizim boyunca tekrarlanan kod satırlarının yerini aldığında kullanılmalıdır. gecikme(100) iyi bir örnektir.

Bir FUNCTION kullanımım, çizimin bölümlerini ayırmaktır. Bu, ana gövdeyi takip etmemi kolaylaştırıyor ve sadece işlevi çağırarak ayrı bölümlerde hata ayıklamaya izin veriyor. Sanırım GOTO bunu yapardı ama gözden düştü ve ASLA kullanılmadı. dedi Nuff. Tarihleri ve saatleri elimden geldiğince kontrol ettim. Eskizdeki aynı kısımlar yıllardır benim 'ZAMAN KARE' saatlerimi çalıştırıyor. Bir şeyi kaçırdıysam veya bir hata varsa lütfen bana bildirin. 'Düğme yok çizimini' kalibre etmek için 'işaretsiz uzun tSec = 1000122; ' (satır 34) değiştirdiğiniz şeydir. Saatte saniyede 277 sabiti doğrudur. Ancak pratikte 'tSec' değerinde sadece 2 ila 8 adet değişiklik yapıyorum. 1000122'de saatlerimin çoğu bir RTC kadar iyi çalıştı. Sabırlı olun, sadece 2-8'lik küçük bir değişiklik mükemmel bir saat olabilir. Her iki saat için herhangi bir değişikliğin aşağı tarafı, geçerli saatin DEĞİŞTİRİLECEKTİR. Doğru geçerli saat/tarihi değiştirmeniz gerekecektir.

//// easy_one_lcd_clock_no_buttons // // arduino ve lcd saat // timer kullanınBir 16 bit zamanlayıcı // bu saati kalibre etmek için: // GPS gibi iyi bir saniye saati kullanın. // saatleri temel olarak kullan. Saniyeleri say // BU kapalı. BU bir GPS'in arkasındaysa // GPS=00.. BU=58 Her // saniye/saat için 277 ÇIKAR. Yani // 3 saatte 2 saniye daha yavaşsa… (277 * 2)/3 = 184 // tSec'den SUBTRACT. // BU öndeyse GPS=00…BUIS=03 // aynı matematik sadece tSec'e EKLE. // uyarı, çoğu saat 00'da doğrudur. // 20 saniye daha iyi bir zamanlayıcı kontrolüdür.

Adım 9: VAKA STL Dosyaları

İşte 3d yazıcı vaka dosyaları. Tuş takımının lcd kasaya yapıştırılması gerekiyor. Arka, hem bir hem de iki lcd kasanın önüne oturur. Önce üst kısmı geçirin, ardından güzel bir uyum elde etmek için aşağı inin.

3B yazıcı kullanımı için yerel KÜTÜPHANENİZİ KONTROL EDİN.

Önerilen: