Kazalo:

Model univerzalnega stikala za izklop: 10 korakov
Model univerzalnega stikala za izklop: 10 korakov

Video: Model univerzalnega stikala za izklop: 10 korakov

Video: Model univerzalnega stikala za izklop: 10 korakov
Video: Электрочайник не включается (чистка термореле) 2024, November
Anonim
Model univerzalnega stikala za izklop
Model univerzalnega stikala za izklop

Ste naveličani preverjanja, ali so vse luči v vaši hiši ugasnjene, preden zaspite? Bi radi, da bi lahko brez napora ugasnili vsako luč naenkrat? Da bi prihranili moč in čas, smo se odločili ustvariti sistem, ki bi teoretično lahko zaprl celotno hišo naenkrat.

Dokaz tega koncepta smo modelirali z uporabo nekaj LED in vezja 3 basys ter ustvarili zasnovo, ki bi deaktivirala vse LED s pritiskom na gumb. Ta model bi lahko uporabili tudi za dejanski sistem razsvetljave doma, čeprav bi zahteval bolj zapleteno ožičenje in spremembe datotek VHDL.

1. korak: Uvozite datoteke VHDL

Če želite, da naš model deluje pravilno, morate prenesti programsko opremo, ki daje navodilom Basys 3 navodila.

Najprej boste morali prenesti orodje za sintezo za izvajanje datotek vhdl v strojno opremo. Če želite biti prepričani, da bo vsa koda v celoti ponovila naš dizajn brez kakršnih koli sprememb, priporočamo, da uporabite Vivado 2016.2. Ko namestite Vivado, lahko ustvarite projekt in naložite naše izvorne datoteke. Dodajte jih kot vire v svoj projekt, ne pozabite dodati tudi datoteke z omejitvami!

Nato bomo razložili, kaj počne vsaka od izvornih datotek. Preskočite korake od 2 do 6, če želite samo priti do fizične konstrukcije naprave.

2. korak: Razčlenitev zgornjega modula VHDL

Razčlenitev zgornjega modula VHDL
Razčlenitev zgornjega modula VHDL
Razčlenitev zgornjega modula VHDL
Razčlenitev zgornjega modula VHDL

Zgornji modul projekta povezuje vse posamezne sestavne module z uporabljeno strojno opremo. Kot lahko vidite, imamo modula killSwitch in buzzerControl definirana kot komponente na vrhu.

Spodnji del določa, kako so ti moduli povezani. Na ploščo smo povezali štiri LED diode in jih povezali z moduli killSwitch od dev0 do dev3. Določili smo štiri module killSwitch, ker potrebujemo enega za upravljanje stanja vsake povezane LED. Vsak od teh modulov uporablja signal ure in gumba, ki smo ga ustvarili v zgornji definiciji modula, ter njihova vhodna stikala in signale izhodne naprave.

Nadzorni modul brenčalnika na dnu aktivira brenčalo, ko pritisnete univerzalni gumb za izklop. Kot lahko vidite, se krmilnemu modulu brenčalca posreduje ura in signal gumba kot vhoda. Posredovan je tudi fizični izhodni zvonec za ustrezno krmiljenje.

3. korak: Razčlenitev modula VHDL Kill Switch

Razčlenitev modula stikala VHDL Kill
Razčlenitev modula stikala VHDL Kill
Razčlenitev modula stikala VHDL Kill
Razčlenitev modula stikala VHDL Kill

Stikalo Kill je univerzalni gumb za izklop, modul pa se ukvarja predvsem s povezovanjem z drugimi elementi vezja, tako da se ob pritisku ugasnejo vse luči.

Medtem ko zgornji modul upravlja povezavo fizične strojne opreme s programsko opremo, modul killSwitch obravnava glavno logiko vsake naprave. Modul sprejema vhode za signal ure, univerzalni gumb za izklop in stikalo za napravo. V zameno nadzoruje stanje pin naprave, s katerim je povezan.

V oddelku za arhitekturo kode vidimo, da je odvisna od modula dFlipFlop za shranjevanje pomnilnika. Vidite lahko tudi, da smo deklarirali štiri signale, ki bodo uporabljeni za povezovanje japonk in za izvajanje naših logičnih stavkov. V vedenjskem odseku kode smo ustvarili primerek modula dFlipFlop in vrata vhodno/izhodno dodelili.

Od tu je glavni del naše logike v vrednostih signalov za invertState in isDevOn. Naša logična podlaga za napravo je naslednja: "Kadar koli pritisnete stikalo, bo lučka preklopila v stanje vklopa/izklopa. Vsakič, ko pritisnete gumb in je LED trenutno vklopljena, bo LED spremenila stanje v položaj za izklop. " Iz teh dveh stavkov lahko ekstrapoliramo, da mora biti stanje LED XOR stikala in pomnilniškega elementa. To je mogoče videti v signalu isDevOn. Za stanje LED za pomnilniški element upravlja naš invertState signal. Če LED sveti in je gumb pritisnjen, se bo naš pomnilniški element posodobil in obrnil svoje stanje. To nato obrne tudi stanje LED.

4. korak: Razčlenitev modula VHDL flip flop

Razčlenitev modula VHDL flip flop
Razčlenitev modula VHDL flip flop

Ena od težav pri naši zasnovi je bila dejstvo, da je treba po uporabi stikala za izklop morda že dvakrat prižgati luči, da se vrnejo v položaj za vklop. To bi bilo za ljudi sčasoma precej neprijetno. Te nevšečnosti smo uspeli izogniti tako, da smo v našo zasnovo vključili "japonko", element vezja, ki lahko shranjuje informacije. Zdaj se sistem spomni, ali je bilo stikalo za luč že vklopljeno, tako da se bo, če ga ponovno obrnete, vklopilo ne glede na začetni položaj.

Koda VHDL uporablja stavke if in else za ustvarjanje flip flopa kot komponente v naši zasnovi vezja. Zagotavlja, da ko signal ure preide iz nizkega v visoko stanje, ko je žarnica vklopljena in ko je stikalo za izklop pritisnjeno, izhod flip flops prepiše svoj vhod. Ko je vnos prepisan, se japonka obrne.

5. korak: Razčlenitev modula Piezo Buzzer VHDL

Razčlenitev modula Piezo Buzzer VHDL
Razčlenitev modula Piezo Buzzer VHDL
Razčlenitev modula Piezo Buzzer VHDL
Razčlenitev modula Piezo Buzzer VHDL

Ta datoteka je nekoliko odveč, kar zadeva zasnovo strojne opreme, vendar je bistvena za nemoteno delovanje zgornjih modulov in datotek z omejitvami. Če se odločite, da ne boste uporabljali zvočnika Piezo, prenesite to datoteko, vendar ne prilepite zvočnika na ploščo Basys 3.

Zvočni signal Piezo bo ob pritisku na gumb za onemogočanje predvajal zvok z dvema notama, ki bo uporabniku zagotovil zvočno povratno informacijo, da je bil gumb pritisnjen. To vedenjsko izvedbo smo v VHDL implementirali z vrsto stavkov if v strukturi procesa. Začeli smo z ustvarjanjem celoštevilske vrednosti za spremljanje, koliko sprememb je prišlo do ure. Ko se postopek začne, program porabi prve pol sekunde (od 0 do 50 milijonov taktov ure), da odda opombo A pri 440 hercih. To dosežemo z obračanjem piezo -brenčalnega signala na vsakih celo večkratnih 227272 urah z modulo funkcijo. Ta številka je rezultat deljenja signala ure na plošči (100 MHz) z želeno frekvenco (400 Hz). V drugi polovici sekunde (50 do 100 milijonov taktov ure) plošča na enak način kot prej oddaja opombo F pri 349,2 herca. Po eni sekundi program ne poveča več spremenljivke ure in preneha oddajati karkoli iz piezo brenčalnika. Ponovni pritisk univerzalnega gumba za izklop ponastavi to številko na 0 in znova zažene cikel hrupa.

6. korak: Razčlenitev datoteke omejitev VHDL

Datoteka omejitev pove Vivadu, katere naprave na plošči Basys 3 uporabljamo. Vivadu ponuja tudi imena, ki smo jih napravam dali v naši kodi. Vivado potrebuje te podatke, da ve, kako povezati naše logične elemente s fizično strojno opremo. Datoteka omejitev vsebuje veliko količino komentirane (neuporabljene) kode. Te vrstice kode se nanašajo na naprave na plošči, ki jih ne uporabljamo.

Naprave, ki jih uporabljamo, vključujejo štiri vhodna stikala z oznako V17, V16, W16 in W1 na plošči. Uporabljamo tudi univerzalni gumb za izklop z oznako U18. Izhodni zatiči za naše štiri povezane LED diode so JB4, JB10, JC4 in JC10. Za naš piezzo brenčalec uporabljamo izhodni zatič JA9.

Kot smo navedli v zgornji razčlenitvi modulov, če želite na ploščo dodati dodatne LED ali druge naprave, morate povečati obseg signalov sw in dev, dodati več modulov killSwitch in jih povezati skupaj. Ta imena spremenljivk morate nato povezati z datoteko omejitev s strojno opremo naprave. To lahko storite tako, da odkomentirate (znova omogočite) vrstice kode, povezane z nožicami, ki jih želite uporabiti, nato pa v zgornjem modulu dodate ime njene povezane spremenljivke. Ustrezna sintaksa za to se lahko kopira iz naprav, ki jih uporabljamo. Če želite izvedeti imena zatičev, ki jih želite uporabiti na plošči, si oglejte referenčni vodnik Baasys 3 tukaj.

7. korak: Izdelava temeljev 3

Konstrukcija temeljev 3
Konstrukcija temeljev 3
Konstrukcija temeljev 3
Konstrukcija temeljev 3

Svetleče diode boste morali priključiti v pravilna V/I vrata Basys 3. Sledite slikam, da ugotovite, katera vrata so pravilna, ker če LED priklopite v napačna vrata, ne zasveti. Če ste se odločili za priključitev piezo brenčalnika, ga boste morali povezati tudi s pravilnimi V/I vrati.

Ko je plošča pripravljena, jo priključite v računalnik prek kabla USB.

8. korak: Izvajanje datotek VHDL v baze 3

Izvajanje datotek VHDL v baze 3
Izvajanje datotek VHDL v baze 3
Izvajanje datotek VHDL v baze 3
Izvajanje datotek VHDL v baze 3

Zdaj, ko je plošča pripravljena in koda končana, lahko model končno sestavite.

Ko nastavite svoj projekt v Vivadu, morate klikniti gumb "Ustvari Bitstream", da sestavite kodo, preden jo naložite na ploščo. Če v tem času prejmete sporočilo o napaki, morate še enkrat preveriti, ali se vaša koda popolnoma ujema z našo. Ko natančno povem, mislim celo na podpičje ali vrste oklepajev, ki se uporabljajo. Ko je bitni tok uspešno zapisan, pojdite v upravitelja strojne opreme v Vivadu in kliknite gumb »Odpri cilj«, nato pa takoj kliknite »Programska naprava«. Vaša plošča Basys 3 bi morala biti zdaj popolnoma funkcionalna.

9. korak: Uporaba plošče Basys 3

Uporaba deske Basys 3
Uporaba deske Basys 3

Zdaj, ko je plošča Basys 3 operativna in je programirana tako, da predstavlja naš model, morate vedeti, kako jo uporabljati.

Vsako od štirih stikal, ki so najbolj oddaljena od desne, upravlja eno izmed LED, njihovo utripanje bo povzročilo vklop ali izklop LED. Če se LED ne vklopi, preverite, ali ste priključeni na pravilna V/I vrata in ali vaša LED deluje v celoti.

Če želite onemogočiti vse LED naenkrat, morate pritisniti osrednji gumb v nizu petih gumbov, prikazanih zgoraj.

10. korak: Pokažite se

Model služi kot čedna majhna novost, ki jo lahko pokažete pred prijatelji in družino. Teoretično se lahko uporablja tudi za vgradnjo univerzalnega stikala za izklop v vaš domači električni sistem, če LED zamenjate z žicami, ki vodijo do vaših luči. Čeprav je to mogoče, bi se temu morali še vedno odsvetovati. Če poskusite napeljati brez pomoči električarja, lahko resno poškodujete sebe ali svoj dom.

Priporočena: