Obsah:

Základy 3 Budík: 9 krokov
Základy 3 Budík: 9 krokov

Video: Základy 3 Budík: 9 krokov

Video: Základy 3 Budík: 9 krokov
Video: детективный сериал "Умельцы". с 9 по 16 серии (из 16). 2024, November
Anonim
Budík Basys 3
Budík Basys 3

Náš projekt vytvára budík pomocou dosky Basys 3 FPGA, Arduina a dosky ovládača reproduktora. Užívateľ je schopný zadať aktuálny čas na dosku pomocou 11 vstupných spínačov na základniach 3 a zablokovať hodnotu pomocou stredného tlačidla na doske. Užívateľ potom môže zadať čas budíka pomocou rovnakých spínačov, ale stlačením ľavého tlačidla čas budíka uzamkne. Ak je zadaný nesprávny čas, je možné stlačiť tlačidlo reset (horné tlačidlo) a aktuálny čas a budík sa nastavia na 00:00. Užívateľ potom môže spustiť hodiny pomocou spínača úplne vľavo a zapnúť alarm pomocou nasledujúceho prepínača. Keď je budík zapnutý, budík vydá zvuk, keď sa čas a nastavený čas budíka zhodujú.

Krok 1: Diagram čiernej skrinky

Schéma čiernej skrinky
Schéma čiernej skrinky
Schéma čiernej skrinky
Schéma čiernej skrinky

Náš projekt sme začali nakreslením diagramu čiernej skrinky na vizualizáciu vstupov a výstupov potrebných v našom programe. Nasledujúce vstupy pre náš program, ako napríklad 5-bitový vstup (Hour_in), boli inicializované tak, aby určovali 24-hodinový časový, 6-bitový (Min_in) vstup pre zobrazenie až 60 minút, tlačidlo reset (Rst_b), ktoré užívateľovi umožňuje zmeniť svoj časový vstup, 1-bitový vstup (alm_en), ktorý načítava poplachový vstup, 1-bitový vstup (alarm_sw) na vypnutie budíka, keď je aktivovaný, 1-bitový vstup (e_sec), ktorý riadi počítadlo sekúnd pobeží, 1-bitový vstup (Led_btn), ktorý nastavuje aktuálny čas, a nakoniec 1-bitový vstup (clk), ktorý riadi čas zobrazovaný doskou Basys 3. Výstupmi sú (alm_on), ktoré odosielajú signál do Arduina, výstup sseg, ktorý zobrazuje vstupný čas na základniach 3, a anódový výstup, ktorý riadi, kde sa vstupy zobrazujú na displeji so siedmimi segmentmi.

Krok 2: Pomalé hodiny

Pomalé hodiny
Pomalé hodiny

Pomalé hodiny alebo súbor clock_div2 vytvoria hodiny, ktorých frekvencia je 2 Hz. Ak vložíme tieto hodiny do počítadla sekúnd, hodnota sekúnd sa zvýši o jednu každú sekundu. Pomalé hodiny sa používajú na vytvorenie spoľahlivého hodinového signálu, ktorý sa mení z nízkych na vysoké raz za sekundu.

Krok 3: Počítadlo

Počítadlo
Počítadlo
Počítadlo
Počítadlo

Počítadlo komponentov (minúty a sekundy):

Základnou funkciou minút a sekúnd je, že sú počítadlami. Počítadlo minút vezme vstup (Vin), ktorý je signálom zo vstupov (Min_in), a potom počíta, kým nedosiahne požadovaný zadaný vstup. Sekundy zaberajú iba vstup prepínača (e_Sec), pretože ho nemožno zobraziť na siedmom segmente, a počítajú sa na pozadí, keď je prepínač vysoký „1“. Obe tam vygenerujú hodnotu do (Qout) a potom sa uložia do (údajov), ktoré ich odošlú do SSEG, čo sa vykoná v prepojovacom súbore. Akonáhle minúty a sekundy dosiahnu hodnoty 59, resetujú sa a ich výstup je „1“, aby sa zvýšili minúty/hodiny. Tiež je možné ich mapovať s resetom (rst_b) na ich vstupy.

Krok 4: Počítadlo hodín

Počítadlo hodín
Počítadlo hodín
Počítadlo hodín
Počítadlo hodín

Hodina počítadla komponentov

Podobne, pokiaľ ide o počítadlo komponentov minút a sekúnd, hodinová zložka preberá vstupy s, ako je (Vin), čo je signál z prepojovacieho vstupu súboru (Hodina_v), a má výstupy, ktoré sú rovnakým spôsobom prepojené v minútach a sekundách. Keď hodnota počítania hodiny dosiahne 24 00, vynuluje sa na 00 00.

Krok 5: Alarm

Alarm
Alarm
Alarm
Alarm
Alarm
Alarm
Alarm
Alarm

Súbor.vhd alarmu sa skladá z d-klopných obvodov, čo sú úložné zariadenia, ktoré môžu ukladať digitálne údaje. Alarmový súbor slúži na uloženie času, kedy bude alarm aktivovaný. Aby sme uložili údaje o hodinách (5-bitový vstup) a minútach (6-bitový vstup), musíme do nášho súboru alarmov vyraziť 11 d-flip-flopov. Aby sme to urobili, musíme najskôr importovať logiku riadiacu činnosť d-flip-flopov a mapovať komponenty. Každý z 11 d-klopných obvodov bude ukladať jeden bit údajov zo vstupov a umožní mapovanie údajov na výstupy súboru alarmu. Pretože d-flip-flopy ukladajú údaje, sme schopní ich použiť neskôr, aj keď boli zmenené vstupné prepínače.

Krok 6: Univerzálny sedemsegmentový ovládač displeja

Univerzálny sedemsegmentový ovládač displeja
Univerzálny sedemsegmentový ovládač displeja
Univerzálny sedemsegmentový ovládač displeja
Univerzálny sedemsegmentový ovládač displeja
Univerzálny sedemsegmentový ovládač displeja
Univerzálny sedemsegmentový ovládač displeja

Univerzálny sedemsegmentový ovládač displeja prijíma vstupy zo sady hodín a hodín a je schopný ich vyviezť na sedemsegmentový displej na doske. Vodič je schopný vyvesiť na tabuľu dve oddelené počty naraz. Túto funkciu sme použili na oddelené zobrazenie hodinového času a minútového času. Sedemsegmentový displej môže súčasne aktivovať iba jedno číslo, takže súbor sseg musí používať multiplexovanie na zobrazenie všetkých čísel času súčasne. Hodinový signál dosky je privádzaný do seg, aby bol zachovaný správny čas pre multiplexovanie. Binárne na binárne kódované desatinné kodéry sú potrebné na konverziu vstupov do súboru do formy, ktorú je možné odoslať na sedemsegmentový displej. Konečný výstup súboru sseg je mapovaný na sedemsegmentový displej a na displeji sa zobrazuje správny čas.

Krok 7: Prepojte súbor

Odkazový súbor
Odkazový súbor
Odkazový súbor
Odkazový súbor
Odkazový súbor
Odkazový súbor

Súbor prepojenia spája všetky ostatné aspekty programu a mapuje signály na ich správne miesto. Každý komponent je vložený a vytvorený v rámci súboru. Signály sa používajú na prenos údajov z jedného komponentu do druhého. Mapovanie portov bude postupovať podľa vyššie uvedeného diagramu čiernej skrinky. Odkazový súbor tiež obsahuje logiku, ktorou sa riadi aktivácia alarmu. V tomto bode bude už väčšina projektu dokončená. Zostávajúca práca je smerovanie každého signálu na príslušné miesto.

Krok 8: Arduino

Arduino
Arduino
Arduino
Arduino

Arduino sa používa na aktiváciu reproduktora, ako aj na ovládanie tónu a trvania tónu prehrávaného cez reproduktor. Arduino číta digitálny signál z dosky Basys 3. Keď je tento signál vysoký, arduino vydá signál PWM riadiaci tón a trvanie alarmu. Výstupný signál z arduina sa pripája k vstupnému signálu z dosky ovládača reproduktora, čo zvyšuje hlasitosť reproduktora. Arduino robí tento proces veľmi rýchlo a opakuje sa mnohokrát za sekundu.

Krok 9: Vedenie kábla

Vedenie káblov
Vedenie káblov

Doska arduino a Basys 3 musí byť fyzicky prepojená s prenosom signálov medzi doskami. Prvý kábel na prepojenie bude od uzemňovacieho kolíka JA PMOD základov 3 k uzemňovaciemu kolíku arduina. Potom pripojte vodič z kolíka 1 JA PMOD základov 3 k digitálnemu kolíku 7 arduina. Ďalej spojte dva uzemňovacie kolíky z arduina s uzemňovacími kolíkmi reproduktora. Ďalej pripojte výstup 3,3 V arduina k kolíku Vcc ovládača reproduktora. Ďalej pripojte digitálny kolík 9 arduina k vstupnému kolíku ovládača reproduktora.

Odporúča: