İçindekiler:
- Adım 1: Devre Şeması
- Adım 2: Devrenizi Breadboard'layın
- Adım 3: Protoboard Üzerinde Devre İnşası
- Adım 4: Ekran için Soket Oluşturma ve Ayakları Verme
- Adım 5: Devre Kartı Kablolarını Kontrol Etme ve Kalibre Etmeye Hazırlanma
- Adım 6: Devre Kalibrasyonu
- Adım 7: Arduino Programı
- Adım 8: Parça Listesi
Video: 60Hz Güç Hattı ile Senkronize Arduino Dijital Saat: 8 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Bu Arduino tabanlı dijital saat, 60Hz güç hattı ile senkronize edilir. Saat ve dakikayı gösteren basit ve ucuz bir ortak anot 4 haneli 7 segment ekrana sahiptir. Gelen 60 Hz sinüs dalgasının sıfır voltaj noktasını ne zaman geçtiğini ve 60 Hz kare dalga oluşturduğunu tespit etmek için bir çapraz geçiş dedektörü kullanır.
Kısa sürelerde güç hattından gelen sinüs dalgasının frekansı yük nedeniyle çok az değişebilir, ancak uzun süreler boyunca çok hassas bir şekilde ortalama 60 Hz'e ulaşır. Saatimizi senkronize etmek için bir zamanlama kaynağı türetmek için bundan faydalanabiliriz.
Adım 1: Devre Şeması
Merkezi musluklu veya olmayan bir transformatör kullanmak isteyip istemediğinize bağlı olarak devrenin iki versiyonu vardır, her iki durumda da devre çalışması neredeyse aynıdır. Bu yapı için 12V AC çıkış veren bir duvar adaptörü (orta musluk yok) kullandım. Devre açıklaması için bu tasarımı (Dijital Saat1 Devre Şeması) kullanacağım. Zamanlama için AC sinüs dalgasını kullanabilmemiz için 12V DC değil 12V AC çıkış veren bir duvar adaptörü kullanmanın önemli olduğunu unutmayın. Muhtemelen 9V AC çıkış veren, R19'u çıkaran ve çalışmasını sağlayan bir transformatör de kullanabilirsiniz, ancak 12V çok yaygın olarak bulunur. Devre şu şekilde çalışır:
60Hz'de 120V AC, TR1 trafosu tarafından 12V AC'ye dönüştürülür. Bu, D4 diyotuna beslenir ve C3 kondansatörü tarafından sadece +ve voltajın beslenmesi ve dalgalanma ile yaklaşık DC'ye düzleştirilmesi için doğrultulur. C3 üzerindeki voltaj, direnç R19 üzerinden 7805 voltaj regülatörüne (U6) beslenir. R19, benim durumumda yaklaşık 15VDC'de ölçülen C3 üzerindeki voltajı azaltmak için kullanılır. Bu, 7805 tarafından düzenlenebilir, ancak bu giriş seviyesi ile 7805'in yaklaşık 10VDC düşmesi gerekir ve sonuç olarak oldukça ısınır. Voltajı yaklaşık 10VDC'ye düşürmek için R19'u kullanarak U6'nın çok fazla ısınmasını önleriz. Yani bu verimli bir güç dönüştürme tekniği değil, ama bizim amaçlarımız için çalışıyor. NOT: burada en az 1/2W veya daha fazla direnç kullanın. Devre yaklaşık 55 ma çeker, bu nedenle R19'daki güç kaybı, P=I**2*R veya P = 55ma x 55ma x 120 ohm = 0,363W bazında yaklaşık 1/3W'dir. Sonraki U6, 5V güç hattındaki herhangi bir gürültüyü filtrelemek için çıkışta C4 ve C5 ile saf 5V DC çıkışı sağlar. Bu 5V DC, karttaki tüm IC'lere güç sağlar.
TR1'den ayrıca filtrelenmemiş AC sinyalinin bir örneğini alırız ve çapraz dedektöre beslenen seviyeyi ayarlamak için kullanılan RV1 potansiyometresine besleriz. R18 ve R17, gelen AC voltajının seviyesini daha da azaltmak için bir voltaj bölücü oluşturur. Bunun 12V AC'de geldiğini ve yalnızca çapraz geçiş dedektörümüzle çalışması için 5 V'un altına düşürmemiz gerektiğini unutmayın. 5VDC ile güçlendirilmiştir. R15 ve R16, akım sınırlaması sağlarken D1 ve D2, op-amp U5'in aşırı yüklenmesini önlemeye yöneliktir. Gösterilen konfigürasyonda, U5'in pin 1 üzerindeki çıkışı, gelen sinüs dalgası pozitiften negatife her değiştiğinde +5V ile 0V arasında değişecektir. Bu, mikrodenetleyici U4'e beslenen 60 Hz'lik bir kare dalga üretir. U4'e yüklenen program daha sonra saati her dakika ve saatte bir artırmak için bu 60Hz kare dalgayı kullanır. Bunun nasıl yapıldığı yazılım programı bölümünde ve yazılım yorumlarında tartışılacaktır.
U7 74HC595 kaydırma yazmacı kullanılır çünkü mikroişlemcide sınırlı sayıda dijital pin bulunur, bu nedenle çıkış sayısını genişletmek için kullanılır. Mikroişlemci üzerinde 4 dijital pin kullanıyoruz ancak 74HC595 üzerinden ekrandaki 7 segmenti kontrol edebiliyoruz. Bu, mikrodenetleyicide saklanan ve görüntülenecek her basamağı temsil eden önceden belirlenmiş bit modellerinin kaydırma yazmacına kaydırılmasıyla gerçekleştirilir.
Burada kullanılan ekran ortak anottur, bu nedenle bir segmenti açmak için 74HC595'ten gelen sinyal seviyelerini ters çevirmemiz gerekir. Bir segmentin açılması gerektiğinde 74HC595 çıkış pininden gelen sinyal +5V olacaktır, ancak o display segmentini açabilmemiz için o displayde beslediği pinin 0V olması gerekmektedir. Bunu yapmak için U2 ve U3 hex invertörlerine ihtiyacımız var. Ne yazık ki bir invertör IC sadece 6 inversiyonu işleyebilir, bu yüzden ikincisinde 6 kapıdan sadece birini kullanmamıza rağmen ikisine ihtiyacımız var. Maalesef israf. Burada neden ortak bir katot tipi ekran kullanmadığınızı ve U2 ve U3'ü ortadan kaldırmadığınızı sorabilirsiniz. Cevap, yapabilirsin, parça tedarikimde sadece ortak bir anot tipim var. Ortak bir katot tipi ekrana sahipseniz veya kullanmak istiyorsanız, U2 ve U3'ü ortadan kaldırın ve Q1 - Q4'ü yeniden kablolayın, böylece transistör toplayıcıları ekran pinlerine ve transistör emitörleri toprağa bağlanır. Q1 - Q4 dört 7 segmentli ekrandan hangisinin etkin olduğunu kontrol eder. Bu, Q1 - Q4 transistörlerinin tabanına bağlı pimler aracılığıyla mikro denetleyici tarafından kontrol edilir.
Artırma ve ayarlama düğmeleri, saatin gerçekten kullanılması söz konusu olduğunda, doğru saat zamanını manuel olarak ayarlamak için kullanılacaktır. Ayar düğmesine bir kez basıldığında, Arttırma düğmesi ekranda gösterilen saatler arasında geçiş yapmak için kullanılabilir. Set düğmesine tekrar basıldığında, artırma düğmesi ekranda gösterilen dakikalar arasında geçiş yapmak için kullanılabilir. Set düğmesine üçüncü kez basıldığında saat ayarlanır. R13 ve R14, kullanılmadığında bu düğmelerle ilişkili mikrodenetleyici pimlerini aşağıya çeker.
Burada U4'ü (Atmega328p) tipik Arduino UNO prototip kartından çıkardığımızı ve devremizin geri kalanıyla birlikte prototip kartına koyduğumuzu unutmayın. Bunu yapmak için, mikrodenetleyici, bağlantı pimi 1, sıfırlama pimi, yüksek ve 5VDC güç sağlamak için bir saat kaynağı sağlamak üzere minimum kristal X1 ve kapasitörler C1 ve C2 sağlamalıyız.
Adım 2: Devrenizi Breadboard'layın
Devreyi tam olarak devre şemasında gösterildiği gibi kuruyor veya biraz farklı bir transformatör, ekran tipi veya başka bileşenler kullanıyor olsanız da, çalıştığından ve nasıl çalıştığını anladığınızdan emin olmak için önce devreyi devre tahtasına yerleştirmelisiniz.
Resimlerde, her şeyin breadboarding için bir Arduino Uno kartının yanı sıra birkaç tahta gerektirdiğini görebilirsiniz. Bu nedenle, mikrodenetleyiciyi programlamak veya yazılımda deney yapmak veya yazılımda değişiklik yapmak için, programı yüklemek veya yazılım değişiklikleri yapmak için bir USB kablosunu ona ve bilgisayarınıza bağlayabilmeniz için başlangıçta bir UNO kartındaki mikro denetleyici IC'ye ihtiyacınız olacaktır.
Saati devre tahtası üzerinde çalıştırdıktan ve mikrodenetleyicinizi programladıktan sonra, fişini çekebilir ve prototip kartındaki son yapı kalıcı saatinizdeki sokete takabilirsiniz. Bunu yaparken antistatik önlemleri uyguladığınızdan emin olun. Mikroişlemciyi tutarken antistatik bir bilek kayışı kullanın.
Adım 3: Protoboard Üzerinde Devre İnşası
Devre, bir prototip kart parçası üzerine inşa edilmiştir ve #30 AWG tel sarma teli kullanılarak noktadan noktaya kablolanmıştır. Sert ve güvenilir bir sonuç sağlar. Sahip olduğum transformatörün kablo ucunda 5 mm'lik bir erkek fiş olduğu için, özel bir yapmak için 1/2 genişliğinde düz alüminyum şerit parçasını keserek, bükerek ve delinerek karşılık gelen dişi prizi kartın arkasına monte ettim. braketi ve ardından 4-40'lık küçük somun ve cıvatalarla panoya cıvatalayın. Konnektörü kesip kalan güç kablolarını panoya lehimleyebilir ve yaklaşık 20 dakikalık bir işten tasarruf edebilirsiniz, ancak transformatörün kalıcı olarak takılmasını istemedim tahtaya.
Adım 4: Ekran için Soket Oluşturma ve Ayakları Verme
Ekranın her iki yanında 8 adet olmak üzere 16 pini olduğundan ve pin aralığı standart 16 pin IC soketinden daha geniş olduğundan, soket boyutunu ekrana uyacak şekilde ayarlamamız gerekiyor. Bunu, soketin iki tarafını birbirine bağlayan plastiği kesmek için bir çift tel kesici kullanarak, bunları ayırarak ve ekrandaki pimlerin aralığına uygun bir boşlukla ayrı ayrı tahtaya lehimleyerek yapabilirsiniz. Bunu, doğrudan ekran pinlerine lehimlemenize ve ekranı aşırı ısıya maruz bırakmamanız için yapmanız avantajlıdır. Bunu yaptığım soketi yukarıdaki resimde panonun üst kısmında görebilirsiniz.
Ekranın dik durmasını sağlamak için, basit bir stand yapmak için fotoğraflarda gösterildiği gibi prototip panosunun alt iki köşe deliğine iki adet 1 cıvata taktım. sabitlemek için cıvataların arkasına ağır bir şey koymak istiyorum.
Adım 5: Devre Kartı Kablolarını Kontrol Etme ve Kalibre Etmeye Hazırlanma
Devre kartı bağlandıktan sonra, ancak IC'leri takmadan veya görüntülemeden veya açmadan önce, kart bağlantılarını bir DVM ile kontrol etmek iyi bir fikirdir. Çoğu DVM'yi, süreklilik olduğunda bip sesi çıkaracak şekilde ayarlayabilirsiniz. DVM'nizi bu moda ayarlayın ve ardından devre şemanızı izleyerek mümkün olduğu kadar çok devre bağlantısını kontrol edin. +5V ve Toprak noktaları arasında açık devre veya buna yakın bir devre olup olmadığını kontrol edin. Tüm bileşenlerin doğru pinlere bağlı olduğunu görsel olarak kontrol edin.
Ardından transformatörünüzü devreye bağlayın ve açın. Herhangi bir IC'yi veya ekranı takmadan önce bir kapsam veya DVM ile 5V güç rayında tam olarak 5V DC'ye sahip olduğunuzu kontrol edin.
Sonraki adıma hazırlık olarak YALNIZCA Op-Amp U5 IC'yi takın. Burada çapraz devremizin bir kare dalga oluşturduğunu kontrol edeceğiz ve RV1 potansiyometresini temiz bir 60 Hz sinyal için ayarlayacağız.
Adım 6: Devre Kalibrasyonu
Yapılması gereken tek kalibrasyon, çapraz geçiş dedektörünü besleyen doğru sinyal seviyesi için potansiyometre RV1'i ayarlamaktır. Bunu yapmanın iki yolu vardır:
1. U5'in pim 1'ine bir kapsam sondası yerleştirin ve kapsam sondası topraklama kablosunu devre toprağına bağladığınızdan emin olun. Ardından, yukarıdaki resimde gösterildiği gibi temiz bir kare dalga elde edene kadar RV1'i ayarlayın. RV1'i şu veya bu şekilde çok uzağa ayarlarsanız, ya kare dalganız olmaz ya da bozuk bir kare dalganız olur. Kare dalganın frekansının 60 Hz olduğundan emin olun. Modern bir kapsamınız varsa, muhtemelen size frekansı söyleyecektir. Benim gibi eski bir kapsamınız varsa, kare dalga periyodunun yaklaşık 16.66ms veya 1/60 saniye olduğundan emin olun.
2. Frekans modunda bir frekans sayacı veya DVM kullanarak U5'in Pin 1'indeki frekansı ölçün ve RV1'i tam olarak 60 Hz için ayarlayın.
Bu kalibrasyon yapıldıktan sonra devreyi kapatın ve devre yapısını tamamlamak için tüm IC'leri ve ekranı takın.
Adım 7: Arduino Programı
Program, her adımın ayrıntılarını anlayabilmeniz için tamamen yorumlanmıştır. Programın karmaşıklığı nedeniyle her adımı açıklamak zordur, ancak çok yüksek düzeyde şu şekilde çalışır:
Mikroişlemci gelen 60 Hz kare dalgayı alır ve 60 döngü sayar ve her 60 döngüden sonra saniye sayısını artırır. Saniye sayımı 60 saniyeye veya 3600 döngüye ulaştığında, dakika sayısı artırılır ve saniye sayımı sıfırlanır. Dakika sayımı 60 dakikaya ulaştığında saat sayımı artırılır ve dakika sayımı sıfırlanır. 13 saat sonra saat sayımı 1'e sıfırlanır, yani bu 12 saatlik bir saattir. 24 saatlik bir saat istiyorsanız, programı 24 saat sonra saatleri sıfırlayacak şekilde değiştirin.
Bu deneysel bir projedir, bu yüzden Ayarla ve Arttır düğmelerinde anahtar sıçramasını bastırmak için bir Do-While döngüsü kullanmaya çalıştım. Oldukça iyi çalışıyor. Ayar düğmesine bir kez basıldığında, Artırma düğmesi ekranda gösterilen saatler arasında geçiş yapmak için kullanılabilir. Set düğmesine tekrar basıldığında, artırma düğmesi ekranda gösterilen dakikalar arasında geçiş yapmak için kullanılabilir. Set düğmesine üçüncü kez basıldığında saat ayarlanır ve saat çalışmaya başlar.
7 segmentli ekranlarda her sayıyı göstermek için kullanılan 0 ve 1 kalıpları Seven_Seg adlı dizide saklanır. Geçerli saat zamanına bağlı olarak, bu desenler 74HC595 IC'ye beslenir ve ekrana gönderilir. Bu verileri almak için herhangi bir zamanda ekranın 4 hanesinden hangisinin açılacağı, Dig 1, 2, 3, 4 pinli ekran aracılığıyla mikroişlemci tarafından kontrol edilir. Devreye güç verildiğinde, program ilk olarak Test_Clock adlı bir test rutini çalıştırır ve bu, her ekranı 0'dan 9'a kadar bir sayıyla aydınlatmak için doğru rakamları gönderir. Yani, gücü açtığınızda bunu görürseniz, her şeyi doğru inşa ettiğinizi bilirsiniz..
Adım 8: Parça Listesi
1 - Transformatör 120VAC - 12VAC yaklaşık 100ma veya üzeri1 - Prototip panosu yaklaşık 3.5" x 3.5"1 - 4 haneli 7 segmentli ekran YSD-439K2B-35 veya eşdeğeri (Sparkfun)2 - Küçük PCB montaj butonları HAYIR (herhangi biri)4 - 2N3904 NPN transistörleri8 - 330 ohm dirençler2 - 74LS04 Hex invertörler1 - 74HC595 seriden paralele 8 bit kaydırma yazmacı 1 - LM358 OP-AMP (Karşılaştırıcı)1 - ATMEGA328P Mikrodenetleyici (Creatron)4 - 4.7K dirençler7 - 10K dirençler1 - 1N4007 veya 1N4001 diyot2 diyotlar1 - 120 ohm, 1/2W veya 1W direnç1 - PCB montajlı 10K potansiyometre1 - 470uF 25V kapasitör1 - 7805 TO220 paket voltaj regülatörü1 - 10uF 10V kapasitör2 - 0.1 uF 10V kapasitörler1 - 16MHz kristal (Sparkfun)2 - 22pF kapasitörler1 - Dişi güç jakı (Varsa, duvar transformatörünüze erkek fiş takmak için isteğe bağlı)2 - 16 pinli IC soketleri2 - 14 pinli IC soketleri1 - 8 pinli IC soketi1 - 28 pinli IC soketi2 - 1" uzunluğunda yaklaşık #4 veya #6 cıvata ve eşleşen somunlar2 - 1/ 4" uzunluğunda #4-40 cıvata ve uygun somunlar1 - 1/2" genişliğinde düz alüminyum şerit parçası özel kesim ve boyutuna göre delinmiş
#30 AWG tel sarma teli#22 AWG telSolder
Önerilen:
Arduino Kullanarak Led Şeritli Analog Saat & Dijital Saat Nasıl Yapılır: 3 Adım
Arduino Kullanarak Led Şeritli Analog Saat & Dijital Saat Nasıl Yapılır: Bugün Analog Saat & Led Strip ve MAX7219 Dot modülü ile Arduino ile dijital saat.Yerel saat dilimi ile saati düzeltir. Analog saat, daha uzun bir LED şerit kullanabilir, böylece duvara asılarak bir sanat eseri haline getirilebilir
Android Telefon Şarj Cihazı için Güç Hattı Filtresi Tasarlama ve Oluşturma: 5 Adım
Bir Android Telefon Şarj Cihazı için Güç Hattı Filtresi Tasarlama ve Oluşturma: Bu Eğitilebilir Kitapta, standart bir USB'den mini USB'ye kablonun nasıl alınacağını, ortasından nasıl ayrılacağını ve aşırı gürültüyü veya gürültüyü azaltacak bir filtre devresi nasıl takılacağını göstereceğim. tipik bir android güç kaynağı tarafından üretilen karma. Taşınabilir bir bilgisayarım var
Arduino IDE Kullanarak M5stick C İle Saat Yapımı - M5stack M5stick-C ile RTC Gerçek Zamanlı Saat: 4 Adım
Arduino IDE Kullanarak M5stick C İle Saat Yapımı | M5stack M5stick-C ile RTC Gerçek Zamanlı Saat: Merhaba arkadaşlar bu talimatta Arduino IDE kullanarak m5stick-C m5stack geliştirme kartı ile saat yapmayı öğreneceğiz. Ekranda ayın haftası
NTP Senkronize Çalar Saat: 8 Adım
NTP Senkronize Çalar Saat: Merhaba.Bu benim ilk dersim ve İngilizce benim ana dilim değil, bu yüzden lütfen sabırlı olun.İnternetten senkronize edilecek bir RTC ile bir NTP çalar saat yapmak istedim.Çok güzel bir saat buldum. ZaNgAbY ve bu adam(Teşekkürler)
Beton İletim Hattı Bluetooth Hoparlör: 7 Adım (Resimli)
Beton İletim Hattı Bluetooth Hoparlör: Merhaba, ben Ben ve bir şeyler yapmayı seviyorum. Bugün sizlere Beton İletim Hattı Bluetooth Hoparlör nasıl yapılır onu göstereceğim.Odama modern görünümlü bir hoparlör yapmak istiyordum bu yüzden kasa için betonu seçtim. Ben çok yaşadım