Cuprins:
- Pasul 1: Diagrama Black Box
- Pasul 2: Ceas lent
- Pasul 3: Contor
- Pasul 4: Counter Hour
- Pasul 5: Alarmă
- Pasul 6: Driver universal de afișare pe șapte segmente
- Pasul 7: Link File
- Pasul 8: Arduino
- Pasul 9: Rutare prin cablu
Video: Ceas cu alarmă Basys 3: 9 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Proiectul nostru creează un ceas cu alarmă folosind placa Basys 3 FPGA, un Arduino și o placă de driver pentru difuzoare. Utilizatorul poate introduce ora curentă pe placă folosind 11 comutatoare de intrare pe bazele 3 și poate bloca valoarea folosind butonul din mijloc de pe placă. Utilizatorul poate introduce ora alarmei folosind aceleași comutatoare, dar apasă butonul din stânga pentru a bloca ora alarmei. Dacă se introduce ora greșită, butonul de resetare (butonul de sus) poate fi apăsat, iar ora curentă a ceasului și ora alarmei vor fi setate la 00:00. Utilizatorul poate porni apoi ceasul folosind comutatorul din stânga și poate activa alarma folosind comutatorul următor. Când alarma este pornită, ceasul deșteptător va emite un sunet atunci când ora ceasului și setarea orei de alarmă se potrivesc.
Pasul 1: Diagrama Black Box
Am început proiectul nostru prin desenarea unei diagrame negre pentru a vizualiza intrările și ieșirile necesare în programul nostru. Următoarele intrări pentru programul nostru, cum ar fi intrarea pe 5 biți (Hour_in) au fost inițializate pentru a specifica timpul de 24 de ore, intrarea pe 6 biți (Min_in) pentru a afișa până la 60 de minute, un buton de resetare (Rst_b) pentru a permite utilizatorului să schimbați intrarea lor de timp, o intrare de 1 bit (alm_en) care încarcă intrarea de alarmă, o intrare de 1 bit (alarm_sw) pentru a opri ceasul deșteptător când este activat, o intrare de 1 bit (e_sec) care controlează când contorul de secunde va rula, o intrare de 1 bit (Led_btn) care setează ora curentă și, în cele din urmă, o intrare de 1 bit (clk) care controlează timpul afișat de placa Basys 3. Ieșirile sunt (alm_on) care trimite semnalul către Arduino, ieșirea sseg care afișează timpul de intrare pe Bazele 3 și ieșirea anodică care controlează unde sunt afișate intrările pe afișajul celor șapte segmente.
Pasul 2: Ceas lent
Fișierul slow clock sau clock_div2 creează un ceas a cărui frecvență este de 2 hz. Dacă alimentăm acest ceas la contorul nostru de secunde, valoarea secundelor va crește cu una în fiecare secundă. Ceasul lent este folosit pentru a crea un semnal de ceas fiabil care se schimbă de la cel mai mic la cel mare o dată pe secundă.
Pasul 3: Contor
Contor de componente (minute și secunde):
Funcția de bază a minutelor și secundelor este că acestea sunt contoare. Contorul de minute preia intrarea (Vin), care este semnalul de la intrări (Min_in), și apoi contează până când ajunge la intrarea dorită introdusă. Secundele iau doar intrarea comutatorului (e_Sec), deoarece nu poate fi afișat pe cel de-al șaptelea segment și contează în fundal odată ce comutatorul este ridicat „1”. Amândoi produc o valoare la (Qout), apoi este stocată în (date) care o trimite către SSEG, care se face în fișierul de legătură. De asemenea, când minutele și secundele ating valorile de 59, se resetează, iar ieșirea acestora este „1” pentru a crește minutele / ora. De asemenea, poate fi mapat cu o resetare (rst_b) la intrările lor.
Pasul 4: Counter Hour
Ora contorului de componente
În mod similar, la contorul componentelor de minute și secunde, componenta oră ia intrări, cum ar fi (Vin), care este un semnal de la intrarea fișierului de legătură (Hour_in) și are ieșiri care sunt legate în același mod de minute și secunde. Când valoarea de numărare a orei ajunge la 24 00 se resetează la 00 00.
Pasul 5: Alarmă
Fișierul.vhd de alarmă este format din d-flip-flops care sunt dispozitive de stocare care pot stoca date digitale. Fișierul de alarmă este utilizat pentru a stoca ora la care va fi activată alarma. Pentru a stoca datele despre ore (5 biți de intrare) și minute (6 biți de intrare) trebuie să ștergem 11 d-flip-flops în fișierul nostru de alarmă. Pentru a face acest lucru, trebuie mai întâi să importăm logica care guvernează funcționarea d-flip-flop-urilor și să mapăm componentele. Fiecare dintre cele 11 d-flip-flops va stoca un bit de date de la intrări și va permite maparea datelor la ieșirile fișierului de alarmă. Deoarece d-flip-flop-urile stochează date, putem utiliza datele într-un moment ulterior, chiar dacă comutatoarele de intrare au fost schimbate.
Pasul 6: Driver universal de afișare pe șapte segmente
Driverul universal de afișare cu șapte segmente primește intrările de la ceas și setul de ceas și este capabil să le transmită pe afișajul cu șapte segmente de pe placă. Șoferul este capabil să emită două conturi separate pe tablă simultan. Am folosit această funcție pentru a afișa atât ora oră, cât și ora minutelor separat. Afișajul cu șapte segmente este capabil să activeze un singur număr odată, astfel încât fișierul sseg trebuie să utilizeze multiplexarea pentru a afișa simultan toate numerele timpului. Semnalul de ceas al plăcilor este alimentat în sseg pentru a păstra ora corectă pentru multiplexare. Este necesar un codificator zecimal codat binar spre binar pentru a converti intrările în fișier într-un formular care poate fi afișat pe afișajul cu șapte segmente. Ieșirea finală a fișierului sseg este mapată pe afișajul cu șapte segmente și ora corectă este afișată pe afișaj.
Pasul 7: Link File
Fișierul de legătură conectează toate celelalte aspecte ale programului și mapează semnalele la locația lor corectă. Fiecare componentă este introdusă și instanțiată în fișier. Semnalele sunt folosite pentru a transfera date de la o componentă la alta. Cartografierea porturilor va urma diagrama casetei negre enumerată mai sus. Fișierul de legătură deține, de asemenea, logica care guvernează atunci când alarma este activată. Majoritatea proiectului va fi deja finalizat până în acest moment. Lucrul rămas este direcționarea fiecărui semnal către locația corespunzătoare.
Pasul 8: Arduino
Arduino este folosit pentru a activa difuzorul, precum și pentru a controla tonul și durata notei redate prin difuzor. Arduino citește un semnal digital de pe placa Basys 3. Când acest semnal este ridicat, arduino va emite un semnal PWM controlând tonul și durata alarmei. Semnalul de ieșire de la arduino se conectează la semnalul de intrare al plăcii driverului difuzorului, ceea ce mărește volumul difuzorului. Arduino face acest proces foarte repede repetându-se de multe ori pe secundă.
Pasul 9: Rutare prin cablu
Placa arduino și Basys 3 trebuie să fie conectate fizic pentru a transfera semnale între plăci. Primul cablu la cablu va fi de la pinul de masă al JA PMOD al bazelor 3 până la pinul de masă al arduino-ului. Conectați apoi un fir de la pinul 1 al JA PMOD al bazelor 3 la pinul digital 7 al arduino-ului. Apoi, conectați doi pini de masă de la arduino la pinii de masă ai driverului difuzorului. Apoi, conectați ieșirea de 3,3 V a arduino la pinul Vcc al driverului difuzorului. Apoi, conectați pinul digital 9 al arduino la pinul In al driverului difuzorului.
Recomandat:
Cum să faci ceas analogic și ceas digital cu bandă LED folosind Arduino: 3 pași
Cum să faci ceas analogic și ceas digital cu bandă led folosind Arduino: Astăzi vom face un ceas analogic & Ceas digital cu Led Strip și modul MAX7219 Dot cu Arduino. Acesta va corecta ora cu fusul orar local. Ceasul analogic poate folosi o bandă cu LED mai lungă, deci poate fi agățat pe perete pentru a deveni un artist
Ceas cu alarmă extra puternic inspirat de bombă cu ceas cu doar 5 componente: 3 pași
Ceas cu alarmă extra puternic inspirat de Time Bomb cu doar 5 componente: Am creat acest ceas cu alarmă inspirat de Time Bomb ușor de realizat, care este garantat să vă trezească dimineața. Am folosit materiale simple în casă. Toate articolele utilizate sunt ușor disponibile și ieftine. Această alarmă inspirată de bomba cu ceas
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: 10 pași (cu imagini)
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: Ți-ai dorit vreodată un ceas inteligent? Dacă da, aceasta este soluția pentru dvs.! Am creat Smart Alarm Clock, acesta este un ceas pe care îl puteți schimba ora alarmei conform site-ului web. Când alarma se declanșează, se va auzi un sunet (buzzer) și 2 lumini vor
Ceas cu alarmă DIY Sesame Street (cu alarmă de incendiu!): 6 pași (cu imagini)
DIY Sesame Street Alarm Clock (cu alarmă de incendiu!): Bună tuturor! Acest proiect este primul meu. De când a apărut prima aniversare a verișorilor mei, am vrut să îi fac un cadou special. Am auzit de la unchiul și mătușa că se află pe Sesame Street, așa că am decis împreună cu frații mei să fac un ceas cu alarmă
Ceas cu alarmă cu răsărit cu LED cu alarmă de melodie personalizabilă: 7 pași (cu imagini)
Ceas cu alarmă cu răsărit cu LED cu alarmă de melodie personalizabilă: motivația mea În această iarnă, iubita mea a avut multe probleme la trezire dimineața și părea să sufere de SAD (tulburare afectivă sezonieră). Ba chiar observ cât de greu este să te trezești iarna, deoarece soarele nu a venit