İçindekiler:

Mekanik Yedi Segment Göstergeli Saat: 7 Adım (Resimli)
Mekanik Yedi Segment Göstergeli Saat: 7 Adım (Resimli)

Video: Mekanik Yedi Segment Göstergeli Saat: 7 Adım (Resimli)

Video: Mekanik Yedi Segment Göstergeli Saat: 7 Adım (Resimli)
Video: YAPAY ZEKA ile SAAT ALIŞVERİŞİNE ÇIKMAK / ChatGPT 2024, Temmuz
Anonim
Mekanik Yedi Segment Göstergeli Saat
Mekanik Yedi Segment Göstergeli Saat
Mekanik Yedi Segment Göstergeli Saat
Mekanik Yedi Segment Göstergeli Saat

Birkaç ay önce geri sayım sayacına dönüştürdüğüm iki haneli mekanik 7 segmentli bir ekran yaptım. Oldukça iyi çıktı ve birkaç kişi bir saat yapmak için ekranı ikiye katlamayı önerdi. Sorun şu ki, Arduino Mega'mda zaten PWM IO'm bitiyordu ve ikinci veya üçüncü basamaklar için yeterince müsait değildim. Daha sonra bir I2C arabirimi üzerinden çalışan bu PCA9685 16 kanallı PWM sürücülerine yönlendirildim. Bunlar, bir Arduino'daki iki I2C pinini kullanarak ihtiyacım olan 28 servoyu sürmeyi mümkün kıldı. Bu yüzden, zamanı tutmak için artık bir DS1302 gerçek zamanlı saat modülü ve ekranı oluşturmak için kullanılan 28 servoyu kontrol etmek için iki adet 16 kanallı servo sürücü kullanan ve tümü bir Arduino Uno tarafından desteklenen bir saat oluşturmaya çalıştım.

Bu Eğitilebilir Kitaptan hoşlanıyorsanız, lütfen Saatler Yarışması'nda ona oy vermeyi düşünün.

Gereçler:

Saatinizi oluşturmak için bazı temel araçlara ek olarak aşağıdaki malzemelere ihtiyacınız olacak:

  • Arduino Uno - Buradan Satın Alın
  • DS1302 Saat Modülü - Buradan Satın Alın
  • 2 x PCA9685 16Ch Servo Sürücü - Buradan Satın Alın
  • 28 x Mikro Servolar - Buradan Satın Alın
  • Şerit Kablo - Buradan Satın Alın
  • Erkek Pin Başlık Şeritleri - Buradan Satın Alın
  • Dişi Pin Başlık Şeritleri - Buradan Satın Alın
  • 3mm MDF - Buradan Satın Alın
  • Siyah Sprey Boya - Buradan Satın Alın
  • 5V 5A Pil Eliminasyon Devresi - Buradan Satın Alın
  • 12V Güç Kaynağı - Buradan Satın Alın

Bu proje için ayrıca bazı 3D baskılı parçalara da ihtiyacınız olacak. Halihazırda bir 3D yazıcınız yoksa ve bir şeyler yapmaktan hoşlanıyorsanız, kesinlikle bir tane satın almayı düşünmelisiniz. Burada kullanılan Creality Ender 3 Pro uygun fiyatlı ve fiyatına göre oldukça kaliteli baskılar üretiyor.

  • Kullanılmış 3D Yazıcı - Buradan Satın Alın
  • Filament - Buradan Satın Alın

1. Adım: Plastik Bileşenleri 3B Bastırın

Plastik Bileşenleri 3D Bastırın
Plastik Bileşenleri 3D Bastırın
Plastik Bileşenleri 3D Bastırın
Plastik Bileşenleri 3D Bastırın
Plastik Bileşenleri 3B Bastırın
Plastik Bileşenleri 3B Bastırın

7 segmentli ekranı olabildiğince basit olacak şekilde tasarladım. Servo, aynı zamanda, üzerindeki segmenti tutmak için destek dirseğidir. Her segment için gerekli olan iki adet 3D baskılı bileşen vardır, servonun alt tarafını desteklemek için bir ara blok ve doğrudan servo koluna yapıştırılan ekran segmenti.

3D Baskı Dosyalarını İndirin - Mekanik 7 Segment Ekran Saati 3D Baskı Dosyaları

Parlak renkli bir PLA kullanarak servo segmentlerini ve noktalarını yazdırın. Yarı saydam yeşil kullandım ama kırmızı, turuncu veya sarı da iyi çalışmalı. Ara bloklar ve nokta destekleri için siyah PLA kullandım, böylece segmentler kapalı konuma getirildiğinde görünmezler.

Bir 3D yazıcıya erişiminiz yoksa, çevrimiçi yazdırma hizmetlerinden birini deneyin. Bileşenleri yazdıracak ve birkaç gün içinde kapınıza teslim edecek bir dizi uygun fiyatlı hizmet bulunmaktadır.

2. Adım: Kontrol Panolarınızı ve Kablolamanızı Hazırlayın

Kontrol Panolarınızı ve Kablolamanızı Hazırlayın
Kontrol Panolarınızı ve Kablolamanızı Hazırlayın
Kontrol Panolarınızı ve Kablolamanızı Hazırlayın
Kontrol Panolarınızı ve Kablolamanızı Hazırlayın
Kontrol Panolarınızı ve Kablolamanızı Hazırlayın
Kontrol Panolarınızı ve Kablolamanızı Hazırlayın
Kontrol Panolarınızı ve Kablolamanızı Hazırlayın
Kontrol Panolarınızı ve Kablolamanızı Hazırlayın

28 saat servonuzu sürmek için iki PCA9685 16 kanallı PWM sürücüsü kullanmanız gerekecek. Servoları saat ve dakika rakamlarına ayırdım, her bir rakam çifti bir tahta tarafından sürülüyordu. Bu yüzden, iki saat hanesi için servoları kontrol eden bir kartım ve iki dakika hanesi için servoları kontrol eden ikincisi var.

İkisini birbirine zincirlemek için 6 telli şerit kablo konektörü oluşturmanız ve birinci servo kontrol panosunun diğer ucuna ikinci bir başlık şeridi lehimlemeniz gerekir. Ayrıca, ikinci karttaki I2C adresini, birinciden farklı ve benzersiz bir şekilde tanımlanabilir olacak şekilde değiştirmeniz gerekecektir.

Üç kartı (iki servo kartı ve saat modülü) Arduino'nuza bağlamak için kablo demetini de oluşturmanız gerekir. Arduino'nuzdaki A4 ve A5 (Arduino Uno'da I2C) ve saat modülü pinleri CLK, DAT & RST'nin Arduino'nuzdaki 6, 7 ve 8 pinlerine I2C bağlantılarının yanı sıra her bir karta 5V ve GND'ye ihtiyacınız olacak. sırasıyla.

Güç, Arduino'ya doğrudan 12V güç kaynağından ve daha sonra PWM sürücüsünün üstündeki iki terminale bağlanan 5V 5A BEC kullanılarak servolara sağlanır. Güç kaynağına yalnızca bir servo sürücü bağlamanız yeterlidir ve bu, 6 telli şerit kablo bağlantısı aracılığıyla ikinciye güç besleyecektir.

Adım 3: Servoları Birleştirin

Servoları birleştirin
Servoları birleştirin
Servoları birleştirin
Servoları birleştirin
Servoları birleştirin
Servoları birleştirin

Segmentlerinizi yazdırdıktan sonra, 90 derece kapalı konuma döndürüldüklerinde daha az görünür olmaları için arka ve yanları siyah püskürtmeniz gerekir.

Ardından segmentleri sıcak eriyik yapıştırıcı ile servo kollarınıza yapıştırmanız gerekir. Kol zaten servo üzerindeyken bunları servoya yapıştırmaya yardımcı olur, bu şekilde onları düz ve düz bir şekilde yapıştırdığınızı kontrol edebilirsiniz.

Ayrıca her servonun altına bir ara blok yapıştırmanız gerekecek.

Küçük bir dübel veya kebap çubuğunu noktaların arkasına ve ardından taban bloklarına yapıştırarak noktaları birleştirin. Bu çubukları da siyah boyadım, böylece bir açıdan bakıldığında daha az görünürler.

4. Adım: Kurulum ve Test Etme

Kurulum ve Test
Kurulum ve Test
Kurulum ve Test
Kurulum ve Test

Tüm servoları numaralandırdım ve takip etmeyi kolaylaştırmak için numarayı her bir ipucuna yazdım. Birimler basamağındaki en üst segmentle başladım ve onlar basamağı üzerindeki orta segmentle çalıştım. Bu aynı zamanda, kartlardaki tanımlayıcıların 1'den 14'e değil, 0'dan 13'e kadar sayıldığını hatırlayarak, onları servo kontrol kartlarına taktığım sıradır.

Daha sonra segmentleri, seyahat limitleri ve yönler belirlenirken birbiri ardına hareket etmemeleri için test için aralarında yeterli boşluk olacak şekilde bir masaya yerleştirdim. Bunları birbirine yakın yerleştirmeye çalışırsanız, muhtemelen bir veya iki kişinin yanlış yönde hareket etmeye veya bir aşamada aşırı hareket etmeye çalışmasına ve segmente, servo koluna zarar verebilecek veya servo üzerindeki dişlileri soymasına neden olabilecek bir diğerine çarpacaksınız.

Adım 5: Kodu Yükleme

Kodun Yüklenmesi
Kodun Yüklenmesi
Kodun Yüklenmesi
Kodun Yüklenmesi
Kodun Yüklenmesi
Kodun Yüklenmesi

Kod ilk bakışta karmaşık görünüyor, ancak kullanılan iki kitaplık sayesinde aslında nispeten basit. Ayrıca çok fazla tekrar var çünkü güncellenmesi gereken dört farklı 7 segmentli ekran var.

İşte kodun özet bir açıklaması, daha ayrıntılı bir açıklama için tam kılavuza ve kodu indirmek için bir bağlantıya göz atın - Mekanik 7 Segment Ekran Saati

Saat modülü için virtuabotixRTC.h ve servo sürücüler için Adafruit_PWMServoDriver.h olmak üzere iki kitaplığı içe aktararak başlıyoruz. Adafruit kitaplığı, doğrudan IDE'deki kitaplık yöneticisi aracılığıyla indirilebilir ve kurulabilir.

Daha sonra her kontrol panosu için ilgili adrese sahip birer nesne oluşturuyoruz, biri saat haneleri, diğeri dakika haneleri için.

Daha sonra her servo için açık ve kapalı konumlarını saklamak için dört dizimiz var. Servolarınızın açıkken dik, kapalıyken 90 derece döndürüldüğünden ve aşırı seyahat etmediğinden emin olmak için ilerleyen adımlarda bu sayılarda ayarlamalar yapmanız gerekecektir.

Bir rakam dizisi, görüntülenecek her rakam için her segmentin pozisyonlarını saklar.

Daha sonra saat modülünü kurarız ve mevcut ve geçmiş bireysel rakamları saklamak için değişkenler yaratırız.

Kurulum işlevinde, PWM kontrol panolarını başlatır ve kurarız ve gerekirse saat süresini güncelleriz. Ardından, tüm servoların başlangıç konumunu bilmemiz için ekranı 8 8: 8 8'e ayarlamak için bir döngüden geçiyoruz. Bu aynı zamanda servoları, hepsi yukarı doğru bakacak şekilde ayarlamak için kullanılır.

Ana döngüde saat modülünden güncellenmiş zamanı alırız, onu dört haneye dökeriz ve sonra son kontrolden zamanın değişip değişmediğini kontrol ederiz. Saat değiştiyse, ekranı güncelleriz ve ardından önceki haneleri güncelleriz.

Güncelleme görüntüleme fonksiyonunda önce orta segmentleri hareket ettiriyoruz. Bu ilk önce yapılır, çünkü orta segmente bitişik iki üst segmenti orta segmenti hareket ettirmeden önce biraz yoldan çıkarmak için gereken bir mantık vardır, aksi takdirde onlara çarpacaktır. Orta segmentler hareket ettirildikten sonra kalan segmentler doğru pozisyonlara taşınır.

Adım 6: Saatin Arka Panele Montajı

Saatin Arka Panele Montajı
Saatin Arka Panele Montajı
Saatin Arka Panele Montajı
Saatin Arka Panele Montajı
Saatin Arka Panele Montajı
Saatin Arka Panele Montajı

Testi bitirdikten sonra, yukarıdaki düzeni kılavuz olarak kullanarak servoları arka panoya monte ettim.

Beyaz alan genel kart boyutudur, daha açık gri, servo bölümlerinin hareket ettiği her bir basamağı çevreleyen alandır ve koyu gri alandaki anahat, her basamak için dış 6 segmentin merkez çizgisidir.

Tahtayı kestim, düzeni işaretledim ve ardından saat kadranını oluşturmak için rakamları yerine yapıştırdım.

Daha sonra her servonun yanına delikler açtım ve kabloları daha az görünür olmaları için kartın arkasına besledim.

Elektroniği saatin arkasına çift taraflı bantla monte ettim.

Adım 7: Son Kurulum ve Çalıştırma

Son Kurulum ve Çalıştırma
Son Kurulum ve Çalıştırma
Son Kurulum ve Çalıştırma
Son Kurulum ve Çalıştırma
Son Kurulum ve Çalıştırma
Son Kurulum ve Çalıştırma
Son Kurulum ve Çalıştırma
Son Kurulum ve Çalıştırma

Servolar hazır olduğunda, bölümlerin konumlarına yönelik son ayarlamalar için tüm servo kollarını çıkardım. Arduino'yu bu durumda 8 8: 8 8 görüntülenecek şekilde açmalı ve ardından gücü kesmelisiniz, bu tüm servolarınızı yeniden ortalar, böylece servo kollarını bölümler dikeye yakın olacak şekilde tekrar takabilirsiniz. olabildiğince.

Ardından, Arduino'nuzu sırayla çalıştırmanız ve dört dizinizdeki segment açma ve kapama konumlarınızda ayarlamalar yapmanız gerekecek, böylece servolar açıkken mükemmel bir şekilde dikey olacak ve kapalıyken aşırı seyahat etmeden 90 derece dönecek. Bu adım oldukça zaman alıcıdır ve biraz sabır gerektirir, ancak sonuç buna değer!

Saat, 12V güç kaynağı ve buna bağlı 5V BEC kullanılarak açık bırakılabilir. Güç kesilirse, RTC modülündeki pil, güç geri geldiğinde saatin otomatik olarak doğru zamana sıfırlanması için zamanı koruyacaktır.

Bu Eğitilebilir Yazıyı beğendiyseniz, lütfen Saat yarışmasında oy verin ve aşağıdaki yorumlar bölümünde bulabileceğiniz herhangi bir iyileştirme veya öneriyi bana bildirin.

Saatler Yarışması
Saatler Yarışması
Saatler Yarışması
Saatler Yarışması

Saat Yarışmasında İkincilik Ödülü

Önerilen: