Mündəricat:
- Addım 1: Qara qutu diaqramı
- Addım 2: Yavaş Saat
- Addım 3: Sayğac
- Addım 4: Qarşılıqlı Saat
- Addım 5: Siqnal
- Addım 6: Universal Yeddi Segment Ekran Sürücüsü
- Addım 7: Fayl bağlayın
- Addım 8: Arduino
- Addım 9: Kabelin yönləndirilməsi
Video: Basys 3 Zəngli Saat: 9 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Layihəmiz Basys 3 FPGA lövhəsi, Arduino və dinamik sürücü lövhəsindən istifadə edərək zəngli saat yaradır. İstifadəçi, Basys 3 -də 11 giriş açarı istifadə edərək cari vaxtı lövhəyə daxil edə və lövhədəki orta düyməni istifadə edərək dəyəri kilidləyə bilər. İstifadəçi eyni açarlardan istifadə edərək həyəcan vaxtını daxil edə bilər, ancaq zəngli saatın kilidlənməsi üçün sol düyməni basa bilər. Yanlış vaxt daxil edildikdə, sıfırlama düyməsinə (yuxarı düymə) basıla bilər və cari saat və zəngli saat 00: 00 -a təyin ediləcəkdir. İstifadəçi daha sonra ən sol düyməni istifadə edərək saatı işə sala bilər və növbəti düyməni istifadə edərək həyəcanı aça bilər. Zəngli saat açıldıqda, zəngli saat, saat və təyin olunan zəngli saat uyğun gələndə səs çıxarar.
Addım 1: Qara qutu diaqramı
Proqramımıza lazım olan giriş və çıxışları görüntüləmək üçün qara qutu diaqramı çəkərək layihəmizə başladıq. Proqramımız üçün 5 bitlik giriş (Hour_in) kimi aşağıdakı girişlər, 24 saatlıq vaxtı, 60 dəqiqəyə qədər göstərmək üçün 6 bitlik (Min_in) girişi, istifadəçiyə imkan vermək üçün sıfırlama (Rst_b) düyməsini təyin etmək üçün işə salındı. vaxt girişini dəyişdirin, həyəcan girişini yükləyən 1 bitlik giriş (alm_en), zəngli saatı aktivləşdirəndə söndürmək üçün 1 bitli giriş (alarm_sw), sayğacın idarə olunmasını idarə edən 1 bitli giriş (e_sec) saniyə işləyəcək, cari vaxtı təyin edən 1 bitlik giriş (Led_btn) və son olaraq Basys 3 lövhəsinin göstərdiyi vaxtı idarə edən 1 bitlik giriş (clk). Çıxışlar Arduinoya siqnal göndərən (alm_on), Basys 3 -də giriş vaxtını göstərən sseg çıxışı və yeddi seqmentin ekranında girişlərin harada göstəriləcəyini idarə edən anod çıxışıdır.
Addım 2: Yavaş Saat
Yavaş saat və ya clock_div2 faylı, tezliyi 2 hz olan bir saat yaradır. Bu saatı saniyə sayacımıza qursaq, saniyələr hər saniyədə bir artacaq. Yavaş saat, saniyədə bir dəfə aşağıdan yuxarıya dəyişən etibarlı bir saat siqnalı yaratmaq üçün istifadə olunur.
Addım 3: Sayğac
Komponent Sayacı (dəqiqə və saniyə):
Dəqiqələrin və saniyələrin əsas funksiyası sayğac olmasıdır. Dəqiqə sayğacı girişlərdən (Min_in) gələn siqnal olan girişi (Vin) qəbul edir və sonra daxil edilmiş istənilən girişə çatana qədər sayır. Yeddi seqmentdə göstərilə bilmədiyi üçün saniyələr yalnız keçid (e_Sec) girişini alır və keçid yüksək olduqda '1' arxa planda sayılır. Hər ikisi orada (Qout) dəyərini çıxarır və sonra onu əlaqələndirmə sənədində edilən SSEG -ə göndərən (məlumatlarda) saxlanılır. Ayrıca, dəqiqə və saniyə 59 dəyərlərinə çatdıqda sıfırlanır və dəqiqələri/saatı artırmaq üçün çıxışı '1' dir. Girişlərinə sıfırlama (rst_b) ilə də eşlenebilir.
Addım 4: Qarşılıqlı Saat
Komponent sayğac saatı
Eynilə, dəqiqə və saniyələrin komponent sayğacına saat komponenti, fayl girişini (Hour_in) bağlayan bir siqnal olan (Vin) kimi girişləri qəbul edir və eyni şəkildə dəqiqə və saniyə ilə əlaqəli olan çıxışlara malikdir. Saat hesablama dəyəri 24 00 -a çatanda 00 00 -a sıfırlanır.
Addım 5: Siqnal
Zəngli.vhd faylı rəqəmsal məlumatları saxlaya bilən saxlama cihazları olan d-flip-floplardan ibarətdir. Siqnal faylı, həyəcanın aktiv olacağı vaxtı saxlamaq üçün istifadə olunur. Saat (5 bit giriş) və dəqiqə (6 bit giriş) məlumatlarını saxlamaq üçün həyəcan sənədimizdə 11 d-flip-flopu möhürləməliyik. Bunu etmək üçün əvvəlcə d-flip-flopların işini tənzimləyən məntiqi idxal etməliyik və komponentləri xəritəyə salmalıyıq. 11 d-flip-flopun hər biri girişlərdən bir az məlumat saxlayacaq və məlumatların siqnalizasiya faylının çıxışlarına uyğunlaşdırılmasına imkan verəcəkdir. D-flip-floplar məlumatları saxladığından, giriş açarları dəyişdirilsə belə, məlumatları sonrakı bir zamanda istifadə edə bilərik.
Addım 6: Universal Yeddi Segment Ekran Sürücüsü
Universal yeddi seqmentli ekran sürücüsü girişləri saat və saat dəstindən alır və onları lövhədəki yeddi seqmentli ekrana çıxara bilir. Sürücü bir anda lövhədə iki ayrı sayını çıxara bilir. Bu funksiyanı həm saatı, həm də dəqiqə vaxtını ayrıca göstərmək üçün istifadə etdik. Yeddi seqment ekranı bir anda yalnız bir nömrəni aktivləşdirə bilir, buna görə də sseg faylı eyni vaxtın bütün nömrələrini göstərmək üçün multipleksdən istifadə etməlidir. Lövhələrin saat siqnalı, çoxlama üçün doğru vaxtı saxlamaq üçün ssegə verilir. İkili -ikili kodlu onlu kodlayıcı, faylın girişini yeddi seqmentli ekrana çıxarıla bilən bir formaya çevirmək üçün lazımdır. Sseg faylının son çıxışı yeddi seqmentli ekrana uyğunlaşdırılır və düzgün vaxt ekranda göstərilir.
Addım 7: Fayl bağlayın
Bağlantı faylı, proqramın bütün digər cəhətlərini birləşdirir və siqnalları doğru yerə uyğunlaşdırır. Hər bir komponent fayl daxilində gətirilir və hazırlanır. Siqnallar bir komponentdən digərinə məlumat ötürmək üçün istifadə olunur. Liman xəritələşdirilməsi yuxarıda sadalanan qara qutu sxeminə uyğun olacaq. Bağlantı faylı, həyəcan siqnalı aktiv olduqda idarə edən məntiqi də saxlayır. Layihənin çox hissəsi artıq bu nöqtədə tamamlanacaq. Qalan işlər hər bir siqnalı uyğun yerə yönləndirir.
Addım 8: Arduino
Arduino, natiqin aktivləşdirilməsi, həm də hoparlördən çalınan notun tonuna və müddətinə nəzarət etmək üçün istifadə olunur. Arduino, Basys 3 lövhəsindən rəqəmsal bir siqnal oxuyur. Bu siqnal yüksək olduqda, arduino siqnalın tonunu və müddətini idarə edən bir PWM siqnalı çıxaracaq. Arduino -dan gələn çıxış siqnalı, dinamikin səs səviyyəsini artıran dinamik sürücü lövhəsinin giriş siqnalına qoşulur. Arduino bu prosesi saniyədə dəfələrlə təkrarlayan çox sürətli edir.
Addım 9: Kabelin yönləndirilməsi
Arduino və Basys 3 lövhələri lövhələr arasında siqnal ötürmək üçün fiziki olaraq bağlanmalıdır. İlk kabel, Basys 3 -ün JA PMOD -un topraklama pinindən arduino -nun torpaq pininə qədər olacaq. Ardından, Basys 3 -ün JA PMOD -un 1 -ci pinindən arduino -nun rəqəmsal pininə bir tel bağlayın. Daha sonra, arduino -dan hoparlör sürücüsünün yer pinlərinə iki torpaq pinini bağlayın. Sonra, arduinonun 3.3 V çıxışını dinamik sürücüsünün Vcc pininə qoşun. Sonra, arduinonun rəqəmsal 9 pinini dinamik sürücüsünün Giriş pininə qoşun.
Tövsiyə:
Magicbit (Arduino) istifadə edərək ağıllı zəngli saat: 10 addım
Magicbit (Arduino) istifadə edərək Ağıllı Zəngli Saat: Bu dərslik, heç bir RTC modulu istifadə etmədən Magicbit dev lövhəsindəki OLED displeydən istifadə edərək ağıllı zəngli saatın necə hazırlanacağını göstərir
Soda qablarından əkiz zəngli saat: 7 addım (şəkillərlə)
Soda qutularından əkiz zəngli zəngli saat: Bu təlimat soda qutusundan əkiz zəngli zəngli saatın necə hazırlanacağını göstərir. Layihədə mürəkkəbin çıxarıldığı soda qutularından istifadə olunur (Bağlantı: Soda qutularından mürekkep çıxarılması). Bu zəngli saatı tam işlək hala gətirmək üçün DIY Quartz saat modulu birləşdirildi
Ağıllı Zəngli Saat: Raspberry Pi ilə Ağıllı Zəngli Saat: 10 addım (şəkillərlə)
Ağıllı Zəngli Saat: Raspberry Pi ilə Ağıllı Zəngli Saat: Heç ağıllı bir saat istəmisinizmi? Əgər belədirsə, bu sizin üçün bir həlldir! Ağıllı Zəngli Saat hazırladım, bu veb saytına görə zəngli saatını dəyişə biləcəyiniz bir saatdır. Siqnal çalınanda bir səs (zil) olacaq və 2 işıq yanacaq
Arduino ilə Zəngli Zəngli Saat: 13 Addım (Şəkillərlə)
Arduino ilə Zəngli Zəngli Saat: Səni bilmirəm, amma sadə bir zəngli saat məni oyatmağa qadir deyil. Yuxudan oyanmaq üçün işığa, səsə və hətta yumşaq bir şilləyə ehtiyacım var. Zəngli saat məni cəlb etmir, buna görə də özümü oyatmağa layiq biri olmağa qərar verdim
"Müdrik Saat 2" nin (Bir çox Əlavə Xüsusiyyətləri olan Arduino əsaslı Zəngli Saat) montajı: 6 addım
"Müdrik Saat 2" nin (Bir çox Əlavə Xüsusiyyətə malik Arduino əsaslı Zəngli Saat) Quraşdırılması: Bu dərslik, açıq mənbəli (hardware və proqram) layihə olan Wise Clock 2 üçün dəstin necə yığılacağını göstərir. Tam bir Wise Clock 2 dəsti burada əldə edilə bilər. Xülasə olaraq, bu, Wise Clock 2 -nin edə biləcəyi şeydir (cari açıq mənbə proqramı ilə