
İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-23 15:13

Projemiz Basys 3 FPGA kartı, Arduino ve hoparlör sürücü kartını kullanarak bir çalar saat oluşturuyor. Kullanıcı, Basys 3 üzerindeki 11 giriş anahtarını kullanarak geçerli saati karta girebilir ve kart üzerindeki orta düğmeyi kullanarak değeri kilitleyebilir. Kullanıcı daha sonra aynı anahtarları kullanarak alarm saatini girebilir ancak alarm saatini kilitlemek için sol düğmeye basabilir. Yanlış saat girilirse reset düğmesine (üst düğme) basılabilir ve mevcut saat ve alarm saati 00:00'a ayarlanır. Kullanıcı daha sonra en soldaki anahtarı kullanarak saati başlatabilir ve sonraki anahtarı kullanarak alarmı açabilir. Alarm açıldığında, saat ve ayarlanan alarm zamanı eşleştiğinde çalar saat bir ses çıkarır.
Adım 1: Kara Kutu Şeması


Programımızda ihtiyaç duyulan girdi ve çıktıları görselleştirmek için bir kara kutu diyagramı çizerek projemize başladık. Programımız için aşağıdaki girdiler 5-bit giriş (Hour_in) gibi 24 saatlik süreyi belirtmek için başlatılmıştır, 6-bit (Min_in) girişi 60 dakikaya kadar görüntülemek için, bir reset (Rst_b) butonu ile kullanıcıya izin verir. zaman girişlerini değiştirin, alarm girişini yükleyen 1 bitlik bir giriş (alm_en), etkinleştirildiğinde alarm saatini kapatmak için 1 bitlik bir giriş (alarm_sw), sayacın ne zaman çalıştığını kontrol eden 1 bitlik bir giriş (e_sec) saniye çalışacaktır, geçerli saati ayarlayan 1 bitlik bir giriş (Led_btn) ve son olarak Basys 3 kartı tarafından görüntülenen zamanı kontrol eden 1 bitlik bir giriş (clk). Çıkışlar, sinyali Arduino'ya gönderen (alm_on), Basys 3'te giriş zamanını gösteren sseg çıkışı ve yedi segmentli ekranda girişlerin nerede görüntüleneceğini kontrol eden anot çıkışıdır.
2. Adım: Yavaş Saat

Yavaş saat veya clock_div2 dosyası, frekansı 2 hz olan bir saat oluşturur. Bu saati saniye sayacımıza beslersek saniye değeri her saniye bir artacaktır. Yavaş saat, saniyede bir kez düşükten yükseğe değişen güvenilir bir saat sinyali oluşturmak için kullanılır.
Adım 3: Sayaç


Bileşen Sayacı (dakika ve saniye):
Dakika ve saniyelerin temel işlevi sayaç olmalarıdır. Dakika sayacı, girişlerden (Min_in) gelen sinyal olan girişi (Vin) alır ve girilen istenen girişe ulaşana kadar sayar. Saniyeler, yedi segmentte görüntülenemediğinden yalnızca anahtarın (e_Sec) girişini alır ve anahtar yüksek '1' olduğunda arka planda sayılır. Her ikisi de orada (Qout) değerini verir ve daha sonra (data) içinde saklanır, bu da onu bağlantı dosyasında yapılan SSEG'ye gönderir. Ayrıca dakika ve saniyeler 59 değerine ulaştığında sıfırlanır ve dakika/saat arttırmak için çıktısı '1' olur. Ayrıca girişlerine bir reset(rst_b) ile eşlenebilir.
Adım 4: Sayaç Saati


Bileşen Sayaç Saati
Benzer şekilde, dakika ve saniyelerin bileşen sayacına benzer şekilde, saat bileşeni, dosya girişini (Hour_in) bağlayan bir sinyal olan (Vin) gibi girişleri alır ve aynı şekilde dakika ve saniyelerle bağlantılı çıkışlara sahiptir. Saatin sayma değeri 24 00'a ulaştığında 00 00'a sıfırlanır.
Adım 5: Alarm




Alarm.vhd dosyası, dijital verileri depolayabilen depolama aygıtları olan d-flip-flop'lardan oluşur. Alarm dosyası, alarmın etkinleştirileceği zamanı saklamak için kullanılır. Saat (5 bit giriş) ve dakika (6 bit giriş) verilerini saklamak için alarm dosyamızda 11 d-flip-flop'u damgalamalıyız. Bunu yapmak için önce d-flip-flopların işleyişini yöneten mantığı içe aktarmalı ve bileşenleri eşlemeliyiz. 11 d-flip-flop'un her biri, girişlerden bir bit veri depolayacak ve verilerin alarm dosyasının çıkışlarına eşlenmesine izin verecektir. D-flip-floplar veri depoladığından, giriş anahtarları değiştirilse bile verileri daha sonraki bir zamanda kullanabiliriz.
6. Adım: Evrensel Yedi Segment Ekran Sürücüsü



Evrensel yedi segmentli ekran sürücüsü, saat ve saat setinden girdileri alır ve bunları karttaki yedi segmentli ekrana verebilir. Sürücü, kart üzerinde aynı anda iki ayrı sayım çıktısı alabilir. Bu fonksiyonu hem saat hem de dakikayı ayrı ayrı görüntülemek için kullandık. Yedi segmentli ekran aynı anda yalnızca bir numarayı etkinleştirebilir, bu nedenle sseg dosyası, zamanın tüm numaralarını aynı anda görüntülemek için çoğullamayı kullanmalıdır. Kartların saat sinyali, çoğullama için doğru zamanı korumak için sseg'e beslenir. Dosyaya girdileri yedi segmentli ekrana çıktılanabilecek bir forma dönüştürmek için ikiliden ikiliye kodlanmış bir ondalık kodlayıcı gereklidir. sseg dosyasının son çıktısı yedi segmentli ekrana eşlenir ve ekranda doğru zaman gösterilir.
7. Adım: Dosyayı Bağlayın



Bağlantı dosyası, programın diğer tüm yönlerini birbirine bağlar ve sinyalleri doğru konumlarına eşler. Her bileşen dosyaya getirilir ve somutlaştırılır. Sinyaller, verileri bir bileşenden diğerine aktarmak için kullanılır. Bağlantı noktası eşlemesi, yukarıda listelenen kara kutu şemasını takip edecektir. Bağlantı dosyası ayrıca alarmın ne zaman etkinleştirildiğini yöneten mantığı da içerir. Projenin çoğu zaten bu noktada bitmiş olacak. Kalan iş, her sinyali uygun konuma yönlendirmektir.
Adım 8: Arduino


Arduino, hoparlörü etkinleştirmek ve hoparlör aracılığıyla çalınan notanın tonunu ve süresini kontrol etmek için kullanılır. Arduino, Basys 3 kartından dijital bir sinyal okur. Bu sinyal yüksek olduğunda, arduino, alarmın tonunu ve süresini kontrol eden bir PWM sinyali verir. Arduino'dan gelen çıkış sinyali, hoparlörün sesini artıran bir hoparlör sürücü kartının giriş sinyaline bağlanır. Arduino bu işlemi saniyede birçok kez tekrarlayarak çok hızlı yapar.
Adım 9: Kablo Yönlendirme

Arduino ve Basys 3 kartı, kartlar arasında sinyal aktarımı için fiziksel olarak bağlı olmalıdır. Kabloya ilk kablo, Basys 3'ün JA PMOD'unun topraklama piminden arduino'nun topraklama pimine kadar olacaktır. Ardından, Basys 3'ün JA PMOD'unun 1 numaralı pininden arduino'nun 7 numaralı dijital pinine bir kablo bağlayın. Ardından, arduinodan gelen iki topraklama pimini hoparlör sürücüsünün topraklama pimlerine bağlayın. Ardından, arduino'nun 3.3 V çıkışını hoparlör sürücüsünün Vcc pinine bağlayın. Ardından, arduino'nun dijital pin 9'unu hoparlör sürücüsünün In pinine bağlayın.
Önerilen:
Arduino ve DFPlayer Mini MP3 Çalar Modülünü Kullanarak LCD'li MP3 Çalar Nasıl Yapılır: 6 Adım

Arduino ve DFPlayer Mini MP3 Çalar Modülü Kullanarak LCD'li MP3 Çalar Nasıl Yapılır: Bugün Arduino ve DFPlayer mini MP3 Çalar Modülü kullanılarak LCD'li MP3 Çalar Yapacağız.Proje SD karttaki MP3 dosyalarını okuyabilir ve duraklatabilir. ve 10 yıl önceki cihazla aynı şekilde oynayın. Bir de önceki şarkı ve sonraki şarkı eğlencesi var
Magicbit(Arduino) Kullanan Akıllı Çalar Saat: 10 Adım

Magicbit(Arduino) Kullanan Akıllı Çalar Saat: Bu eğitici, Magicbit geliştirme kartındaki OLED ekranı kullanarak herhangi bir RTC modülü kullanmadan nasıl akıllı çalar saat yapılacağını gösterir
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
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