Tartalomjegyzék:
- 1. lépés: Fekete doboz diagram
- 2. lépés: Lassú óra
- 3. lépés: Számláló
- 4. lépés: Számláló óra
- 5. lépés: Riasztás
- 6. lépés: Univerzális, hét szegmenses kijelző illesztőprogram
- 7. lépés: Link fájl
- 8. lépés: Arduino
- 9. lépés: Kábelvezetés
Videó: Basys 3 ébresztőóra: 9 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Projektünk ébresztőórát hoz létre a Basys 3 FPGA kártya, az Arduino és a hangszóró -illesztőprogram segítségével. A felhasználó a Basys 3 11 bemeneti kapcsolójával beírhatja az aktuális időt a táblára, és rögzítheti az értéket a táblán lévő középső gombbal. A felhasználó ezután ugyanazokkal a kapcsolókkal adhatja meg a riasztási időt, de nyomja meg a bal gombot a riasztási idő rögzítéséhez. Ha rossz időt ad meg, akkor a reset gombot (felső gombot) lehet megnyomni, és az aktuális órát és az ébresztési időt 00:00 -ra kell állítani. A felhasználó ezután elindíthatja az órát a bal szélső kapcsolóval, és a következő kapcsolóval bekapcsolhatja az ébresztőt. Amikor az ébresztés be van kapcsolva, az ébresztőóra hangot ad, amikor az óra és a beállított ébresztési idő megegyezik.
1. lépés: Fekete doboz diagram
A projektünket egy fekete doboz diagram rajzolásával kezdtük, hogy vizualizáljuk a programunkban szükséges be- és kimeneteket. Programunk következő bemeneteit, például az 5 bites bemenetet (Hour_in) inicializáltuk, hogy megadjuk a 24 órás időt, a 6 bites (Min_in) bemenetet legfeljebb 60 percig jelenítsük meg, egy reset (Rst_b) gombot, hogy a felhasználó megváltoztatják az időbemenetüket, egy 1 bites bemenetet (alm_en), amely betölti a riasztási bemenetet, 1 bites bemenetet (alarm_sw), hogy kikapcsolja az ébresztőórát, amikor be van kapcsolva, 1 bites bemenetet (e_sec), amely vezérli a számlálót másodperc fut, 1 bites bemenet (Led_btn), amely beállítja az aktuális időt, és végül 1 bites bemenet (clk), amely szabályozza a Basys 3 kártya által megjelenített időt. A kimenetek az (alm_on), amely elküldi a jelet az Arduino -nak, a sseg kimenet, amely megjeleníti a bemeneti időt a Basys 3 -on, és az anód kimenet, amely szabályozza, hogy a bemenetek hol jelenjenek meg a hét szegmens kijelzőjén.
2. lépés: Lassú óra
A lassú óra vagy a clock_div2 fájl olyan órát hoz létre, amelynek frekvenciája 2 Hz. Ha ezt az órát a másodpercszámlálónkba tápláljuk, akkor a másodperc értéke másodpercenként eggyel növekszik. A lassú óra megbízható órajel létrehozására szolgál, amely másodpercenként egyszer alacsonyról magasra változik.
3. lépés: Számláló
Alkatrészszámláló (perc és másodperc):
A percek és másodpercek alapvető funkciója, hogy számlálók. A percek számlálója bemenetet (Vin) vesz fel, amely a bemenetekről származó jel (Min_in), majd számol, amíg el nem éri a kívánt bemenetet. A másodperc csak a kapcsoló (e_Sec) bemenetét veszi fel, mivel nem jeleníthető meg a hét szegmensben, és a háttérben számít, ha a kapcsoló magas '1'. Mindketten értéket adnak ki a (Qout) értékre, majd az (adatok) tárolják, amely elküldi az SSEG -nek, ami a linkelő fájlban történik. Továbbá, ha a percek és másodpercek eléri az 59 értéket, akkor visszaáll, és a kimenetük „1” a perc/óra növelése érdekében. Emellett visszaállítással (rst_b) is leképezhető a bemenetekre.
4. lépés: Számláló óra
Komponens számláló óra
Hasonlóképpen, a percek és másodpercek komponensszámlálójához az órakomponens beveszi az olyan bemeneteket, mint a (Vin), amely a fájlbevitel (Hour_in) jele, és olyan kimenetekkel rendelkezik, amelyek ugyanúgy kapcsolódnak a percekhez és a másodpercekhez. Amikor az óra számértéke eléri a 24 00 -t, akkor 00 00 -ra áll vissza.
5. lépés: Riasztás
A riasztás.vhd fájlja d-flip-flop-okból áll, amelyek digitális adatokat tároló tárolóeszközök. A riasztási fájl tárolja a riasztás aktiválásának időpontját. Az órák (5 bites bemenet) és a percek (6 bites bemenet) adatainak tárolásához 11 d-flip-flopot kell bélyegznünk a riasztási fájlunkban. Ehhez először importálnunk kell a d-flip-flopok működését szabályozó logikát, és le kell térképeznünk az összetevőket. Mind a 11 d-flip-flop egy bit adatot tárol a bemenetekről, és lehetővé teszi az adatok hozzárendelését a riasztási fájl kimeneteihez. Mivel a d-flip-flopok adatokat tárolnak, képesek vagyunk felhasználni az adatokat egy későbbi időpontban, még akkor is, ha a bemeneti kapcsolókat megváltoztatták.
6. lépés: Univerzális, hét szegmenses kijelző illesztőprogram
Az univerzális, hét szegmenses kijelzőmeghajtó megkapja a bemeneteket az órától és az órabeállítástól, és képes azokat kimenni a táblán lévő hét szegmenses kijelzőre. A meghajtó egyszerre két külön számlálást tud kiadni a táblán. Ezzel a funkcióval külön -külön megjelenítettük az órát és a percet. A hét szegmenses kijelző egyszerre csak egy számot képes aktiválni, ezért a sseg fájlnak multiplexelést kell használnia az idő összes számának egyidejű megjelenítésére. A táblák órajelét a sseg betáplálja, hogy a multiplexeléshez megfelelő időt tartsa. A bináris bináris kódolású decimális kódolóra van szükség ahhoz, hogy a bemeneteket fájlba alakítsuk át olyan formává, amelyet a hét szegmenses kijelzőre lehet kimenni. A sseg fájl végső kimenete leképeződik a hét szegmenses kijelzőre, és a kijelzőn megjelenik a helyes idő.
7. lépés: Link fájl
A linkfájl összeköti a program összes többi aspektusát, és a jeleket a megfelelő helyükre képezi le. Minden összetevő bekerül és példányosodik a fájlban. A jeleket az adatok egyik komponensről a másikra történő átvitelére használják. A portleképezés a fent felsorolt fekete doboz diagramot követi. A linkfájl tartalmazza azt a logikát is, amely szabályozza a riasztás aktiválását. A projekt nagy része ekkor már befejeződik. A hátralévő munka az egyes jelek megfelelő helyre történő továbbítása.
8. lépés: Arduino
Az arduino a hangszóró aktiválására, valamint a hangszórón keresztül lejátszott hang hangjának és időtartamának szabályozására szolgál. Az arduino digitális jelet olvas a Basys 3 tábláról. Ha ez a jel magas, az arduino PWM jelet ad ki, amely szabályozza a riasztás hangját és időtartamát. Az arduino kimeneti jele csatlakozik a hangszóró meghajtó paneljének bemeneti jeléhez, ami növeli a hangszóró hangerejét. Az arduino nagyon gyorsan végzi ezt a folyamatot, másodpercenként többször megismétlődik.
9. lépés: Kábelvezetés
Az arduino és a Basys 3 táblát fizikailag össze kell kötni a táblák közötti jelátvitelhez. Az első vezeték a Basys 3 JA PMOD földelőcsapjától az arduino földelőcsapjáig lesz. Ezután csatlakoztasson egy vezetéket a Basys 3 JA PMOD 1. tűjéről az arduino 7. digitális tűjéhez. Ezután csatlakoztassa az arduino két földelőcsapját a hangszóró -illesztőprogram földelőcsapjaihoz. Ezután csatlakoztassa az arduino 3,3 V -os kimenetét a hangszóró -illesztőprogram Vcc -tűjéhez. Ezután csatlakoztassa az arduino 9. digitális tűjét a hangszóró -illesztőprogram In bemenetéhez.
Ajánlott:
Intelligens ébresztőóra a Magicbit használatával (Arduino): 10 lépés
Intelligens ébresztőóra a Magicbit használatával (Arduino): Ez az oktatóanyag bemutatja, hogyan lehet intelligens ébresztőórát készíteni a OLED kijelző segítségével a Magicbit fejlesztőtáblán RTC modul használata nélkül
Twin Bell ébresztőóra a szóda dobozokból: 7 lépés (képekkel)
Twin Bell ébresztőóra a szóda dobozokból: Ez az utasítás bemutatja, hogyan lehet ikerharangos ébresztőórát készíteni a szóda kannákból. A projekt szóda kannákat használ, ahol a tintát eltávolították (Link: Tinta eltávolítása a szóda dobozokból). Annak érdekében, hogy ez az ébresztőóra teljesen működőképes legyen, egy DIY kvarcóra modult integráltak
Zajos ébresztőóra: 3 lépés
Zajos ébresztőóra: 13 éves diák vagyok Tajvanon. Először csinálok dolgokat az Arduino -val, ha meg tudja mondani, hogyan javíthatom ezt a munkát, kérjük, hagyjon megjegyzéseket számomra, hogy jobbá tegyem. (Köszönöm ) Ez az óra felébreszthet, amikor alszol, de én
A buborék ébresztőóra szórakoztatóvá teszi az ébredést (izh): 7 lépés (képekkel)
A buborék ébresztőóra szórakoztatóvá teszi az ébredést (izh): A zümmögő ébresztőóra felébredés szar. Én azok közé tartozom, akik nem szeretnek felkelni, mielőtt lemegy a nap (vagy már több órája kint van). Tehát mi lehet jobb módja annak, hogy az ébredés szórakoztatóbb legyen, mint egy buborékparti az ágyban! Egy arduino és egy
Intelligens ébresztőóra: Raspberry Pi -vel készült intelligens ébresztőóra: 10 lépés (képekkel)
Intelligens ébresztőóra: Raspberry Pi -vel készült intelligens ébresztőóra: Szeretett volna valaha okos órát? Ha igen, akkor ez a megoldás az Ön számára! Készítettem intelligens ébresztőórát, ez egy óra, amellyel megváltoztathatja az ébresztési időt a webhely szerint. Amikor a riasztó megszólal, hangjelzés (csipogó) és 2 lámpa hallatszik