İçindekiler:

İkili Masa Saati: 9 Adım (Resimli)
İkili Masa Saati: 9 Adım (Resimli)

Video: İkili Masa Saati: 9 Adım (Resimli)

Video: İkili Masa Saati: 9 Adım (Resimli)
Video: #shorts #öğretmen #teacher #okulöncesi #eğitim #ingilizce #learning #teaching #youtubeshorts 2024, Temmuz
Anonim
İkili Masa Saati
İkili Masa Saati
İkili Masa Saati
İkili Masa Saati
İkili Masa Saati
İkili Masa Saati

İ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

Malzeme Listesi
Malzeme Listesi
Malzeme Listesi
Malzeme Listesi
Malzeme Listesi
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

Gravür ve Oyma
Gravür ve Oyma
Gravür ve Oyma
Gravür ve Oyma
Gravür ve Oyma
Gravür 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

Zımparalama ve Vernik Uygulaması
Zımparalama ve Vernik Uygulaması
Zımparalama ve Vernik Uygulaması
Zımparalama ve Vernik Uygulaması
Zımparalama ve Vernik Uygulaması
Zımparalama ve Vernik Uygulaması
Zımparalama ve Vernik Uygulaması
Zımparalama ve Vernik Uygulaması

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

Devreyi Yapmak
Devreyi Yapmak
Devreyi Yapmak
Devreyi Yapmak
Devreyi Yapmak
Devreyi Yapmak
Devreyi Yapmak
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

Programın Yüklenmesi
Programın Yüklenmesi

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

LED'lerin yerleştirilmesi
LED'lerin yerleştirilmesi
LED'lerin yerleştirilmesi
LED'lerin yerleştirilmesi
LED'lerin yerleştirilmesi
LED'lerin yerleştirilmesi
LED'lerin yerleştirilmesi
LED'lerin yerleştirilmesi

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

LED'leri bağlama
LED'leri bağlama
LED'leri bağlama
LED'leri bağlama
LED'leri bağlama
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ı

Devre Kartının LED'lerle Bağlanması
Devre Kartının LED'lerle Bağlanması
Devre Kartının LED'lerle Bağlanması
Devre Kartının LED'lerle Bağlanması
Devre Kartının LED'lerle Bağlanması
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

Mermerlerin Yerleştirilmesi
Mermerlerin Yerleştirilmesi
Mermerlerin Yerleştirilmesi
Mermerlerin Yerleştirilmesi
Mermerlerin Yerleştirilmesi
Mermerlerin Yerleştirilmesi

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!

Glow Yarışması Yap
Glow Yarışması Yap
Glow Yarışması Yap
Glow Yarışması Yap

Make it Glow Yarışmasında İkincilik

Önerilen: