
Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40

Meie projekt loob äratuskella, kasutades Basys 3 FPGA tahvlit, Arduino ja kõlarijuhi plaati. Kasutaja saab sisestada tahvlile praeguse aja, kasutades Basys 3 11 sisendlülitit ja väärtuse lukustada, kasutades tahvli keskmist nuppu. Seejärel saab kasutaja samade lülitite abil sisestada äratusaja, kuid vajutada äratusaja lukustamiseks vasakut nuppu. Kui sisestatakse vale kellaaeg, saab vajutada lähtestusnuppu (ülemine nupp) ning praeguseks kellaajaks ja äratusajaks seatakse 00:00. Seejärel saab kasutaja käivitada kella vasakpoolsema lüliti abil ja lülitada alarmi sisse järgmise lüliti abil. Kui äratus on sisse lülitatud, annab äratuskell kellaaja ja seatud äratuse kellaaja korral heli.
Samm: musta kasti skeem


Alustasime oma projekti mustast kastist diagrammi joonistamisega, et visualiseerida meie programmis vajalikke sisendeid ja väljundeid. Järgmised meie programmi sisendid, näiteks 5-bitine sisend (tund), lähtestati, et määrata 24-tunnine aeg, 6-bitine (min_in) sisend kuvada kuni 60 minutit, lähtestusnupp (Rst_b), mis võimaldab kasutajal muuta oma aja sisendit, 1-bitist sisendit (alm_et), mis laadib häire sisendi, 1-bitist sisendit (alarm_sw) äratuskella väljalülitamiseks, kui see on aktiveeritud, 1-bitist sisendit (e_sec), mis juhib loendurit sekundit, 1-bitine sisend (Led_btn), mis määrab praeguse aja, ja lõpuks 1-bitine sisend (clk), mis kontrollib Basys 3-plaadi kuvatavat aega. Väljunditeks on (alm_on), mis saadab signaali Arduinole, sseg -väljund, mis kuvab sisendaja Basys 3 -l, ja anoodväljund, mis kontrollib, kus sisendeid kuvatakse seitsme segmendi ekraanil.
2. samm: aeglane kell

Aeglane kell või fail clock_div2 loob kella, mille sagedus on 2 Hz. Kui anname selle kella oma sekundiloendurile, suureneb sekundite väärtus iga sekundi võrra ühe võrra. Aeglast kella kasutatakse usaldusväärse kella signaali loomiseks, mis muutub madalast kõrgeks üks kord sekundis.
3. samm: loendur


Komponentide loendur (minutid ja sekundid):
Minutite ja sekundite põhifunktsioon on see, et need on loendurid. Minutiloendur võtab sisendi (Vin), mis on signaal sisenditest (Min_in), ja loeb seejärel, kuni jõuab soovitud sisendini. Sekundid võtavad ainult lüliti (e_Sec) sisendi, kuna seda ei saa seitsmel segmendil kuvada ja loeb taustal, kui lüliti on kõrgel '1'. Mõlemad väljastavad seal väärtuse (Qout) ja seejärel salvestatakse see (andmetesse), mis saadab selle SSEG -le, mis on tehtud linkimisfailis. Samuti lähtestatakse minutite ja sekundite väärtuste 59 korral ja nende väljund on „1”, et suurendada minuteid/tund. Seda saab ka sisestada (rst_b) nende sisenditele.
4. samm: loendur


Komponentide loenduri tund
Samamoodi võtab minutikomponentide ja sekundite komponentide loendurile tunnikomponent sisendeid, näiteks (Vin), mis on signaal failisisendist (Hour_in), ja sellel on väljundid, mis on samamoodi ühendatud minutite ja sekunditega. Kui tunni loendusväärtus jõuab 24 00 -ni, lähtestatakse see 00 00 -le.
Samm 5: Alarm




Alarmi.vhd-fail koosneb d-flip-flopidest, mis on salvestusseadmed, mis suudavad salvestada digitaalseid andmeid. Häirefaili kasutatakse häire aktiveerimise aja salvestamiseks. Tundide (5-bitine sisend) ja minutite (6-bitine sisend) andmete salvestamiseks peame oma häirefailis kustutama 11 d-flip-flopsi. Selleks peame esmalt importima d-flip-flopsi toimimist reguleeriva loogika ja kaardistama komponendid. Igaüks 11 d-flip-flopist salvestab sisenditest ühe bitti andmeid ja võimaldab andmed kaardistada häirefaili väljunditega. Kuna d-flip-flops salvestab andmeid, saame neid andmeid kasutada ka hiljem, isegi kui sisendlüliteid on muudetud.
6. toiming: universaalne seitsme segmendi ekraanidraiver



Universaalne seitsme segmendi kuvaridraiver saab kella ja kellaseadme sisendid ning suudab need väljastada tahvli seitsme segmendi ekraanile. Juht suudab tahvlile korraga väljastada kaks eraldi loendust. Kasutasime seda funktsiooni, et kuvada eraldi nii tund kui minut. Seitsme segmendi kuva suudab korraga aktiveerida ainult ühe numbri, seetõttu peab sseg -fail kasutama aja multipleksimist, et kuvada korraga kõik ajaarvud. Laudade kella signaal sisestatakse ssegi, et hoida multipleksimiseks õiget aega. Sisendite failiks teisendamiseks vormiks, mida saab väljastada seitsme segmendi kuvale, on vaja binaarset kuni binaarset kodeeritud kümnendkoodrit. Sseg -faili lõplik väljund kaardistatakse seitsme segmendi ekraanile ja ekraanil kuvatakse õige aeg.
Samm: linkige fail



Lingifail ühendab kõik muud programmi aspektid ja kaardistab signaalid nende õigesse asukohta. Iga komponent tuuakse ja kuvatakse failis. Signaale kasutatakse andmete edastamiseks ühest komponendist teise. Portide kaardistamine järgib ülaltoodud musta kasti skeemi. Lingifail sisaldab ka loogikat, mis reguleerib häire aktiveerimist. Suurem osa projektist on selleks hetkeks juba valmis. Ülejäänud töö on iga signaali suunamine sobivasse kohta.
Samm: Arduino


Arduinot kasutatakse kõlari aktiveerimiseks ning kõlari kaudu mängitava noodi tooni ja kestuse reguleerimiseks. Arduino loeb Basys 3 plaadilt digitaalsignaali. Kui see signaal on kõrge, väljastab arduino PWM -signaali, mis kontrollib häire tooni ja kestust. Arduino väljundsignaal ühendatakse kõlarijuhi plaadi sisendsignaaliga, mis suurendab kõlari helitugevust. Arduino teeb seda protsessi väga kiiresti, kordades mitu korda sekundis.
9. samm: kaabli marsruutimine

Arduino ja Basys 3 tahvel peavad olema tahvlite vaheliste signaalide edastamiseks füüsiliselt ühendatud. Esimene juhtmekaabel on Basys 3 JA PMOD maanduspistikust arduino maanduspistikuni. Seejärel ühendage juhe Basys 3 JA PMOD -i 1. tihvti juurest arduino digitaalse kontaktiga 7. Seejärel ühendage kaks arduino maandusnõela kõlari draiveri maanduspistikutega. Seejärel ühendage arduino 3,3 V väljund kõlaridraiveri Vcc kontaktiga. Seejärel ühendage arduino digitaalne tihvt 9 kõlaridraiveri sisendpoldiga.
Soovitan:
Nutikas äratuskell Magicbit (Arduino) abil: 10 sammu

Nutikas äratuskell Magicbiti (Arduino) abil: see õpetus näitab, kuidas teha nutikat äratuskella, kasutades MagicED dev tahvli OLED -ekraani ilma RTC moodulita
Twin Bell äratuskell soodakannidest: 7 sammu (piltidega)

Kaksikellaline äratuskell soodapurkidest: see juhend annab teile teada, kuidas sooda purkidest teha kahekellaline äratuskell. Projekt kasutab soodapurke, kust tint eemaldati (link: tindieemaldus sooda purkidest). Selle äratuskella täielikuks toimimiseks integreeriti DIY kvartskella moodul
Mürarikas äratuskell: 3 sammu

Mürarikas äratuskell: Olen Taiwanis 13 -aastane üliõpilane. Ma teen Arduinoga esmakordselt asju, kui saate mulle öelda, kuidas seda tööd parandada, palun jätke mulle kommentaarid, et saaksin paremaks muuta. (Aitäh ) See kell võib su uinakul üles äratada, aga ma
Mull -äratuskell teeb ärkamise lõbusaks (ish): 7 sammu (koos piltidega)

Mull -äratuskell teeb ärkamise lõbusaks (ish): sumiseva äratuskella peale ärkamine on nõme. Olen üks neist inimestest, kellele ei meeldi ärgata enne, kui päike loojub (või on juba mitu tundi väljas olnud). Nii et mis oleks parem viis ärkamine lõbusaks teha kui voodis mullipidu! Arduino ja
Nutikas äratuskell: nutikas äratuskell, mis on valmistatud Raspberry Pi -ga: 10 sammu (koos piltidega)

Nutikas äratuskell: nutikas äratuskell, mis on valmistatud Raspberry Pi -ga: kas olete kunagi tahtnud nutikat kella? Kui jah, siis see on teie jaoks lahendus! Ma tegin nutika äratuskella, see on kell, mille abil saate äratusaega vastavalt veebisaidile muuta. Kui äratus hakkab tööle, kostab heli (sumin) ja 2 tuld