İçindekiler:

LEDura - Analog LED Saat: 12 Adım (Resimli)
LEDura - Analog LED Saat: 12 Adım (Resimli)

Video: LEDura - Analog LED Saat: 12 Adım (Resimli)

Video: LEDura - Analog LED Saat: 12 Adım (Resimli)
Video: Как сделать часы с вращающимся светодиодным дисплеем 2024, Temmuz
Anonim
LEDura - Analog LED Saat
LEDura - Analog LED Saat
LEDura - Analog LED Saat
LEDura - Analog LED Saat
LEDura - Analog LED Saat
LEDura - Analog LED Saat

Tinkercad Projeleri »

Sadece çeşitli projeler yapmaktan uzun bir süre sonra kendime bir talimat vermeye karar verdim. İlk olarak, harika adreslenebilir LED halka ile kendi analog saatinizi yapma sürecinde size rehberlik edeceğim. İç halka saatleri, dış halka dakikaları ve saniyeleri gösterir.

Saat, zamanı göstermenin yanı sıra oda sıcaklığını da gösterebilir ve odada çok hoş bir dekorasyon olabilir. Her 15 dakikada bir saat bazı özel efektler de yapar - video hepsini gösterir, kontrol ettiğinizden emin olun. 2 buton ve potansiyometre yardımıyla kullanıcı farklı modlar arasından seçim yapabilir ve renkleri kendi isteğine göre değiştirebilir. Ayrıca, oda kararırsa LED'leri otomatik olarak karartacak şekilde yükselttim, böylece kullanıcı gece boyunca rahatsız olmayacak.

Saat, masaya, yatak masasına yerleştirilebilir veya duvara asılabilir.

Not: Yüksek parlaklıktan dolayı resimler gerçeklikteki kadar iyi değildir.

Adım 1: Nasıl Okunur?

Nasıl Okunur?
Nasıl Okunur?

Saatin 2 halkası vardır - daha küçük olanı saatleri göstermek için ve daha büyük olanı dakikaları ve saniyeleri göstermek için. Bazı LED'ler her zaman parlar - ana saat konumlarını gösteren sözde bir pusula. Saat halkasında saat 3, 6, 9 ve 12'yi, dakika halkasında 15, 30, 45 ve 0 dakikayı temsil eder.

2. Adım: Neye İhtiyacınız Var?

Neye ihtiyacınız olacak
Neye ihtiyacınız olacak

Malzemeler:

  • 1x Arduino Nano (diğer Arduino'ları da kullanabilirsiniz)
  • 1x DS3231 RealTimeClock modülü
  • 1x Adreslenebilir led halka - 60 LED
  • 1x Adreslenebilir led halka - 24 LED
  • 2x Düğme (HAYIR - normalde açık)
  • 1x 100kOhm potansiyometre
  • 1x 5V güç kaynağı (1 Amper iletebilir)
  • 1x Besleme konektörü
  • Bazı teller
  • 1x 10kOhm direnç
  • 1x Fotodirenç
  • Prefboard (isteğe bağlı)
  • Terminal bloğu kablo konnektörleri (isteğe bağlı)
  • 25 mm kalınlığında ahşap, en az 22cmx22cm boyutunda
  • 1mm ince mat PVC plastik ebat 20cmx20xm

Aletler:

  • Bina elektroniği için temel araçlar (havya, pense, tornavida,…)
  • Matkap makinesi
  • Sıcak yapıştırıcı tabancası
  • Zımpara kağıdı ve biraz ahşap verniği
  • CNC makinesi (belki bir arkadaşında vardır)

3. Adım: Elektronik Bileşenler - Arka Plan

Elektronik Bileşenler - Arka Plan
Elektronik Bileşenler - Arka Plan
Elektronik Bileşenler - Arka Plan
Elektronik Bileşenler - Arka Plan
Elektronik Bileşenler - Arka Plan
Elektronik Bileşenler - Arka Plan

DS3231

Arduinos yerleşik osilatör ve bir zamanlayıcı kullanarak zamanı belirleyebilirdik, ancak saati güç kaynağından ayırsak bile zamanı takip edebilen özel Gerçek Zamanlı Saat (RTC) modülünü kullanmaya karar verdim. DS3231 kartı, modül güç kaynağına bağlı olmadığında güç sağlayan bir pile sahiptir. Ayrıca Arduinos saat kaynağından daha uzun sürelerde daha hassastır.

DS3231 RTC, mikro denetleyiciyle iletişim kurmak için I2C arabirimini kullanır - kullanımı çok basittir ve onunla iletişim kurmak için yalnızca 2 kabloya ihtiyacımız vardır. Modül ayrıca bu projede kullanılacak olan sıcaklık sensörünü de sağlamaktadır.

Önemli: RTC modülü için şarj edilemeyen pil kullanmayı planlıyorsanız, 200 ohm rezistörün veya 1N4148 diyotun lehimini çözmelisiniz. Aksi takdirde piliniz patlayabilir. Daha fazla bilgi bu bağlantıda bulunabilir.

WS2812 LED halka

Dakikaları takip etmek için 60 LED halka ve saatlerce 24 LED halka kullanmaya karar verdim. Bunları Adafruit'te (neoPixel halkası) veya eBay, Aliexpress veya diğer web mağazalarında bazı ucuz versiyonlarda bulabilirsiniz. Adreslenebilir led şeritler arasında büyük bir çeşitlilik vardır ve onlarla ilk kez oynuyorsanız, bazı kullanım açıklamalarını okumanızı tavsiye ederim - işte bazı faydalı bağlantılar:

https://www.tweaking4all.com/hardware/arduino/adr…

https://randomnerdtutorials.com/guide-for-ws2812b…

Adreslenebilir LED şerit 3 konnektöre sahiptir: 5V, GND ve DI/DO. İlk ikisi LED'lere güç sağlamak içindir, sonuncusu veriler içindir. Ringi Arduino'ya bağlarken dikkatli olun – data hattınız DI (data IN) pinine bağlı olmalıdır.

Arduino

Arduino Nano kullanıyorum çünkü bu proje için küçük ve yeterli. Hemen hemen tüm diğer Arduino'ları kullanabilirsiniz, ancak her şeyi ona bağlarken dikkatli olmalısınız. Düğmeler ve LED halkaları aynı pinlerde olabilir, ancak I2C konektörleri (RTC modülü için) platformdan platforma farklılık gösterebilir – veri sayfalarına bakın.

Adım 4: Elektronik - Güç Kaynağı

Elektronik - Güç Kaynağı
Elektronik - Güç Kaynağı

Arduino ve LED şeridinin her ikisi de 5V güç kaynağı ile beslenmelidir, böylece hangi voltajın gerekli olduğunu biliyoruz. LED çaldığı için oldukça fazla amper çektiği için, dijital çıkışında maksimum 20mA'ya dayanabilen Arduino ile doğrudan güç sağlayamıyoruz. Ölçümlerime göre, LED halkalar birlikte 500 mA'ya kadar çekebilir. Bu yüzden 1A'ya kadar besleme yapabilen bir adaptör aldım.

Aynı güç kaynağı ile Arduino ve LED'lere güç sağlamak istiyoruz - burada dikkatli olmalısınız.

Uyarı! LED şeridi test ederken çok dikkatli olun - Arduino ayrıca USB konektörü ile PC'ye bağlandığında güç adaptörü Arduino'ya BAĞLI OLMAMALIDIR (bilgisayarınızın USB bağlantı noktasına zarar verebilirsiniz).

Not: Aşağıdaki şemalarda Arduino'nun güç kaynağıyla mı yoksa USB konektörüyle mi beslendiğini seçmek için normal anahtarı kullandım. Ancak tahtada, Arduino'nun hangi güç kaynağından güç aldığını seçmek için bir pin başlığı eklediğimi görebilirsiniz.

Adım 5: Elektronik - Lehimleme

Elektronik - Lehimleme
Elektronik - Lehimleme
Elektronik - Lehimleme
Elektronik - Lehimleme
Elektronik - Lehimleme
Elektronik - Lehimleme
Elektronik - Lehimleme
Elektronik - Lehimleme

Tüm parçaları topladığınızda, bunları birlikte lehimlemenin zamanı geldi.

Kablolamayı düzgün yapmak istediğim için, kablolar için perfboard ve bazı terminal bloğu konektörleri kullandım, böylece değişiklik durumunda fişleri çekebilirim. Bu isteğe bağlıdır - kabloları doğrudan Arduino'ya da lehimleyebilirsiniz.

Bir ipucu: Lehimleme sırasında önünüzde olması için şemaları yazdırırsanız daha kolaydır. Ve güç kaynağına bağlamadan önce her şeyi iki kez kontrol edin.

6. Adım: Yazılım - Arka Plan

Arduino IDE'si

Arduino'yu özel yazılımı olan Arduino IDE ile programlayacağız. Arduino ile ilk kez oynuyorsanız, nasıl yapılacağına dair bazı talimatlara bakmanızı tavsiye ederim. Web'de zaten çok sayıda eğitim var, bu yüzden ayrıntılara girmeyeceğim.

Kütüphane

Popüler Adafruit yerine FastLED kütüphanesini kullanmaya karar verdim. Harika efektler yaratabileceğiniz bazı düzgün matematik işlevlerine sahiptir (Geliştiricilere teşekkürler!). Kitaplığı GitHub deposunda bulabilirsiniz, ancak kullandığım sürümün.zip dosyasını koduma ekledim.

Arduino IDE'ye nasıl harici kütüphane ekleyeceğinizi merak ediyorsanız, önceden hazırlanmış bazı talimatlara göz atabilirsiniz.

Saat modülü için Arduino IDE'ye kolayca kurabileceğiniz DS3231 gerçek zamanlı saat (RTC) (link) için Arduino kütüphanesini kullandım. IDE'deyken Sketch → Include Library → Manage Library… seçeneğine tıklayın ve ardından aramanızı yukarıdaki adla filtreleyin.

Not: Nedense şu anda.zip dosyalarını ekleyemiyorum. Kütüphaneyi GitHub depomda bulabilirsiniz.

7. Adım: Yazılım - Kod

Yazılım - Kod
Yazılım - Kod
Yazılım - Kod
Yazılım - Kod

Yapı

Uygulama 4 dosya ile oluşturulmuştur:

  • LEDclokc.ino Bu, tüm saati kontrol etmek için işlevleri bulabileceğiniz ana Arduino uygulamasıdır - CLOCK_ öneki ile başlarlar.
  • LEDclokc.h burada pin bağlantı tanımları ve bazı saat konfigürasyonlarıdır.
  • ring.cpp ve ring.h, LED halkalarını kontrol etme kodum.

LEDclock.h

Burada tüm saat tanımlarını bulacaksınız. Başlangıçta, kablolama için tanımlar vardır. Bağlantılarınızla aynı olduklarından emin olun. Sonra saat konfigürasyonları var - burada saatin sahip olduğu mod sayısı için makroyu bulabilirsiniz.

LEDclock.ino

Şemada ana döngü temsil edilmektedir. Kod önce herhangi bir tuşa basılıp basılmadığını kontrol eder. Anahtarların doğası gereği, değerlerini okumak için geri dönme yöntemini kullanmalıyız (bununla ilgili daha fazla bilgiyi bağlantıdan okuyabilirsiniz).

Düğme 1'e basıldığında, değişken modu 1 yükseltilir, düğme 2'ye basıldığında değişken tipi yükseltilir. Hangi saat modunu görmek istediğimizi belirlemek için bu değişkenleri kullanırız. Her iki düğmeye aynı anda basılırsa, saatin zamanını değiştirebilmeniz için CLOCK_setTime() işlevi çağrılır.

Daha sonra kod potansiyometrenin değerini okur ve onu değişkene kaydeder - bu değişken kullanıcı saatin renklerini, parlaklığını vb. değiştirebilir.

Sonra bir switch-case ifadesi var. Burada saatin hangi modda olduğunu belirleriz ve bu mod ile LED'lerin renklerini ayarlayan ilgili fonksiyon çağrılır. Kendi saat modlarınızı ekleyebilir ve işlevleri yeniden yazabilir veya değiştirebilirsiniz.

FastLED kitaplığında açıklandığı gibi, sonunda LED'leri önceden ayarladığımız renge çeviren FastLED.show() işlevini çağırmanız gerekir.

Kod satırları arasında çok daha detaylı açıklamalar bulabilirsiniz

Kodun tamamı aşağıdaki dosyalara eklenmiştir.

İPUCU: Tüm projeyi GitHub depomda bulabilirsiniz. Burada herhangi bir değişiklik eklersem kod da güncellenecektir.

Adım 8: Saati Yapın

Saati Yap
Saati Yap
Saati Yap
Saati Yap
Saati Yap
Saati Yap

Saat çerçevesi

Saat çerçevesini CNC makinesi ve 25 mm kalınlığında ahşap kullanarak yaptım. ProgeCAD ekinde çizilen krokiyi aşağıda bulabilirsiniz. LED halka yuvaları biraz daha büyüktür, çünkü üreticiler yalnızca dış çap ölçümlerini sağlar - iç kısım oldukça değişebilir… Saatin arkasında elektronik ve teller için çok fazla alan var.

PVC halkalar

LED'ler oldukça parlak olduğu için onları bir şekilde dağıtmak iyidir. İlk önce difüzyon işi yapan şeffaf silikon ile denedim ama oldukça dağınık ve üstte pürüzsüz hale getirmek zor. Bu yüzden 20x20 cm'lik bir parça “süt” PVC plastik sipariş ettim ve CNC makinesinde iki halka kestim. Halkaların yuvalara kayması için kenarları yumuşatmak için zımpara kağıdı kullanabilirsiniz.

yan delikler

Ardından, düğmeler, potansiyometre ve güç kaynağı konektörü için delik açmanın zamanı geldi. İlk olarak, her pozisyonu bir kalemle çizin, ardından deliği delin. Burada ne tür butonlara sahip olduğunuza bağlı – Ben hafif kavisli butonları tercih ettim. 16mm çapa sahipler, bu yüzden bu boyutta ahşap matkap kullandım. Aynısı potansiyometre ve güç konektörü için de geçerlidir. Daha sonra tüm kalem çizimlerini sildiğinizden emin olun.

Adım 9: Ahşapta Çizin

Ahşapta çizin
Ahşapta çizin
Ahşapta çizin
Ahşapta çizin
Ahşapta çizin
Ahşapta çizin

Ahşap üzerine bazı saat göstergeleri çizmeye karar verdim - burada hayal gücünüzü kullanabilir ve kendinizinkini tasarlayabilirsiniz. Ahşabı maksimum sıcaklığa ısıtılmış havya kullanarak yaktım.

Dairelerin güzel yuvarlak olması için bir parça alüminyum kullandım, içine bir delik açtım ve deliğin kenarlarını havya ile takip ettim (resme bakın). Alüminyumu sıkıca tuttuğunuzdan emin olun, böylece çizim sırasında kaymaz. Ve yaralanmaları önlemek için bunu yaparken dikkatli olun.

Çizimler yapıyorsanız ve bunların saat pikselleriyle güzel bir şekilde hizalanmasını istiyorsanız, piksellerin nerede bulunacağını size gösterecek olan “Bakım modunu” kullanabilirsiniz (Birleştirme bölümüne gidin).

Ahşabı koruyun

Saatten memnun kaldığınızda, zımparalayıp ahşap verniği ile korumanın zamanı geldi. Kenarları yumuşatmak için çok yumuşak zımpara kağıdı (500 değerinde) kullandım. Ahşabın renginin değişmemesi için şeffaf ahşap verniği kullanmanızı tavsiye ederim. Fırçanın üzerine az miktarda vernik sürün ve tahtadaki yıllıklar yönünde çekin. En az 2 kez tekrarlayın.

Adım 10: Birleştirin

birleştir
birleştir
birleştir
birleştir
birleştir
birleştir

Firs, düğmeleri ve potansiyometreyi konumlarına koyar - delikleriniz çok büyükse, bunları yerinde sabitlemek için biraz sıcak tutkal kullanabilirsiniz. Ardından halka şeridi yuvalarına yerleştirin ve kablolarını Arduino'ya bağlayın. LED halkasını yerine yapıştırmadan önce, LED piksellerinin doğru yerde, ortalanmış ve çizimle hizalanmış olduğundan emin olmak iyidir. Bu amaçla, tüm önemli pikselleri (0, 5, 10, 15, … dakika halkasında ve 3, 6, 9 ve 12 saat halkasında) gösterecek olan Bakım modunu ekledim. Güç kaynağını konektöre takmadan önce her iki düğmeyi basılı tutarak bu moda girebilirsiniz. Herhangi bir tuşa basarak bu moddan çıkabilirsiniz.

LED halkalarınızı hizaladığınızda, biraz sıcak tutkal uygulayın ve tutkal sertleşene kadar tutun. Ardından PVC halkalarınızı alın ve tekrar: LED'lere biraz sıcak tutkal sürün, hızlıca konumlandırın ve birkaç saniye basılı tutun. Sonunda, her şeyin çalıştığından emin olduğunuzda, tahtayı (veya Arduino'yu) ahşaba sıcak yapıştırabilirsiniz. İpucu: Çok fazla yapıştırıcı uygulamayın. Sadece küçük bir miktar, böylece tek bir yerde kalır, ancak daha sonra bir şeyi değiştirmek isterseniz kolayca çıkarabilirsiniz.

En uçta, düğme pili tutucusuna takın.

Adım 11: Yükseltme - Fotodirenç

Yükseltme - Fotodirenç
Yükseltme - Fotodirenç
Yükseltme - Fotodirenç
Yükseltme - Fotodirenç
Yükseltme - Fotodirenç
Yükseltme - Fotodirenç

Saat efektleri özellikle karanlıkta çok güzel. Ancak bu, kullanıcıyı gece uyurken rahatsız edebilir. Bu yüzden saati otomatik parlaklık düzeltme özelliğiyle yükseltmeye karar verdim – oda karardığında; saat LED'lerini kapatır.

Bu amaçla ışık sensörü - foto direnç kullandım. Direnci önemli ölçüde artacak; karanlık olduğunda birkaç mega ohm'a kadar ve üzerinde ışık parladığı zaman sadece birkaç yüz ohm'a sahip olacaktır. Normal bir dirençle birlikte voltaj bölücüyü oluştururlar. Yani ışık sensörünün direnci değiştiğinde, Arduino analog pinindeki (ölçebileceğimiz) voltaj da değişir.

Herhangi bir devreyi lehimlemeden ve monte etmeden önce, önce onu simüle etmek akıllıca olur, böylece davranışı görebilir ve düzeltmeler yapabilirsiniz. Autocad Tinkercad'in yardımıyla tam olarak bunu yapabilirsiniz! Sadece birkaç tıklamayla bileşenleri ekledim, bağladım ve kodu yazdım. Simülasyonda foto direnç değerine göre LED parlaklığının nasıl değiştiğini görebilirsiniz. Çok basit ve anlaşılır - devre ile oynayabilirsiniz.

Simülasyondan sonra sıra özelliği saate eklemeye geldi. Saatin ortasına bir delik açtım, foto rezistörü yapıştırdım, devrede görüldüğü gibi bağladım ve birkaç satır kod ekledim. LEDclock.h dosyasında USE_PHOTO_RESISTOR öğesini 1 olarak bildirerek bu özelliği etkinleştirmeniz gerekir. CLOCK_PHOTO_TRESHOLD değerini değiştirerek saatin hangi oda parlaklığında LED'leri karartacağını da değiştirebilirsiniz.

Adım 12: Keyfini çıkarın

İlk kez çalıştırdığınızda, saat rastgele bir zaman gösterecektir. Her iki tuşa aynı anda basarak ayarlayabilirsiniz. Doğru zamanı seçmek için düğmeyi çevirin ve herhangi bir düğmeye basarak onaylayın.

İnternette çok güzel bir projeden ilham aldım. Saati kendi başınıza oluşturmaya karar verirseniz, onlara da göz atın! (NeoClock, Wol Clock, Arduino Renkli Saat) Talimatları takip etmeye karar verirseniz, umarım bunu benim yaptığım kadar eğlenceli bulursunuz.

Bunu yapma sürecinde herhangi bir sorunla karşılaşırsanız, yorumlarda bana herhangi bir soru sormaktan çekinmeyin - memnuniyetle cevaplamaya çalışacağım!

Önerilen: