• Ev yapımı kol saati. DS1307 ile AVR mikrodenetleyicisinde saat

    Bu saat, iyi bilinen bir yonga seti - K176IE18 (halka sinyali oluşturuculu saatler için ikili sayaç) üzerine monte edilmiştir.

    K176IE13 (çalar saatler için sayaç) ve K176ID2 (dönüştürücü ikili kod yedi segmente)

    Güç açıldığında, saat, dakika sayacına ve U2 mikro devresinin hafıza kaydına otomatik olarak sıfırlar yazılır. Kurulum için

    saati ayarlamak için S4 (Zaman Ayarı) düğmesine basın ve basılı tutarken S3 (Saat) düğmesine - saati ayarlamak için veya S2 (Dakika) - düğmesine basın.

    dakika. Bu durumda, karşılık gelen göstergelerin okumaları 2 Hz frekansla 00'dan 59'a ve ardından tekrar 00'a değişmeye başlayacaktır. Geçiş anında

    59'dan 00'a kadar saat sayacı bir artacaktır. Alarm saatini ayarlamak aynıdır, sadece basılı tutmanız gerekir.

    S5 (Alarm Ayarı) düğmesi. Alarm saatini ayarladıktan sonra, alarmı açmak için S1 düğmesine basmanız gerekir (kontaklar

    kapalı). S6 (Sıfırla) düğmesi, ayar yapılırken dakika göstergelerini 00'a sıfırlamaya zorlamak için kullanılır. LED'ler D3 ve D4 bir rol oynar

    1 Hz frekansta yanıp sönen ayırıcı noktalar. Diyagramdaki dijital göstergeler doğru sipariş, yani ilk sen

    saat göstergeleri, iki ayırıcı nokta (LED'ler D3 ve D4) ve dakika göstergeleri.

    Saat, 0.25W'lık bir watt ile R6-R12 ve R14-R16 dirençlerini kullandı, geri kalanı - 0.125W. 32 768Hz frekansında kuvars rezonatör XTAL1 -

    sıradan saat, KT315A transistörleri, karşılık gelen yapıdaki herhangi bir düşük güçlü silikon, KT815A - transistörlerle değiştirilebilir

    en az 40 statik temel akım aktarım katsayısına sahip orta güç, diyotlar - herhangi bir düşük güçlü silikon. Squeaker BZ1

    dinamik, yerleşik jeneratörsüz, sargı direnci 45 Om. S1 düğmesi doğal olarak kilitlenir.

    Kullanılan göstergeler yeşil TOS-5163AG'dir, ortak katotlu diğer göstergeleri azaltmadan kullanabilirsiniz.

    R6-R12 dirençlerinin direnci. Şekilde bu göstergenin pin çıkışını görebilirsiniz, çünkü sonuçlar şartlı olarak gösterilmiştir. sunulan

    yukarıdan bak.

    Saati kurduktan sonra frekansı ayarlamak gerekebilir. kristal osilatör. Bu, dijital kontrol edilerek en doğru şekilde yapılabilir.

    frekans ölçer, salınım süresi U1 mikro devresinin pin 4'ünde 1 s'dir. Jeneratörü saatin seyrine göre ayarlamak çok daha yüksek bir maliyet gerektirecektir.

    zaman. R5 direncinin direncini seçerek D3 ve D4 LED'lerinin parlaklığını da ayarlamanız gerekebilir, böylece her şey

    eşit derecede parlak bir şekilde parladı. Saatin tükettiği akım 180 mA'yı geçmiyor.

    Saat tarafından desteklenmektedir geleneksel blok+ 9V çıkış voltajı ve 1.5A akım ile pozitif mikro devre dengeleyici 7809 üzerinde toplanan güç kaynağı.

    Mikrodenetleyiciler konusunda en azından biraz bilgili olanlar ve aynı zamanda basit ve faydalı cihaz ev, hiçbir şey daha iyi yapı LED göstergeleri ile. Böyle bir şey odanızı dekore edebilir veya ek değer kazanacağı benzersiz bir el yapımı hediye olabilir. Devre bir saat ve bir termometre gibi çalışır - modlar bir düğmeyle veya otomatik olarak değiştirilir.

    Bir termometre ile elektrik devresi ev yapımı saat

    mikrodenetleyici PIC18F25K22 tüm veri işleme ve zamanlama ile ilgilenir ve ULN2803Açıktılarını koordine etmek için kalır LED göstergesi. küçük çip DS1302 hassas ikinci sinyaller için bir zamanlayıcı olarak çalışır, frekansı standart bir 32768 Hz kuvars rezonatör ile stabilize edilir. Bu, tasarımı biraz karmaşıklaştırır, ancak zamanı sürekli olarak ayarlamanız ve düzeltmeniz gerekmez; bu, birkaç MHz'lik rastgele ayarlanmamış bir kuvars rezonatörle idare ederseniz, kaçınılmaz olarak geç veya aceleyle olacaktır. Böyle bir saat, yüksek kaliteli, doğru bir kronometreden çok basit bir oyuncak gibidir.

    Gerekirse, sıcaklık sensörleri ana üniteden uzağa yerleştirilebilir - ona üç telli bir kablo ile bağlanırlar. Bizim durumumuzda, bir sıcaklık sensörü üniteye takılı, diğeri ise yaklaşık 50 cm uzunluğunda bir kablo üzerinde, 5 m kabloyu denediğimizde de mükemmel çalıştı.

    Saat ekranı dört büyük LED dijital göstergeden oluşur. Başlangıçta ortak katottular, ancak daha sonra ortak anot olarak değiştirildiler. son sürüm. Başkalarını koyabilirsiniz, ardından gerekli parlaklığa göre R1-R7 akım sınırlayıcı dirençleri seçin. Ortak bir yere yerleştirmek mümkündü, elektronik parça saat, tahta, ancak çok daha çok yönlü - birdenbire uzun mesafeden görülebilmeleri için çok büyük bir LED göstergesi koymak istiyorsunuz. Sokak saatinin böyle bir tasarımına bir örnek burada.

    Elektroniğin kendisi 5 V'tan başlar, ancak parlak parıltı LED'ler 12 V kullanmalıdır. Şebekeden güç, dengeleyiciye bir düşürücü transformatör adaptörü aracılığıyla sağlanır. 7805 kesinlikle 5 V'luk bir voltaj oluşturan küçük yeşil silindirik bir pile dikkat edin - kaynak görevi görür yedek güç, 220 V şebekesinin arızalanması durumunda 5 V - bir lityum-iyon veya NiMH pil 3.6 voltta.

    Kasa için, çeşitli malzemeler kullanabilirsiniz - ahşap, plastik, metal veya ev yapımı bir saatin tüm tasarımını, örneğin bir multimetre, tuner, radyo alıcısı vb. Pleksiglastan yaptık, çünkü işlenmesi kolay, herkesin görebilmesi için içini görmenizi sağlıyor - bu saat elle monte edildi. Ve en önemlisi, mevcuttu :)

    Burada önerilen ev yapımı tasarımın tüm gerekli ayrıntılarını bulabilirsiniz. dijital saat, diyagram, topoloji dahil baskılı devre kartı, PIC donanım yazılımı ve

    Hatırlıyorum... Otuz yıl önce altı gösterge küçük bir hazineydi. Daha sonra bu tür göstergelerle TTL mantığında bir saat yapabilen herkes, kendi alanında sofistike bir uzman olarak görülüyordu.

    Gaz deşarj göstergelerinin ışığı daha sıcak görünüyordu. Birkaç dakika sonra bu eski lambaların işe yarayıp yaramadığını merak ettim ve onlarla bir şeyler yapmak istedim. Şimdi böyle bir saat yapmak çok kolay. Mikrodenetleyici almanız yeterli...

    Aynı zamanda mikrodenetleyicileri dillerde programlamaktan hoşlanıyordum. yüksek seviye Biraz oynamaya karar verdim. Basit bir dijital gaz boşaltma saati tasarlamaya çalıştım.

    tasarımın amacı

    Saatin altı haneli olması gerektiğine ve saatin minimum sayıda düğmeyle ayarlanması gerektiğine karar verdim. Ayrıca, daha yaygın mikrodenetleyici ailelerinden birkaçını denemek ve kullanmak istedim. farklı üreticiler. Programı C dilinde yazmayı amaçladım.

    Deşarj göstergelerinin çalışması için yüksek voltaj gerekir. Ama tehlikeli şebeke gerilimi ile uğraşmak istemedim. Saatin zararsız 12V ile çalıştırılması gerekiyordu.

    Asıl amacım oynamak olduğu için kasanın mekanik tasarımı ve çizimlerinin açıklamalarını burada bulamazsınız. Dilerseniz kendi zevkinize ve tecrübelerinize göre saati kendiniz değiştirebilirsiniz.

    İşte sahip olduklarım:

    • Zaman göstergesi: SS DD SS
    • Alarm göstergesi: SS MM --
    • Zaman görüntüleme modu: 24 saat
    • Doğruluk ±1 saniye/gün (kuvars rezonatöre bağlı olarak)
    • Besleme voltajı: 12 V
    • Akım tüketimi: 100mA

    saat şeması

    Altı haneli dijital ekrana sahip bir cihaz için multipleks modu doğal çözümdü.

    Akış şemasındaki (Şekil 1) öğelerin çoğunun amacı, yorum yapılmadan açıktır. Bir dereceye kadar, standart olmayan bir görev, yüksek voltaj gösterge kontrol sinyallerine bir TTL seviye dönüştürücünün oluşturulmasıydı. Anot sürücüleri, yüksek voltajlı NPN'de yapılır ve PNP transistörleri. Şema Stefan Kneller'den (http://www.stefankneller.de) ödünç alınmıştır.

    74141 TTL çipi, bir BCD kod çözücü ve her basamak için bir yüksek voltaj sürücüsü içerir. Bir çip sipariş etmek zor olabilir. (Aslında şu anda herhangi biri tarafından yapılıp yapılmadığını bilmiyorum.) Ancak gaz deşarj göstergeleri bulursanız, 74141 yakınlarda olabilir :-). TTL mantığının olduğu günlerde, 74141 çipinin neredeyse hiçbir alternatifi yoktu. Bu yüzden bir yerde bir şey bulmaya çalışın.

    Göstergeler yaklaşık 170 V'luk bir voltaj gerektirir. Çok sayıda yükseltici dönüştürücü yongası olduğundan, bir voltaj dönüştürücü için özel bir devre geliştirmenin bir anlamı yoktur. Ucuz ve yaygın olarak bulunabilen MC34063 yongasını seçtim. Dönüştürücü devresi neredeyse tamamen kopyalanmıştır. Teknik Açıklama MC34063. Sadece T13 güç tuşu eklenmiştir. Bunun için dahili anahtar yüksek voltaj uygun değil. Dönüştürücü için endüktans olarak bir jikle kullandım. Şekil 2'de gösterilmiştir; çapı 8 mm ve uzunluğu 10 mm'dir.

    Dönüştürücünün verimliliği oldukça iyidir ve çıkış voltajı nispeten güvenlidir. 5 mA yük akımında, çıkış voltajı 60 V'a düşer. R32, akım algılama direnci olarak işlev görür.

    Lineer regülatör U4, mantığa güç sağlamak için kullanılır. Diyagramda ve tahtada bir yer var yedek batarya. (3,6 V - NiMH veya NiCd). D7 ve D8 Schottky diyotlardır ve R37 direnci, pilin özelliklerine göre şarj akımını sınırlamak içindir. Sadece eğlence için bir saat yapıyorsanız, bir pile, D7, D8 veya R37'ye ihtiyacınız olmayacak.

    Nihai devre Şekil 3'te gösterilmiştir.

    Figür 3

    Zaman ayar düğmeleri diyotlarla bağlanır. Düğmelerin durumu, karşılık gelen çıkışta mantıksal "1" ayarlanarak kontrol edilir. Bonus özellik olarak, mikrodenetleyicinin çıkışına bir piezo yayıcı bağlanır. Bu iğrenç gıcırtıyı durdurmak için küçük bir anahtar kullanın. Bunun için bir çekiç oldukça uygun olacaktır, ancak bu aşırı bir durumdur :-).

    Şematik bileşen listesi, PCB çizimi ve bileşen yerleşimi İndirmeler bölümünde bulunabilir.

    İşlemci

    Yeterli sayıda pine sahip hemen hemen her mikrodenetleyici, gerekli minimum sayısı Tablo 1'de gösterilen bu basit cihazı kontrol edebilir.

    Tablo 1.
    İşlev sonuçlar
    Beslenme 2
    kuvars rezonatör 2
    anot yönetimi 6
    Sürücü 74141 4
    Düğme girişi 1
    Piezo zil 1
    Toplam 16

    Her üretici kendi ailelerini ve mikrodenetleyici türlerini geliştirir. Sonuçların konumu her tür için ayrıdır. Birkaç mikrodenetleyici türü için evrensel bir kart tasarlamaya çalıştım. Kartın 20 pimli bir soketi vardır. Birkaç telli jumper ile farklı mikrodenetleyicilere uyarlayabilirsiniz.

    Bu devrede test edilen mikrodenetleyiciler aşağıda listelenmiştir. Diğer türleri deneyebilirsiniz. Planın avantajı, kullanma olasılığıdır. farklı işlemciler. Radyo amatörleri, kural olarak, bir mikrodenetleyici ailesini kullanır ve uygun programcı ve yazılım araçlarına sahiptir. Diğer üreticilerin mikrodenetleyicileri sorunlara neden olabilir, bu yüzden size en sevdiğiniz aileden bir işlemci seçme fırsatı verdim.

    Çeşitli mikrodenetleyicilerin dahil edilmesinin tüm özellikleri Tablo 2 ... 5'te ve Şekil 4 ... 7'de yansıtılmıştır.

    Tablo 2.
    serbest ölçek
    Tip MC68HC908QY1
    kuvars rezonatör 12 Mhz
    Kondansatörler C1, C2 22 pF
    programı freescale.zip
    (İndirilenler bölümüne bakın)
    Ayarlar

    Not: Kuvars rezonatöre paralel olarak 10 MΩ direnç bağlanmıştır.

    Tablo 3
    Mikroçip
    Tip PIC16F628A
    kuvars rezonatör 32,768 kHz
    Kondansatörler C1, C2 22 pF
    programı pic628.zip
    (İndirilenler bölümüne bakın)
    Ayarlar Int. 4 MHz jeneratör - G/Ç RA6,
    MCLR KAPALI, WDT KAPALI, LVP KAPALI,
    BROUT KAPALI, CP KAPALI, GÜÇ KAPALI

    Not: Mikro devre yuvada 180° döndürülmelidir.

    Tablo 4
    atmel
    Tip minik2313
    kuvars rezonatör 12 Mhz
    Kondansatörler C1, C2 15 pF
    programı attiny.zip
    (İndirilenler bölümüne bakın)
    Ayarlar metrekare osilatör 8 MHz, RESET AÇIK

    Not: SMD bileşenleri R ve C'yi RESET pinine (10 kΩ ve 100 nF) ekleyin.

    Tablo 5
    atmel
    Tip AT89C2051
    kuvars rezonatör 12MHz
    Kondansatörler C1, C2 22 pF
    programı at2051.zip
    (İndirilenler bölümüne bakın)
    Ayarlar --

    Not: SMD bileşenleri R ve C'yi RESET pinine (10 kΩ ve 100 nF) ekleyin; yıldızlarla işaretlenmiş pimleri 3,3 kΩ SMD dirençleri aracılığıyla +Ub güç veriyoluna bağlayın.

    Farklı mikrodenetleyicilerin kodlarını karşılaştırarak çok benzer olduklarını göreceksiniz. Bağlantı noktalarına erişimde ve kesme işlevlerinin tanımında olduğu kadar kablo demetinin bileşenlerine bağlı olanlarda da farklılıklar vardır.

    Kaynak kodu iki bölümden oluşmaktadır. İşlev ana() bağlantı noktalarını yapılandırır ve kesme sinyalleri üreten bir zamanlayıcı başlatır. Bundan sonra, program basılan düğmeleri tarar ve ilgili zaman ve alarm değerlerini ayarlar. Aynı yerde, ana döngüde, şimdiki zaman çalar saat ile karşılaştırılır ve piezo yayıcı açılır.

    İkinci kısım, zamanlayıcı kesme rutinidir. Her milisaniyede bir (zamanlayıcının yeteneklerine bağlı olarak) çağrılan bir alt program, zaman değişkenlerini artırır ve ekran rakamlarını değiştirir. Ayrıca butonların durumu kontrol edilir.

    Devreyi çalıştırmak

    Bileşen kurulumu ve kurulumu güç kaynağı ile başlar. U4 regülatörünü ve çevresindeki bileşenleri lehimleyin. U2 için 5V ve U1 için 4,6V olup olmadığını kontrol edin. Bir sonraki adım, yüksek voltaj dönüştürücüyü monte etmektir. Düzeltici direnç R36 ile voltajı 170 V'a ayarlayın.Ayar aralığı yeterli değilse, direnç R33'ün direncini biraz değiştirin. Şimdi anot ve dijit sürücü devresinin U2 çipini, transistörlerini ve dirençlerini takın. U2 girişlerini GND veriyoluna bağlayın ve R25 - R30 dirençlerinden birini seri olarak +Ub güç veriyoluna bağlayın. İlgili konumlarda gösterge numaraları yanmalıdır. Devreyi test etmenin son aşamasında, U1 çipinin 19 numaralı pimini toprağa bağlayın - piezo yayıcı bip sesi çıkarmalıdır.

    Kaynak kodları ve derlenmiş programlar ilgili dosyada bulunabilir. sıkıştırılmış dosyaİndirmeler bölümünde. Programı mikrodenetleyiciye flash ettikten sonra, U1 konumundaki her bir pimi dikkatlice kontrol edin ve gerekli tel ve lehim bağlantı tellerini takın. Lütfen yukarıdaki mikrodenetleyici resimlerine bakın. Mikrodenetleyici doğru programlanmış ve bağlanmışsa, üreteci çalışmalıdır. Saati ve alarmı ayarlayabilirsiniz. Dikkat! Tahtada bir düğme için daha yer var - bu, gelecekteki uzantılar için yedek bir düğme :-).

    Jeneratör frekans doğruluğunu kontrol edin. Beklenen aralıkta değilse, C1 ve C2 kapasitörlerinin değerini biraz değiştirin. (Küçük kapasitörleri paralel olarak lehimleyin veya başkalarıyla değiştirin). Saat doğruluğu iyileştirilmelidir.

    Çözüm

    Küçük 8 bitlik işlemciler, üst düzey diller için oldukça uygundur. C dili başlangıçta küçük mikrodenetleyiciler için değil, basit uygulamalar mükemmel bir şekilde kullanabilirsiniz. montajcı daha uygun kritik sürelere veya maksimum işlemci yüküne uyum gerektiren karmaşık görevler için. Çoğu amatör için, C derleyicisinin hem ücretsiz hem de paylaşılan yazılımla sınırlı sürümleri iş görecektir.

    C programlama tüm mikrodenetleyiciler için aynıdır. Seçilen mikrodenetleyici tipindeki donanımın (kayıtlar ve çevre birimleri) işlevlerini bilmelisiniz. Bit işlemlerinde dikkatli olun - C dili, ATtiny için orijinal örneğinde görülebileceği gibi, tek tek bitlerin manipülasyonuna uyarlanmamıştır.

    Bitti mi? Ardından, vakum tüplerinin tefekkürüne geçin ve görün ...

    …eski günler geri geliyor… :-)

    Editör notu

    SN74141'in eksiksiz bir analogu, Minsk yazılımı "Integral" tarafından üretilen K155ID1 mikro devresidir.
    Çip internette kolayca bulunabilir.

    Çalar saatin ses sinyali ile saatler, ev aletlerinin kontrolü için zamanlayıcı.

    Bir zamanlayıcı, ayarlanan zaman anahtarlama kontakları ile ekipmanı açar veya kapatır. Gerçek zamanlı zamanlayıcılar, çalışma saatini günün ayarlanan saatinde ayarlamanıza olanak tanır. en çok basit örnek böyle bir zamanlayıcı bir çalar saat olacaktır.

    Zamanlayıcının kapsamı geniştir:
    - aydınlatma cihazlarının yönetimi;
    - ev ve bahçe bitkilerinin sulanmasının yönetimi;
    - havalandırma kontrolü;
    - akvaryum yönetimi;
    - elektrikli ısıtıcıların kontrolü vb.

    Önerilen zamanlayıcı, yeni başlayan bir radyo amatörü tarafından bile hızlı ve ucuz bir şekilde yapılabilir.
    Saat yapıcısına göre yaptım. ()

    Ülkedeki bitkilerin sulanmasını kontrol etmek için bir zamanlayıcı kullanmam gerekiyordu.

    Videodaki tüm üretim sürecini görün:


    Alet ve malzeme listesi
    - herhangi Dijital saatçalar saatin ses sinyali ile;
    -Tornavida;
    - makas;
    - havya;
    - kambrik;
    - 12V için iki röle;
    - Adaptörden 12V güç kaynağı;
    - bağlantı telleri;
    - baskılı devre kartı veya devre tahtası için folyo textolite;
    - endüstriyel veya ev yapımı zaman rölesi;
    -direnç;
    - KT815 transistörleri (veya analogları);
    -diyot.

    Adım bir. Zamanlayıcı kartının lehiminin çözülmesi.
    Zamanlayıcı devresi
    Gereken tek şey, bileşenleri şemaya göre lehimlemek. devre tahtası ve saatin piezo yayıcısından iki kabloyu lehimleyin. Toplama en basit devre ara röle ve transistör anahtarı ile. Saatten bir ses sinyalinin ilk darbesi verildiğinde, P1 rölesi açılır, normalde açık kontak kapanır ve yükü açar, aynı anda P1 rölesinin ikinci normalde açık kontağı ve zamanın normalde kapalı kontağı aracılığıyla röle, P1 rölesi kendiliğinden kilitlenir. Yükle birlikte, RV zaman rölesi açılır - belirtilen yük çalışma süresinin geri sayımı başlar. Bu süre sonunda PB kontağı açar ve P1 rölesinin enerjisi kesilir, yük kesilir. Şematik hazır sonraki döngü. Diyot, saat devresinde ters darbeyi önlemeye yarar (düşük güçlü herhangi bir diyot kullanabilirsiniz). Yükün dahil edildiğini gösteren LED. Bu devrede, normalde açık iki kontağa sahip bir ara röleye ihtiyaç vardır, ancak bende yoktu - iki Çin rölesi kullandım (bobinler paralel bağlı).Yük daha güçlüyse, o zaman bir kullanmanız gerekir. daha güçlü kontaklarla aktarın. 12V adaptörüm vardı, devresini direkt olarak breadboard üzerine kurdum. Prensip olarak, herhangi bir düşük güçlü 12V güç kaynağı kullanılabilir.


    Daha kısaysa, saat yükü açar ve maruz kalma süresi geçtikten sonra zaman rölesi kapanır.
    Endüstriyel bir zaman röleniz yoksa, bunu basit bir şemaya göre kendiniz yapabilirsiniz. C1 kondansatörünün kapasitansındaki artışla rölenin çalışma süresi artar.


    İkinci adım. Zamanlayıcının çalışmasını kontrol etme.
    Devrem ilk açtığımda çalıştı.
    Alarm saatini ayarlamak için kalır. Saatimin iki alarm zamanı ayarı var. Benim durumum için, örneğin sabah saat 7'de bir saatlik bir maruz kalma için sulamayı açmak ve akşam saat 20'de tekrar sulamak yeterlidir. Saat düğmelerine basıldığında, ses sinyalleri bu nedenle, ayarlarken, devre dışı bırakmak için zamanlayıcı devresinin enerjisi kesilmelidir. yanlış pozitifler. Saatimin bir "çan sesi" işlevi vardır - 8 ila 20 saat arasında her saat, yani çalar saate ek olarak, gerekirse bu sinyalleri kullanabilirsiniz. Gerekli değilse, yani "çan sesleri" işlevi devre dışı bırakılır.

    Hafta sonunun tasarımı böyle ortaya çıktı. Dönmek ilginçti yeni düzen bu yüzden her şey hızlı bir şekilde yapıldı. Gelecekte, bir kasa yapmak ve oraya bir tahta ve bir zaman rölesi yerleştirmek gerekecektir. Böyle bir zamanlayıcıyı kendi başınıza yapmak, çok fazla zaman ve para harcamadan yeni başlayan birinin gücü dahilindedir. Ve bunları nereye uygulayacağınıza zaten kendiniz karar verin.

    Tüm işler birkaç hafta sonu akşamı ve 75 ruble aldı (

    20 Ağustos 2015, 12:34

    Ev yapımı elektronik saat, eleman tabanı- 1. kısım, zamanın ölçümü

    • Kendin Yap veya Kendin Yap

    Muhtemelen, ev yapımı elektroniğe düşkün olan her inek, er ya da geç kendi benzersiz saatini yapma fikrini bulur. Fikir oldukça iyi, onları nasıl ve neyin daha iyi hale getireceğini bulalım. Başlangıç ​​noktası olarak, bir kişinin mikro denetleyicileri nasıl programlayacağını bildiğini, bir i2c veya seri bağlantı noktası üzerinden 2 bayt göndermeyi bildiğini ve birkaç kabloyu birbirine lehimleyebildiğini varsayacağız. Prensip olarak, bu yeterlidir.

    Açıktır ki tuş işlevi saat - bir zaman ölçümü (kim düşünürdü, değil mi?). Ve bunu olabildiğince doğru yapmak arzu edilir, birkaç seçenek ve tuzak vardır.

    Peki, donanımda bulunan hangi zaman ölçüm yöntemlerini kullanabiliriz?

    CPU Dahili RC Osilatörü

    Akla gelebilecek en basit fikir, basitçe bir yazılım zamanlayıcısı kurmak ve saniyeleri geri saymasına izin vermektir. Pekala, bu fikir işe yaramıyor. Elbette saat çalışacaktır, yalnızca yerleşik jeneratörün doğruluğu hiçbir şekilde düzenlenmemiştir ve nominal değerin% 10'u içinde "yüzebilir". Ayda 15 dakika süren saatlere kimsenin ihtiyaç duyması pek olası değildir.

    Gerçek zamanlı modül DS1307

    Çoğu "halk" ürününde de kullanılan daha doğru bir seçenek, gerçek zamanlı bir saattir. Mikro devre, mikro denetleyici ile I2C üzerinden iletişim kurar, minimum bağlanma gerektirir (kuvars ve bir çift direnç). Çıkış fiyatı, çip başına yaklaşık 100 ruble veya mikro devre, bellek modülü ve pil konektörlü hazır bir kart için ebay'de yaklaşık 1 dolar.

    Veri sayfasından diyagram:

    Daha az önemli olmayan, mikro devre bir DIP paketinde üretilir, bu da herhangi bir acemi radyo amatörünün onu lehimleyebileceği anlamına gelir. Dahili pil, güç kapatılsa bile saatin çalışmaya devam etmesini sağlar.

    Görünüşe göre tek bir sorun olmasa da her şey yolunda - düşük doğruluk. Saat kuvarsının yaklaşık doğruluğu 20-30 ppm'dir. Atama ppm - milyonda parça, milyonda parça sayısını gösterir. Görünüşe göre 20 milyonda biri süper, ancak 32768 Hz frekans için 20 * 32768 / 1000000 = ± 0,65536 Hz, yani. zaten yarım sik. Basit hesaplamalarla, günde böyle bir farka sahip jeneratörün, günde 2 saniyeye karşılık gelen 56 bin döngüyü fazladan (veya eksik) "tıkladığı" görülebilir. Kuvars farklıdır, bazı kullanıcılar günde 5 saniyelik bir hata hakkında yazdı. Her nasılsa çok doğru değil - bir ay içinde bu tür saatler en az bir dakika bırakacak. Bu, çıplak gözle görülebilen iyi bir farktır (büyükannenin en sevdiği dizi 11.00'de başladığında ve saat 11.05'i gösterdiğinde, bu tür saatlerin geliştiricisi akrabalarının önünde rahatsız olacaktır).

    Bununla birlikte, odadaki sıcaklık aşağı yukarı sabit olduğundan ve kuvarsın frekansı fazla değişmeyeceğinden, yazılım düzeltmesi ekleyebilirsiniz. Forumlarda verilen bir diğer tavsiye de eski saat kuvarsını kullanmaktır. anakartlar, incelemelere göre, orada oldukça doğrular.

    Gerçek zamanlı modül DS3231

    Doğruluk sorusunu soran ilk kişi biz değiliz ve istekleri karşılayan Dallas, daha gelişmiş bir modül olan DS3231'i yayınladı. "Son Derece Doğru Gerçek Zamanlı Saat" olarak adlandırılır ve yerleşik bir sıcaklık düzeltmeli osilatöre sahiptir. Doğruluk 10 kat daha yüksektir ve 2 ppm'dir. Sorunun fiyatı biraz daha yüksek, ancak mikro devre kasası SMD montajı için tasarlandı, lehimleme o kadar uygun değil, ancak eBay'de hazır bir tahta satın alabilirsiniz.


    (satıcının web sitesinden fotoğraf)

    Ayda 6 saniyelik bir doğruluk zaten iyi bir sonuçtur. Ancak daha da ileri gideceğiz - ideal olarak, 21. yüzyıldaki saatlerin hiç ayarlanmasına gerek yoktur.

    Radyo modülü DCF-77

    Yöntem oldukça egzotiktir, ancak bütünlük adına bundan bahsedilmelidir. Çok az insan bilir, ancak kesin zaman sinyalleri 70'lerden beri radyo tarafından iletilir. DCF-77 vericisi Almanya'da Frankfurt yakınlarında bulunuyor ve kesin zaman damgaları 77,5 kHz'lik VHF frekansında iletiliyor (evet, zaten duvarları vardı ve bir masa saati ayarlanmasına gerek yoktur).

    Yöntem iyidir, çünkü devre düşük güç tüketimine sahiptir, hatta kol saati bu teknoloji ile. Bitmiş tahta resepsiyon DCF-77 ebay'den satın alınabilir, çıkış fiyatı 20 $'dır.

    Birçok saat ve hava istasyonu, DCF-77'yi alma yeteneğine sahiptir, tek sorun, sinyalin pratikte Rusya'ya ulaşmamasıdır. Wikipedia'dan kapsama haritası:

    Gördüğünüz gibi, kabul alanının sınırında sadece Moskova ve St. Petersburg var. Sahiplerin incelemelerine göre, yalnızca bazen sinyal alınabilir; pratik uygulama tabii ki uymuyor.

    GPS modülü

    Saat pencereden uzakta değilse, o zaman oldukça gerçek yöntem tam zamanı elde etme - GPS modülü. Bu modüller ebay'den ucuza satın alınabilir (sürüm fiyatı 10-15$). Örneğin, Ublox NEO-6M doğrudan işlemcinin seri pinlerine bağlanır ve NMEA dizilerini 9600 hızında çıkarır.

    Veriler yaklaşık olarak "$GPRMC,040302.663,A,3939.7,N,10506.6,W,0.27,358.86,200804,*1A" biçiminde gelir ve bunları zayıf bir Arduino için bile ayrıştırmak zor değildir. Bu arada vatanseverler, hem GPS hem de Glonass'ı destekleyen (incelemelere göre) daha pahalı Ublox NEO-7N modülünü satın alabilirler.

    Açıkçası, GPS modülü farklı saat dilimleri hakkında hiçbir şey bilmiyor, bu nedenle geliştiricinin hesaplamaları ve yaz / kış saati değişikliği üzerinde düşünmesi gerekecek. Başka bir eksi GPS kullanımı- nispeten yüksek güç tüketimi (ancak bazı modüller ayrı komutlarla "uyku moduna" alınabilir).

    Wifi

    Ve son olarak, kesin zamanı almanın son (ve şu anda en bariz) yolu, onu internetten almaktır. Burada iki yaklaşım var. Birincisi ve en basiti, Raspberry PI gibi bir şeyi Linux ile saat tahtası olarak kullanmaktır, o zaman hiçbir şey yapmanıza gerek yoktur, her şey kutunun dışında çalışacaktır. "Egzotik" istiyorsanız - o zaman en ilginç seçenek esp8266 modülüdür.

    Bu, işlemcinin seri bağlantı noktası üzerinden sunucuyla iletişim kurabilen ucuz (ebay'de yaklaşık 200r yayın fiyatı) bir WiFi modülüdür, istenirse yeniden yüklenebilir (oldukça fazla üçüncü taraf üretici yazılımı vardır), ve mantığın bir kısmı (örneğin, zaman sunucusunu sorgulamak) modülün kendisinde yapılır. Lua'dan C ++'a kadar pek çok şey üçüncü taraf üretici yazılımı tarafından desteklenir, bu nedenle "beyninizi genişletmek" için yeterli seçenek vardır.

    Bu noktada zamanı ölçme konusu muhtemelen kapanabilir. Bir sonraki bölümde, işlemcilere ve zamanı görüntüleme yollarına daha yakından bakacağız.