İçindekiler:

60Hz Arduino Saati: 8 Adım
60Hz Arduino Saati: 8 Adım

Video: 60Hz Arduino Saati: 8 Adım

Video: 60Hz Arduino Saati: 8 Adım
Video: Arduino Nedir? Nasıl Kurulur ve Neler Yapılabilir? #1 2024, Kasım
Anonim
60Hz Arduino Saati
60Hz Arduino Saati

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: Adım 1: Şemalar

Adım 1: Şemalar
Adım 1: Şemalar

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: Adım 2: Breadboard Prototipi

Adım 2: Breadboard Prototipi
Adım 2: Breadboard Prototipi
Adım 2: Breadboard Prototipi
Adım 2: Breadboard Prototipi

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: Adım 3: Nihai İnşaat

Adım 3: Nihai İnşaat
Adım 3: Nihai İnşaat
Adım 3: Nihai İnşaat
Adım 3: Nihai İnşaat

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: Adım 4: Ekran İçin Soket Oluşturma ve Ayak Verme

Adım 4: Ekran için Soket Oluşturma ve Ayakları Verme
Adım 4: Ekran için Soket Oluşturma ve Ayakları Verme
Adım 4: Ekran için Soket Oluşturma ve Ayakları Verme
Adım 4: Ekran için Soket Oluşturma ve Ayakları Verme
Adım 4: Ekran için Soket Oluşturma ve Ayakları Verme
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: Adım 5: Devre Kartı Kablolarının Kontrol Edilmesi ve Kalibre Edilmeye Hazırlanma

Adım 5: Devre Kartı Kablolarını Kontrol Etme ve Kalibre Etmeye Hazırlanma
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: Adım 6: Devre Kalibrasyonu

Adım 6: Devre Kalibrasyonu
Adım 6: Devre Kalibrasyonu
Adım 6: Devre Kalibrasyonu
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: 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: Adım 8: PCBWay Teklifi

Bu gönderiyi sonlandırıyor, ancak bu projenin sponsoru, o sırada 5. yıl dönümlerini kutlayan PCBWay. https://www.pcbway.com/anniversary5sales.html adresinden kontrol edin ve montaj hizmetlerinin artık 30$'a kadar düştüğünü unutmayın.

Önerilen: