İçindekiler:
- Adım 1: Malzeme Listesi
- Adım 2: Oyma ve Oyma
- Adım 3: Zımparalama ve Vernik Uygulama
- Adım 4: Devreyi Yapmak
- Adım 5: Programı Yükleme
- Adım 6: LED'leri Yerleştirme
- Adım 7: LED'leri Bağlama
- Adım 8: Devre Kartının LED'lerle Bağlanması
- Adım 9: Mermerleri Yerleştirme
Video: İkili Masa Saati: 9 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
İkili Saatler, ikiliyi (dijital cihazların dili) bilen kişi için harika ve özeldir. Eğer bir teknoloji adamıysanız, bu garip saat tam size göre. Öyleyse kendin yap ve zamanını gizli tut!
İnternette çok sayıda farklı türde ikili saat bulacaksınız. Hatta amazon.com gibi çevrimiçi mağazadan ikili saat satın alabilirsiniz. Ama bu saat hepsinden farklı ve ben burada ona zarif bir görünüm vermek için mermer oynamayı kullandım.
Aşağı inmeden önce lütfen demo videosunu izleyin.
Adım 1: Malzeme Listesi
Donanım bileşenleri
1. Arduino Pro Micro (aliexpress.com'dan satın alın): Bu, saatin ana kalbidir ve RTC'den zamanı okur ve LED'leri buna göre sürmek için talimat verir. Boyut sizin için önemli değilse Pro Micro yerine Arduino Nano hatta Arduino Uno kullanabilirsiniz.
2. DS3231 RTC Modülü (aliexpress.com'dan satın alın): DS3231 RTC, güç kesildiğinde bile zamanı takip eder. DS1307 gibi diğer RTC kullanılabilse de, DS3231 daha doğrudur.
3. MAX7219CNG LED Sürücü IC (aliexpress.com'dan satın alın): Arduino'nun sınırlı sayıda pini vardır. Yani, Arduino pinlerini boşa harcamadan tonlarca LED sürmek istiyorsanız, MAX7219 hayat kurtarıcıdır. Seri veri alır ve 64 LED'i bağımsız olarak çalıştırabilir.
4. 20 ADET Mavi LED, 5mm (aliexpress.com'dan satın alın): Mavi benim için en iyi sonucu verdi. Diğer renkler ile deneyebilirsiniz.
5. 20 ADET Mermer Oynayan (aliexpress.com'dan satın alın): Standart ebatta mermer oynayan mermer kullanılmıştır. Mermerin ışığı geçirebilmesi için şeffaf olması gerekir.
6. Direnç 10K: MAX7219 IC'nin segment akımını kontrol etmek için kullanılır. Farklı segment akımının tam değerini öğrenmek için veri sayfasına bakın.
7. Teller
8. Prototip PCB Kartı (aliexpress.com'dan satın alın): IC tabanlı MAX7219 IC için bir prototip PCB kartı kullandım. Ayrıca özel PCB kartınızı da tasarlayabilirsiniz.
Donanım Araçları
1. CNC 3018 PRO Lazer Gravür Ahşap CNC Router Makinesi (aliexpress.com'dan satın alın): Bu DIY CNG makinesi, mermer ve LED'ler için ahşaba oyma yapmak için kullanıldı. Bu, herhangi bir üretici ve hobi için düşük bir fiyata sahip mükemmel bir makinedir.
2. Lehimleme İstasyonu (aliexpress.com'dan bir tane satın alın): Proje için biraz lehim gerekiyor ve iyi bir havya, bir üretici için olmazsa olmaz bir araçtır. 60W, DIY lehimleme için iyi bir seçimdir.
3. Tel Kesici (aliexpress.com'dan satın alın)
4. CNC için Titanyum Kaplamalı Karbür Uçlu Freze (aliexpress.com'dan satın alın): Makineyle birlikte verilen uçla da deneyebilirsiniz. Bu durumda, tasarımda bazı değişiklikler yapmalısınız.
Adım 2: Oyma ve Oyma
Saatin LED'lerini yerleştirmek için 165X145X18.8 mm Yumuşak Akçaağaç ahşap parça aldım. Her ledin üstüne bir bilye yerleştireceğim ve standart oynayan bilyenin boyutu 15.5mm çapındadır. Böylece 7 mm derinliğinde 15.7 mm delikler açtım. Deliğin ortasına LED'i yerleştirmek için 5 mm'lik bir matkap yaptım. Tüm metin 2mm derinlikte yapılmıştır. Seçtiğiniz derinliği artırabilir veya azaltabilirsiniz. Metin için lazer kazımayı da deneyebilirsiniz.
Tasarımın tamamı Inventables'tan Easel tarafından yapılmıştır. Easel, tek ve basit bir programdan tasarlamanıza ve oymanıza izin veren web tabanlı bir yazılım platformudur ve özelliklerin çoğunun kullanımı ücretsizdir. Sadece bir hesap oluşturarak veya Gmail kullanarak sisteme giriş yapmanız yeterliydi.
Easel Pro, Inventables'ın ücretsiz Easel yazılımını temel alan üyelik tabanlı bir bulut yazılımıdır. Easel ve Easel Pro, karmaşık CAD ve CAM ürün üretim yazılımıyla ilişkili engelleri en aza indirerek kullanıcıların fiziksel ürünler üretmesini kolaylaştırır.
Easel kullanarak tasarım dosyasını G kodu formatında dışa aktarabilir veya CNC'nizi doğrudan Easel ortamından ayarlayabilir ve komutu CNC'ye gönderebilirsiniz. Bu durumda, Şövale sürücüsünü yüklemeniz gerekir. Ayrıca önceden oluşturulmuş bir G kodunu Easel IDE'ye aktarabilir ve değiştirebilirsiniz. Tasarım dosyasını buraya ekledim. Easel kullanarak tasarımı tercihinize göre kolayca değiştirebilirsiniz.
Adım 3: Zımparalama ve Vernik Uygulama
Vernik, ahşap projelere ve tablolara güzel bir bitiş sağlayabilir. Ahşaba vernik uygulamadan önce parçanızı zımparalayın ve çalışma alanınızı temizleyin. Zımparalama pürüzsüz bir görünüm verir ve ahşabı cilaya hazırlar. Verniği birkaç ince tabaka halinde uygulayın ve bir sonrakine geçmeden önce her birinin iyice kurumasını sağlayın. Bir resmi cilalamak için tamamen kurumasını bekleyin ve ardından verniği dikkatlice fırçalayın. Birçok resim için bir kat yeterlidir, ancak önce bir öncekinin iyice kurumasına izin verdiğiniz sürece ek bir katman ekleyebilirsiniz.
Verniği uygulamadan önce, verniği uygulamadan önce kusurları ve lekeleri çıkarmanız gerekir. Bunu yapmak için Bitmemiş parçalar için 100 tane zımpara kağıdı kullanın ve ahşabın damarı ile çalışın. Parça pürüzsüz olana kadar hafifçe zımparalayın. Ahşap parçayı temizledikten sonra verniği iyi havalandırılan bir alanda uygulayın.
Vernik, ahşabı çevresel toz ve nemden korur ancak ahşabın rengini etkileyebilir.
Adım 4: Devreyi Yapmak
Saatin ana bileşeni bir Arduino Pro Mini mikrodenetleyici kartı ve bir DS3231 RTC modülüdür. Arduino Pro Mini ve RTC modülünün bağlantısı çok basittir. RTC modülünün SDA pinini Arduino'nun SDA pinine ve RTC modülünün SCL pinini Arduino'nun SCL pinine bağlamanız gerekmektedir. SDA ve SCL pinleri aslında Arduino'nun A4 ve A5 pinleridir. Ayrıca Arduino ve RTC modülleri arasında ortak bir toprak bağlantısı yapmanız gerekiyor. Bağlantıları yapmak için jumper kabloları kullandım.
Arduino ve DS3231 RTC arasındaki bağlantı:
Arduino | DS3231 |
---|---|
SCL (A5) | SCL |
SDA (A4) | SDA |
5V | VCC |
GND | GND |
Saat, dakika ve saniyeyi göstermek için ikili bir saat 20 LED'e ihtiyaç duyuyordu. Tarihi göstermek istiyorsanız daha fazlasını gerektirir. Arduino kartının GPIO pinlerinde bir sınırlaması vardır. Bu yüzden, Arduino kartının sadece üç pinini kullanarak tonlarca LED'i sürmek için MAX7219CNG LED sürücü IC'yi kullandım.
MAX7219 sürücü IC, Arduino ile iletişim için sadece 3 kablo kullanırken 64 ayrı LED'i çalıştırabilir ve dahası, birden fazla sürücü ve matrisi zincirleme bağlayabilir ve yine aynı 3 kabloyu kullanabiliriz.
64 LED, IC'nin 16 çıkış pini tarafından sürülür. Şimdi soru bunun nasıl mümkün olduğu. Aynı anda yanan maksimum LED sayısı aslında sekizdir. LED'ler 8×8 sıra ve sütun seti olarak düzenlenmiştir. Böylece MAX7219, her sütunu çok kısa bir süre için etkinleştirir ve aynı zamanda her satırı da çalıştırır. Böylece sütunlar ve sıralar arasında hızla geçiş yaparak insan gözü yalnızca sürekli bir ışığı fark edecektir.
MAX7219'un VCC ve GND'si Arduino'nun 5V ve GND pinlerine ve diğer üç pin olan DIN, CLK ve CS, Arduino kartının herhangi bir dijital pinine gider. Birden fazla modül bağlamak istiyorsak önceki devre kartının çıkış pinlerini yeni modülün giriş pinlerine bağlamamız yeterli. Aslında bu pinler, önceki kartın DOUT pininin yeni kartın DIN pinine gitmesi dışında hepsi aynıdır.
Arduino ve MAX7219CNG arasındaki bağlantı:
Arduino | MAX7219 |
---|---|
D12 | DIN |
D11 | CLK |
D10 | YÜK |
GND | GND |
Adım 5: Programı Yükleme
Tüm program Arduino ortamında yazılmıştır. Eskiz için iki harici kütüphane kullanıldı. Biri RTC modülü, diğeri MAX7219 IC içindir. Programı derlemeden önce linkten kütüphaneleri indirin ve Arduino IED'ye ekleyin.
Arduino Pro Mini'ye program yüklemek biraz zor. Arduino Pro Mini'yi daha önce hiç kullanmadıysanız öğreticiye bir göz atın:
/*
GIT: https://github.com/jarzebski/Arduino-DS3231 > GIT: https://github.com/jarzebski/Arduino-DS3231 > */ #include "Wire.h" #include "DS3231.h" #include "LedControl.h" /* Şimdi çalışmak için bir LedControl'e ihtiyacımız var. ***** Bu pin numaraları muhtemelen donanımınızla çalışmayacaktır ***** Pin 12 DataIn'e bağlı pin 11 CLK'ye pin 10'a bağlı pin 10 LOAD'a bağlı Elimizde tek bir MAX72XX var. */ DS3231 saat; RTCDateTime dt; LedControl lc=LedControl(12, 11, 10, 1); int saniye, dakika, saat; bayt numarası[10]={B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; geçersiz kurulum() { //Serial.begin(9600); /* MAX72XX başlangıçta güç tasarrufu modunda, bir uyandırma çağrısı yapmamız gerekiyor */ lc.shutdown(0, false); /* Parlaklığı orta değerlere ayarlayın */ lc.setIntensity(0, 15); /* ve ekranı temizle */ lc.clearDisplay(0); //lc.setLed(0, satır, sütun, doğru); // lc.setRow(0, 0, B11111111); // lc.setRow(0, 1, B11111111); // lc.setRow(0, 2, B11111111); // lc.setRow(0, 3, B11111111); // lc.setRow(0, 4, B11111111); // lc.setRow(0, 5, B11111111); // lc.setColumn(0, 2, B11111111); // lc.setColumn(0, 3, B11111111); // lc.setColumn(0, 4, B11111111); // lc.setColumn(0, 5, B11111111); // DS3231'i başlat clock.begin(); // Çizim derleme zamanını ayarla //clock.setDateTime(_DATE_, _TIME_); pinMode(5, INPUT_PULLUP); pinMode(6, INPUT_PULLUP); pinMode(7, INPUT_PULLUP); } int menü = 0, yukarı, aşağı; int saat_bir; int saat_ten; int dakika_bir; int dakika_ten; int saniye_bir; int saniye_ten; void loop() { if(digitalRead(5)==0){ delay(300); menü++; if(menü>3) menü = 0; } if(menu==0){ dt = clock.getDateTime(); saat = dt.saat; dakika = dt.dakika; saniye = dt.saniye; if(saat>12) saat = saat - 12; if(saat==0) saat = 1; saat_bir = saat%10; saat_ten = saat/10; dakika_bir = dakika%10; dakika_ten = dakika/10; saniye_bir = saniye%10; saniye_ten = saniye/10; lc.setRow(0, 0, sayı[saniye_bir]); lc.setRow(0, 1, sayı[saniye_ten]); lc.setRow(0, 2, sayı[dakika_bir]); lc.setRow(0, 3, sayı[dakika_ten]); lc.setRow(0, 4, sayı[saat_bir]); lc.setRow(0, 5, sayı[saat_ten]); } if(menu==1){ if(digitalRead(6)==0){ gecikme(300); saat++; if(saat>=24)saat = 0; } if(digitalRead(7)==0){ gecikme(300); saat--; if(saat=60) dakika = 0; } if(digitalRead(7)==0){ gecikme(300); dakika--; if(dakika<0) dakika = 0; } dakika_bir = dakika%10; dakika_ten = dakika/10; lc.setRow(0, 4, B00000000); lc.setRow(0, 5, B00000000); lc.setRow(0, 1, B00000000); lc.setRow(0, 0, B00000000); lc.setRow(0, 2, sayı[dakika_bir]); lc.setRow(0, 3, sayı[dakika_ten]); } if(menu==3){ saat.setDateTime(2020, 4, 13, saat, dakika, 01); menü = 0; } //lc.setLed(0, satır, sütun, yanlış); //lc.setLed(0, satır, sütun, doğru); //lc.setColumn(0, sütun, B10100000); //lc.setRow(0, 4, B11111111); //lc.setRow(0, satır, (bayt)0); //lc.setColumn(0, sütun, (bayt)0); // Baştaki sıfır için DS3231_dateformat örneğine bakın // Serial.print("Ham veri: "); // Seri.baskı(dt.yıl); Seri.print("-"); // Seri.baskı(dt.ay); Seri.print("-"); // Seri.baskı(dt.gün); Seri.print(" "); // Seri.baskı(dt.saat); Seri.print(":"); // Seri.print(dt.dakika); Seri.print(":"); // Seri.baskı(dt.saniye); Seri.println(""); // // gecikme(1000); }
Adım 6: LED'leri Yerleştirme
Bu aşamada tahtanın deliklerine tüm ledleri koyacağım. LED'lerin bağlantıları şematik olarak gösterilmiştir. LED'leri sürmek için MAX7219 LED sürücüsünü kullanacağımız için tüm LED'ler matris şeklinde bağlanmalıdır. Böylece her sütundaki tüm LED'lerin anot pinlerini ve her sıranın tüm katot pinlerini şematik olarak birbirine bağladım. Şimdi, sütun pimlerimiz aslında LED'lerin anot pimleridir ve sıra pimleri aslında LED'lerin katot pimleridir.
MAX7219 kullanan LED'leri sürmek için bir ledin katot pinini IC'nin bir rakam pinine ve ledin anot pinini IC'nin bir segment pinine bağlamanız gerekir. Bu yüzden kolon pinlerimiz segment pinlerine, sıra pinlerimiz MAX7219'un rakam pinine bağlanmalıdır.
MAX7219 IC'nin ISET pini ile VCC'si arasına bir direnç bağlamanız gerekir ve bu direnç segment pin akımını kontrol eder. Her segment pininde 20mA'yı korumak için 10K direnç kullandım.
Adım 7: LED'leri Bağlama
Bu aşamada tüm ledleri satır-kolon matrix formatında bağladım. LED'leri bağlamak için ekstra jumper kabloları kullanmam gerekiyordu ancak LED'lerin uçları birbirine değecek kadar uzunsa, ekstra kablo yardımı olmadan bağlantıyı yapabilirsiniz.
Bu konfigürasyonda, akımla MAX7219 ilgileneceğinden direnç gerekmez. Göreviniz ISET direnci için doğru değeri seçmek ve bu direnç ile ISET pinini yukarı çekmek. LED'leri yerleştirmeden ve bağlamadan önce her LED'i kontrol etmenizi öneririm. Çünkü kötü bir LED yerleştirmek çok zaman öldürecek. Bir sonraki adımda satır ve sütun tellerini MAX ic'ye bağlayacağız.
Adım 8: Devre Kartının LED'lerle Bağlanması
RTC, Arduino ve MAX7219'u içeren devre kartımız uzun süredir hazır ve bir önceki aşamada LED matrisini de hazırlamıştık. Şimdi şemaya göre tüm şeyleri birbirine bağlamamız gerekiyor. Öncelikle sıra ve kolon tellerini MAX7219IC'ye bağlamamız gerekiyor. Bağlantı şematikte belirtilmiştir. Daha açık hale getirmek için aşağıda verilen tabloyu takip edin.
LED Matrisi | MAX7219CNG |
---|---|
SIRA0 | SAYI0 |
SATIR1 | BAŞKA1 |
2. satır | BAŞLIK2 |
SATIR3 | hane3 |
SÜTUN0 | SEGA |
SÜTUN1 | SEGB |
SÜTUN2 | SEGC |
SÜTUN3 | SEGD |
SÜTUN4 | SEGE |
SÜTUN5 | SEGF |
SIRA0-> En üstteki satır
COLUMN0 -> En sağdaki sütun (SS COLUMN)
Bağlantıyı yaptıktan sonra, bağlantıyı koparmamak için PCB kartını ve Arduino'yu tahta parça ile sabitlemeniz gerekir. Tüm devreleri yerinde sabitlemek için sıcak tutkal kullandım. Herhangi bir kısa devreyi önlemek için, PCB'nin alt tarafındaki lehim eklemini gizlemek için büyük miktarda yapıştırıcı kullanın.
Bir saati kullanılabilir hale getirmek için, gerektiğinde zamanı ayarlama seçeneğine sahip olmanız gerekir. Saati ayarlamak için üç düğme anahtarı ekledim. Biri seçeneği değiştirmek için, ikisi saat ve dakikayı artırmak ve azaltmak için. Düğmeler, bunlara kolayca erişilebilmesi için sağ üst köşeye yerleştirilmiştir.
Adım 9: Mermerleri Yerleştirme
Bu projemizin son aşamasıdır. Tüm devre bağlantıları tamamlanmıştır. Şimdi mermeri ahşap saatin üst tarafına yerleştirmeniz gerekiyor. Mermerleri yerleştirmek için sıcak tutkal kullandım. Bunun için şeffaf beyaz renkli tutkal çubuğu kullanın. Üst taraftan her deliğe sıcak tutkal sürdüm ve LED'lerin üzerine mermeri nazikçe her deliğe yerleştirdim. Tutkalın eşit olarak eklenmesi ledin parlamasını artıracaktır. Saatim için MAVİ LED kullandım. Bana en iyi sonucu verdi.
Saate güç verin. Zamanı gösteriyorsa Tebrikler!!!
Başardın!
Eğlence!
Make it Glow Yarışmasında İkincilik
Önerilen:
ESP8266'yı Kullanan Ağ Saati Dijital Saati: 4 Adım (Resimlerle)
ESP8266'yı Kullanarak Ağ Saati Dijital Saati: NTP sunucuları ile iletişim kuran ve ağ veya internet saatini gösteren küçük şirin bir dijital saatin nasıl oluşturulacağını öğreniyoruz. WeMos D1 mini'yi bir WiFi ağına bağlanmak, NTP zamanını almak ve bir OLED modülünde görüntülemek için kullanıyoruz.Yukarıdaki video t
Emeklilik Saati / Sayım/Dn Saati: 4 Adım (Resimli)
Emeklilik Saati / Sayım / Dn Saati: Çekmecede bu 8x8 LED nokta vuruşlu ekranlardan birkaçı vardı ve onlarla ne yapacağımı düşünüyordum. Diğer talimatlardan esinlenerek, gelecekteki bir tarihe/saate geri sayım yapmak için bir geri sayım/yukarı geri sayım ekranı oluşturma fikrini aldım ve eğer hedef zaman p
İnternet Saati: NTP Protokolüyle ESP8266 NodeMCU Kullanan OLED İle Tarih ve Saati Görüntüleme: 6 Adım
İnternet Saati: OLED ile Tarih ve Saati Görüntüleme ESP8266 ile NodeMCU Kullanarak NTP Protokolü ile: Merhaba arkadaşlar, bu talimatta internetten zaman alacak bir internet saati oluşturacağız, böylece bu projenin çalışması için herhangi bir RTC'ye ihtiyacı olmayacak, sadece bir çalışan internet bağlantısı Ve bu proje için bir esp8266'ya ihtiyacınız var
Neo Steampunk Masa Saati: 5 Adım
Neo Steampunk Masa Saati: Bakır boru nedeniyle Steampunk. Modern Arduino nedeniyle Neo. Bakır çerçeve içinde elektronik parçaları tutan yaylar nedeniyle antisismik
Ses Görselleştirme, İkili Saat ve FM Alıcılı Masa Amplifikatörü: 8 Adım (Resimlerle)
Ses Görselleştirmeli, İkili Saatli ve FM Alıcılı Masa Amplifikatörü: Amplifikatörleri severim ve bugün son zamanlarda yaptığım düşük güçlü masa amplifikatörümü paylaşacağım. Tasarladığım amplifikatörün bazı ilginç özellikleri var. Entegre bir ikili saate sahiptir ve saat ve tarih verebilir ve genellikle ses olarak adlandırılan sesi görselleştirebilir