İçindekiler:
- Gereçler
- Adım 1: Devreyi Bağlayın
- Adım 2: Buzzer Bölümünü Hazırlama
- Adım 3: LED Panelini Hazırlama
- Adım 4: Anahtarı Hazırlama (Aslında buton)
- Adım 5: LED Şeridi Hazırlama
- Adım 6: Kapasitans Sensörünün Hazırlanması
- 7. Adım: Güç Kaynağını Hazırlama
- Adım 8: Arduino'ya Bağlama
- 9. Adım: Muhafaza
- Adım 10: Programlama Süresi
- Adım 11: Düzeltme Mekanizması
- Adım 12: Tüm İşlevler Nasıl Kullanılır
- Adım 13: Sonuç
- Adım 14: Güncelleme: Bir Hafta Kullanımdan Sonra
Video: DIY Arduino İkili Çalar Saat: 14 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Yine klasik ikili saat! Ama bu sefer daha fazla ek işlevle! Bu talimatta, Arduino ile size sadece zamanı değil, aynı zamanda tarihi, ayı, hatta başucu lambası olarak da kullanılabilen zamanlayıcı ve alarm fonksiyonlarıyla birlikte gösteren bir ikili alarm saatinin nasıl oluşturulacağını göstereceğim! Daha fazla uzatmadan başlayalım!
Not: Bu proje bir RTC modülü kullanmaz, bu nedenle doğruluk kullandığınız karta bağlıdır. Belirli bir süre boyunca zaman kaymasını düzeltecek bir düzeltici mekanizma ekledim, ancak zaman aralığı için doğru değeri bulmak için denemeler yapmanız gerekecek (Aşağıda bununla ilgili daha fazla bilgi var) ve düzeltici mekanizmayla bile kaymaya devam edecek uzun bir süre boyunca (bir olmadan karşılaştırıldığında). Herhangi biri ilgileniyorsa, bu projede RTC modülünün kullanımını uygulamaktan çekinmeyin
Gereçler
5mm LED (herhangi bir renkte, gösterge olarak bir RGB LED'li 13 beyaz LED kullandım) --- 14 adet
Arduino Nano (diğerleri çalışabilir) --- 1 adet
Mikro anahtar --- 1 adet
Küçük bir parça alüminyum folyo
Montaj panosu (muhafaza için, ancak kendinizinkini tasarlamaktan çekinmeyin)
Beyaz kağıt parçası (veya başka bir renk)
Biraz plastik film (kitabın kapağı olarak kullanılan)
demet tel
Zil --- 1 adet
NPN transistör --- 1 adet
Dirençler 6k8 --- 14 adet, 500R --- 1 adet, 20R (10Rx2) --- 1 adet, 4k7 --- 1 adet
Proje için güç kaynağı (li-on pil kullandım)
5050 LED şerit ve sürgülü anahtar (isteğe bağlı)
Adım 1: Devreyi Bağlayın
Bu adımı şu şekilde böleceğim:
1) Zil parçası
2) LED paneli
3) Anahtar (düğme)
4) LED şerit
5) Kapasite sensörü
6) Güç kaynağı
7) Hepsini Arduino'ya bağlayın
Çoğu zaman, bu sadece bir "şemayı takip et" adımıdır. Bu yüzden yukarıdaki şemaya bakın veya hatta indirin ve yazdırın!
Adım 2: Buzzer Bölümünü Hazırlama
Daha önce Arduino ile buzzer kullandıysanız, doğrudan Arduino'ya bağlarsak yeterince yüksek olmayacağını bileceksiniz. Yani bir amplifikatöre ihtiyacımız var. Amplifikatörü inşa etmek için bir NPN transistörüne ihtiyacımız var (temelde herhangi bir NPN çalışacak, eski projeden aldığım için S9013 kullandım) ve akımı sınırlamak için bir direnç. Başlamak için önce transistörün kollektörünü, vericisini ve tabanını tanımlayın. Veri sayfasını biraz araştırmak bunun için işe yarayacaktır. Ardından, transistörün kolektörünü buzzerın negatif terminaline lehimleyin. Buzzer'ın pozitif terminalinde, daha sonra Arduino'muza lehimleyebilmemiz için sadece bir parça tel lehimliyoruz. Bundan sonra, 500R (veya herhangi bir benzer direnç değeri) direncini transistörün tabanına ve dirençten lehimleyin, ileride kullanmak üzere başka bir tel parçası lehimleyin. Son olarak, iki 10R direncini seri olarak transistörün emitörüne lehimleyin ve dirençlerden gelen başka bir kabloyu bağlayın.
Gerçekten, şemaya bakın.
p/s: Bunu yazarken hala transistör için direnç seçmeyi gerçekten bilmiyorum. Kullandığım değer ampirik olarak seçilmiştir.
Adım 3: LED Panelini Hazırlama
LED'leri ve rezistörü buna göre prototip panosuna takın ve lehimleyin. Bu kadar. Şemayı takip edin. Kullandığım boşlukla ilgileniyorsanız, her sütun için 3 delik ve her satır için iki delik (resme bakın). Ve gösterge LED'i? Rastgele taktım.
LED'leri ve direnci karta lehimledikten sonra, LED'lerin tüm pozitif terminallerini birbirine bağlayın. Daha sonra LED'lerin negatif terminallerindeki dirençlerin her birine kabloları tek tek lehimliyoruz, böylece daha sonra Arduino'ya lehimleyebiliriz.
NOT: Bu adımda kafanız karışabilir. Unutmayın, tüm toprakları birbirine bağlamak yerine, tüm pozitif terminalleri birbirine ve negatif terminali Arduino'daki bireysel pime bağlarız. Böylece toprak olarak Vcc değil Arduino GPIO pinini kullanıyoruz. Yanlışlıkla geriye bağlarsanız endişelenmeyin. Tüm YÜKSEK'ten DÜŞÜK'e ve DÜŞÜK'ten YÜKSEK'e kadar hepsini ledkontrol işlevinde değiştirebilirsiniz.
Adım 4: Anahtarı Hazırlama (Aslında buton)
Anahtar için (buna anahtar diyeceğim çünkü mikro anahtar kullandım, ancak bunun buton olduğunu biliyorsunuz), 4k7 çekme direncine ve tabii ki anahtarın kendisine ihtiyacımız var. Ah, biraz kablo hazırlamayı unutma. Direnci ve bir parça teli mikro anahtarın ortak toprağına (COM) lehimleyerek başlayın. Ardından, mikro anahtarın normalde açık olan (NO) ucuna başka bir tel parçası lehimleyin. Son olarak, dirence başka bir kablo bağlayın. Biraz sıcak tutkalla sabitleyin.
Bilgi köşesi: Neden bir aşağı çekme direncine ihtiyacımız var?
"Dijital G/Ç pinini her şeyden ayırırsanız, LED düzensiz bir şekilde yanıp sönebilir. Bunun nedeni, girişin "kayan" olmasıdır - yani, rastgele YÜKSEK veya DÜŞÜK olarak dönecektir. devredeki aşağı çekme direnci." -- Kaynak: Arduino web sitesi
Adım 5: LED Şeridi Hazırlama
LED şerit, isteğe bağlı olan başucu lambası içindir. Sadece LED şeridi bağlayın ve anahtarı seri olarak kaydırın, özel bir şey değil.
Adım 6: Kapasitans Sensörünün Hazırlanması
Tamam resme bakın. Temel olarak, teli küçük bir alüminyum folyo parçasına bağlayacağız (çünkü alüminyum folyo lehimlenemez), ardından küçük bir montaj panosuna bantlayacağız. Nazik bir hatırlatma, alüminyum folyoyu tamamen bantlamadığınızdan emin olun. Bir kısmını doğrudan temas için açıkta bırakın.
7. Adım: Güç Kaynağını Hazırlama
Güç kaynağı olarak li-on pil kullandığım için şarj ve koruma için bir TP4056 modülüne ve voltajı 9v'a dönüştürmek için bir boost dönüştürücüye ihtiyacım var. 9V duvar adaptörü kullanmaya karar verdiyseniz, bir DC jakına ihtiyacınız olabilir veya doğrudan bağlayın. Amplifikatörün direnç değerinin 9V için tasarlandığını ve başka bir voltaj kullanmak istiyorsanız direnci değiştirmeniz gerekebileceğini unutmayın.
Adım 8: Arduino'ya Bağlama
Şemayı takip edin! Şemayı takip edin! Şemayı takip edin!
Yanlış pini bağlamayın yoksa işler garipleşir.
9. Adım: Muhafaza
Tasarımımın ölçüleri 6.5cm*6.5cm*8cm olduğu için biraz hacimlidir. LED ekran için bir ön pencere ve başucu lambası için üst pencereden oluşur. Tasarımım için resimlere bakın.
Adım 10: Programlama Süresi
Aşağıdaki çizimimi indirin ve Arduino'nuza yükleyin. Bunu nasıl yapacağınızı bilmiyorsanız, bu projeyi yapmak için zahmet etmeyin! Hayır, şaka yapıyorum, işte iyi bir öğretici: Arduino'ya kroki yükleyin
Ardından seri monitörü açın ve geçerli saati çıkardığını görmelisiniz. Zamanı ayarlamak için, bunun nasıl yapılacağı aşağıda açıklanmıştır.
Saati ayarlamak için: h, XX -- burada xx geçerli saattir
Dakikayı ayarlamak için: min, XX -- xx geçerli dakikadır
Saniyeyi ayarlamak için: s, XX
Tarihi ayarlamak için: d, XX
Ayı ayarlamak için: pzt, XX
Yukarıdaki yorum yürütüldüğünde, size az önce ayarladığınız değeri döndürmelidir. (Örneğin, saati h, 15 ile ayarladığınızda, seri monitörde Saat: 15 döndürmesi gerekir.
Kapasitans sensörü için, çalışmadan önce kalibre etmeniz gerekebilir. Bunu yapmak için mikro anahtara iki kez basın ve seri monitöre bakın. Bir grup sayı vermelidir. Şimdi parmağınızı kapasitans sensörünün üzerine koyun ve sayının aralığını not edin bakın. Ardından, "captrigger" değişkenini değiştirin. Diyelim ki basıldığında 20-30 elde ettiniz, ardından captrigger'ı 20'ye ayarlayın.
Çizim, ADCTouch kitaplığını kullanır, yüklediğinizden emin olun.
Adım 11: Düzeltme Mekanizması
Kodumdaki düzeltme mekanizmasının süresi benim için doğru olana ayarlandı. Zaman hala doğru değilse, "corrdur" değişkeninin değerini değiştirmeniz gerekir.
Düzeltme artık en son güncellemede varsayılan olarak 0'dır.
Corrdur değeri, bir saniyeyi yavaşlatmanın kaç milisaniye sürdüğünü ifade eder.
Corrdur'un değerini bulmak için aşağıdaki formülü kullanın:
2000/(y-x)/x)
Burada x=geçen gerçek süre ve y=saatin geçen süre, her ikisi de saniye cinsinden
x ve y'nin değerini bulmak için küçük bir deney yapmanız gerekir.
Saatin zamanını gerçek zamana ayarlayın ve başlangıç zamanını kaydedin (gerçek başlangıç zamanı ve saat başlangıç zamanı aynı olmalıdır). Bir süre sonra (birkaç saat), son gerçek zamanı ve saatin son zamanını kaydedin.
x=gerçek son zaman-başlangıç zamanı ve y=saat son zaman-başlangıç zamanı
Ardından koddaki corrdur değerini değiştirin ve Arduino'ya yeniden yükleyin.
Ardından testi tekrarlayın ve bu sefer formül şu şekilde değişti:
2000/((2/z)+(y-x/x))
Burada x ve y öncekiyle aynı şeydir, z ise mevcut düzeltme değeridir.
Tekrar yükleyin ve sizin için yeterince hassas olana kadar testi tekrar tekrar yapın.
Saatiniz hala hızlanıyorsa, corrdur 0'a ayarlanmışsa (düzeltici mekanizma olmadığı anlamına gelir), ikinci++ 'ı ikinci olarak değiştirmeniz gerekir - kodun düzeltici mekanizma kısmında (yorum yaptım), corrdur'u 0'a ayarlayın, sonra hayır'ı bulun. bir saniyeyi hızlandırmak için gereken milisaniye.
Adım 12: Tüm İşlevler Nasıl Kullanılır
Mikro anahtara basarak modu değiştirebilirsiniz.
İlk modda, sadece zamanı gösterir. Gösterge ışığı saniyede 1 kez yanıp sönerse, alarm kapalıdır. Saniyede 2 kez ise alarm açıktır. Kapasitans sensörüne basarak ilk modda alarmı 10 dakika erteleyebilirsiniz.
İkinci modda tarihi gösterir. Kapasitans sensörüne basmak hiçbir şey yapmaz.
Üçüncü modda zamanlayıcıyı ayarlayabilirsiniz. Kapasitans sensörüne basmak zamanlayıcıyı açacaktır ve gösterge ışığının yanıp sönmeye başladığını görmelisiniz. Kapasitans sensörü ayrıca zamanlayıcı süresini ayarlamak için kullanılır. Zamanlayıcı aralığı 1 dakika ile 59 dakika arasındadır.
Dördüncü modda, kapasitans sensörünü kullanarak alarm saatini ayarlayabilirsiniz.
Beşinci modda, kapasitans sensörünü kullanarak alarm dakikasını ayarlayabilirsiniz.
Altıncı modda, kapasitans sensörüne basmak, saati değiştirmeden dakikayı 30'a ve saniyeyi 0'a sıfırlayacaktır. Bu, saatiniz 30 dakikadan fazla kaymadığı sürece, bu modu kullanarak yeniden kalibre edebilirsiniz.
Yedinci mod, şarj olurken kapasitans sensörünün arızalanması durumunda hiçbir şey yapmama modudur.
Oh, alarmı kapatmak için mikro anahtara basmanız yeterli. (ALARM ERTELEMEYİ İÇEREN SON GÜNCELLEME)
Peki, saati okumaya ne dersin? Bu kolay! İkili Saat Okuma -- Wikihow İlk başta garip hissedebilirsin ama alışacaksın!
Adım 13: Sonuç
Bu projeye neden başladım. Başlangıçta bunun nedeni eski bir dijital saatim olması ve onu bir çalar saate dönüştürmek istememdi. Ne yazık ki eski saat bozuldu. Bu yüzden neden Arduino kullanarak bir tane yapmıyor gibiydim? Biraz google aramasıyla, Cello62 tarafından verilen talimatta RTC'siz bu ikili saat projesini buldum. Ancak benim istediğim çalar saat özelliği yok, bu yüzden kodu alıp kendim değiştiriyorum. Ve proje doğuyor. Ayrıca, son zamanlarda öğretilebilir üzerinde çalışan saat yarışmasını gördüm ve bu da bana bunu yapmak için daha fazla motivasyon verdi. Her neyse, bu hala Arduino kullanan ilk projem, bu yüzden bir sürü olası iyileştirme.
Gelecekteki iyileştirme:
1) RTC'yi kullanın
2) Alarmı veya saati veya zamanlayıcıyı kablosuz olarak ayarlayın!
3) Aklıma gelen özellik ne olursa olsun
Adım 14: Güncelleme: Bir Hafta Kullanımdan Sonra
Bariz problemin yanı sıra - zaman kayması, söyleyeceğim bir sonraki şey güç tüketimi. Öncelikle voltajı 9v'a çıkarıyorum, daha sonra Arduino'daki lineer regülatör tarafından düşürülecek. Doğrusal regülatör çok verimsizdir. Saat sadece BİR GÜN sürer. Bu, her gün şarj etmem gerektiği anlamına geliyor. Tüm sistemin sadece yaklaşık %50 verimli olduğunu anlayana kadar bu en büyük anlaşma değil. Pilimin 2000 mAh olduğu göz önüne alındığında, her gün boşa harcanan gücü hesaplayabilirdim.
Güç kaybı=(7,4Wh*%10)+(7,4Wh*90%*50%)=4,07Wh/gün
Bu, yılda 1.486kWh! 283 g su kaynatmak için kullanılabilir (25 C'den 100 C'ye kadar)? Ama yine de, saatin verimliliğini artıracağım. Bunu yapmanın yolu ise lineer regülatörü hiç kullanmamaktır. Bu, yükseltici dönüştürücüyü 5V'yi doğrudan Arduino'daki 5V pinine verecek şekilde ayarlamamız gerektiği anlamına gelir. Daha sonra, boşa harcanan gücü daha da en aza indirmek için, günde 0.95Wh boşa harcayacakları için iki yerleşik LED'i (pin13 ve güç) çıkarmam gerekiyor. Ne yazık ki, SMD lehimlemede tamamen acemiyim, bu yüzden bunu yapmamın tek yolu tahtadaki rayı kesmek. Bundan sonra, buzzer ve başucu lambasındaki emitör direncini çıkarmam gerekiyor (LED şerit 5V'ta çalışmıyor). Ancak bu, bu harika özelliği bırakmanız gerektiği anlamına mı geliyor? Numara! Burada iki seçeneğiniz var: Normal 5mm LED diyotu kullanın veya 5V LED şerit kullanın. Ama benim için, geçen hafta boyunca bu projeyi yapmaktan çoktan yorulmuştum, bu yüzden bu özelliği bırakmaya karar verdim. Bununla birlikte, anahtarı orijinal olarak daha fazla enerji tasarrufu sağlamak için saat panelini açmak veya kapatmak için ışık özelliği için kullandım, ancak kapattığımda LED yanıp sönüyor. Hata özellik haline geldi mi? Bilmiyorum (Bilenler lütfen bana aşağıdan anlatsın).
Değişikliğin sonunda, saat artık 2 günden fazla sürecek!
Sırada saatle ilgili daha az ciddi bir sorunum var. Şarj sırasında kapasitans sensörü çıldıracaktı, bu yüzden tamamen hiçbir şey yapmayan başka bir mod ekledim.
Zaman kaymasına gelince, sıfırlamak için her gün bilgisayara bağlanmak çok zahmetli olduğu için, dakikayı 30'a ve saniyeyi 0'a ayarlayacak başka bir mod ekledim. Bu, herhangi bir saatin yarısında sıfırlayabileceğiniz anlamına geliyor!
Önerilen:
Akıllı Çalar Saat: Raspberry Pi İle Yapılmış Akıllı Çalar Saat: 10 Adımda (Resimlerle)
Akıllı Çalar Saat: Raspberry Pi ile Yapılan Akıllı Çalar Saat: Hiç akıllı saat istediniz mi? Eğer öyleyse tam size göre bir çözüm! Akıllı Çalar Saat yaptım, siteye göre alarm saatini değiştirebileceğiniz bir saat bu. Alarm çaldığında bir ses (buzzer) duyulacak ve 2 ışık yanacaktır
Arduino İkili Saat - 3D Baskılı: 5 Adım (Resimlerle)
Arduino Binary Clock - 3D Printed: Bir süredir ofis masam için Binary saatlere bakıyorum, ancak oldukça pahalılar ve/veya çok fazla özelliklere sahip değiller. Bu yüzden onun yerine bir tane yapmaya karar verdim. Saat yaparken dikkat edilmesi gereken bir nokta, Arduino / Atmega328
Arduino Tabanlı İkili Çalar Saat: 13 Adım (Resimli)
Arduino Tabanlı İkili Alarm Saati: Merhaba, bugün size en son projelerimden biri olan ikili çalar saatimi nasıl oluşturacağınızı göstermek istiyorum. İnternette tonlarca farklı İkili saat var, ancak bu aslında renkli adreslenebilir LED şeritlerinden yapılmış ilki olabilir,
Bir MP3 Çalar'ı Teyp Çalar'a Bağlama: 6 Adım (Resimlerle)
Bir MP3 Çalar'ı Teyp Çalar'a Bağlama: Müzik dinlemek için bir mp3 çalar veya başka bir stereo kaynağı bir kaset çalara nasıl bağlanır
"Bilge Saat 2" Montajı (Birçok Ekstra Özelliği Olan Arduino Tabanlı Çalar Saat): 6 Adım
"Wise Clock 2" Montajı (Birçok Ekstra Özelliğe Sahip Arduino Tabanlı Alarm Clock): Bu eğitim, bir açık kaynak (donanım ve yazılım) projesi olan Wise Clock 2 için kitin nasıl monte edileceğini gösterir. Eksiksiz bir Wise Clock 2 kiti buradan satın alınabilir. Özetle, Wise Clock 2 bunu yapabilir (mevcut açık kaynaklı yazılımla