
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59

Mūsu projekts rada modinātāju, izmantojot Basys 3 FPGA plati, Arduino un skaļruņu draivera paneli. Lietotājs var ievadīt tāfeles pašreizējo laiku, izmantojot 11 Basys 3 ievades slēdžus, un fiksēt vērtību, izmantojot tāfeles vidējo pogu. Pēc tam lietotājs var ievadīt modinātāja laiku, izmantojot tos pašus slēdžus, bet nospiediet kreiso pogu, lai bloķētu modinātāja laiku. Ja tiek ievadīts nepareizs laiks, var nospiest atiestatīšanas pogu (augšējā poga) un pašreizējais pulksteņa laiks un modinātāja laiks tiks iestatīts uz 00:00. Pēc tam lietotājs var iedarbināt pulksteni, izmantojot kreisāko slēdzi, un ieslēgt modinātāju, izmantojot nākamo slēdzi. Kad modinātājs ir ieslēgts, modinātājs izdod skaņu, kad pulkstenis un iestatītais modinātāja laiks sakrīt.
1. darbība: Melnās kastes diagramma


Mēs sākām savu projektu, uzzīmējot melnās kastes diagrammu, lai vizualizētu mūsu programmā vajadzīgos ievadus un rezultātus. Šādas mūsu programmas ievades, piemēram, 5 bitu ievade (Hour_in), tika inicializētas, lai norādītu 24 stundu laiku, 6 bitu (Min_in) ieeju, lai parādītu līdz 60 minūtēm, un atiestatīšanas (Rst_b) pogu, lai lietotājs varētu mainīt savu laika ievadi, 1 bitu ievadi (alm_en), kas ielādē trauksmes ieeju, 1 bitu ieeju (alarm_sw), lai izslēgtu modinātāju, kad tas ir aktivizēts, 1 bitu ievadi (e_sec), kas kontrolē skaitītāja darbību darbosies sekundes, 1 bitu ievade (Led_btn), kas nosaka pašreizējo laiku, un visbeidzot 1 bitu ievade (clk), kas kontrolē Basys 3 plates parādīto laiku. Izejas ir (alm_on), kas sūta signālu uz Arduino, sseg izeja, kas parāda ievades laiku Basys 3, un anoda izeja, kas kontrolē, kur ieejas tiek parādītas septiņu segmentu displejā.
2. solis: lēns pulkstenis

Lēnais pulkstenis vai clock_div2 fails izveido pulksteni, kura frekvence ir 2 hz. Ja mēs piegādāsim šo pulksteni mūsu sekundes skaitītājam, sekunžu vērtība katru sekundi palielināsies par vienu. Lēnais pulkstenis tiek izmantots, lai izveidotu uzticamu pulksteņa signālu, kas reizi sekundē mainās no zema uz augstu.
3. solis: skaitītājs


Komponentu skaitītājs (minūtes un sekundes):
Minūtes un sekundes pamatfunkcija ir tā, ka tās ir skaitītāji. Minūšu skaitītājs ievada ievadi (Vin), kas ir signāls no ieejām (Min_in), un pēc tam tiek skaitīts, līdz tiek sasniegta vajadzīgā ievade. Sekundes ievada tikai slēdža (e_Sec) ievadi, jo to nevar parādīt septiņos segmentos, un skaitās fonā, tiklīdz slēdzis ir augstu '1'. Viņi abi izvada tur vērtību (Qout), un pēc tam tā tiek saglabāta (datos), kas to nosūta uz SSEG, kas tiek darīts saistīšanas failā. Turklāt, kad minūtes un sekundes sasniedz vērtības 59, tas tiek atiestatīts, un to iznākums ir “1”, lai palielinātu minūtes/stundu. To var arī kartēt ar atiestatīšanu (rst_b) to ievadēm.
4. solis: skaitītāja stunda


Komponentu skaitītāja stunda
Līdzīgi arī minūšu un sekunžu komponentu skaitītājam stundas komponents ievada ievades s, piemēram, (Vin), kas ir signāls no sasaistes faila ievades (Hour_in), un tai ir izejas, kas tādā pašā veidā ir saistītas minūtes un sekundes. Kad stundu skaitīšanas vērtība sasniedz 24 00, tā tiek atiestatīta uz 00 00.
5. darbība: modinātājs




Modinātāja.vhd failu veido d-flip-flops, kas ir atmiņas ierīces, kas var saglabāt digitālos datus. Trauksmes fails tiek izmantots, lai saglabātu laiku, kurā modinātājs tiks aktivizēts. Lai saglabātu stundu (5 bitu ievade) un minūšu (6 bitu ievade) datus, trauksmes failā ir jāizspiež 11 d-flip-flops. Lai to izdarītu, mums vispirms jāimportē loģika, kas regulē d-flip-flops darbību, un jāapzīmē komponenti. Katrs no 11 d-flip-flops saglabās vienu datu bitu no ieejām un ļaus datus kartēt trauksmes faila izejās. Tā kā d-flip-flops glabā datus, mēs varam tos izmantot vēlāk, pat ja ir mainīti ievades slēdži.
6. darbība: universālais septiņu segmentu displeja draiveris



Universālais septiņu segmentu displeja draiveris saņem ieejas no pulksteņa un pulksteņa iestatījuma un var tos izvadīt uz tāfeles septiņu segmentu displeja. Vadītājs vienlaikus var izvadīt divus atsevišķus skaitļus uz tāfeles. Mēs izmantojām šo funkciju, lai atsevišķi parādītu gan stundas, gan minūtes laiku. Septiņu segmentu displejs vienlaikus var aktivizēt tikai vienu numuru, tāpēc sseg failam jāizmanto multipleksēšana, lai vienlaikus parādītu visus laika skaitļus. Dēļa pulksteņa signāls tiek ievadīts ssegā, lai saglabātu pareizo multipleksēšanas laiku. Lai pārveidotu ievades failā tādā formā, kuru var izvadīt septiņu segmentu displejā, ir nepieciešams binārais uz bināro kodēto decimālo kodētāju. Sseg faila galīgā izvade tiek kartēta uz septiņu segmentu displeju, un displejā tiek parādīts pareizais laiks.
7. darbība: saistiet failu



Saites fails savieno visus pārējos programmas aspektus un kartē signālus to pareizajā vietā. Katrs komponents tiek ievests un parādīts failā. Signāli tiek izmantoti datu pārsūtīšanai no viena komponenta uz otru. Portu kartēšana notiks pēc iepriekš uzskaitītās melnās kastes diagrammas. Saites failā ir arī loģika, kas regulē trauksmes aktivizēšanu. Lielākā daļa projekta tiks pabeigta līdz šim brīdim. Atlikušais darbs ir katra signāla novirzīšana uz atbilstošo vietu.
8. solis: Arduino


Arduino tiek izmantots, lai aktivizētu skaļruni, kā arī kontrolētu skaļrunī atskaņotās piezīmes toni un ilgumu. Arduino nolasa digitālo signālu no Basys 3 plates. Kad šis signāls ir augsts, arduino izvadīs PWM signālu, kas kontrolē trauksmes signālu un ilgumu. Izvades signāls no arduino savienojas ar skaļruņa draivera plates ieejas signālu, kas palielina skaļruņa skaļumu. Arduino šo procesu veic ļoti ātri, atkārtojot daudzas reizes sekundē.
9. solis: kabeļu maršrutēšana

Arduino un Basys 3 platei jābūt fiziski savienotai, lai pārsūtītu signālus starp dēļiem. Pirmais vads pie vadiem būs no Basys 3 JA PMOD zemējuma tapas līdz arduino zemējuma tapai. Pēc tam pievienojiet vadu no Basys 3 JA PMOD 1. tapas līdz arduino 7. digitālajai tapai. Pēc tam savienojiet divas arduino iezemētās tapas ar skaļruņu draivera zemējuma tapām. Pēc tam pievienojiet arduino 3,3 V izeju skaļruņu draivera Vcc tapai. Pēc tam pievienojiet arduino digitālo tapu 9 skaļruņa draivera ieejai.
Ieteicams:
RaspberryPi islāma lūgšanu pulkstenis un modinātājs: 15 soļi (ar attēliem)

RaspberryPi islāma lūgšanu pulkstenis un modinātājs: musulmaņiem visā pasaulē katru dienu ir piecas lūgšanas, un katrai lūgšanai ir jābūt noteiktā diennakts laikā. eliptiskais veids, kā mūsu planēta pārvietojas ap sauli, kas padara saullēkta un lejupslīdes laiku visu gadu atšķirīgu, tāpēc
Sejas pieskāriena modinātājs: 4 soļi (ar attēliem)

Sejas pieskāriena trauksme: Pieskaršanās mūsu sejai ir viens no visizplatītākajiem veidiem, kā inficēties ar tādiem vīrusiem kā Covid-19. Akadēmiskais pētījums 2015. gadā (https://www.ncbi.nlm.nih.gov/pubmed/25637115) atklāja, ka mēs pieskaramies savām sejām vidēji 23 reizes stundā. Es izlemju
Viedais modinātājs, izmantojot Magicbit (Arduino): 10 soļi

Viedais modinātājs, izmantojot Magicbit (Arduino): šī apmācība parāda, kā izveidot viedu modinātāju, izmantojot OLED displeju Magicbit dev panelī, neizmantojot RTC moduli
Modinātājs guļamistabai ar gaismām un skaņām!: 6 soļi

Modinātājs guļamistabai ar gaismām un skaņām!: Sveiki, šodien es jums parādīšu, kā izveidot modinātāju jūsu guļamistabas durvīm, izmantojot Arduino UNO
Viedais modinātājs: viedais modinātājs, kas izgatavots ar Raspberry Pi: 10 soļi (ar attēliem)

Viedais modinātājs: viedais modinātājs, kas izgatavots, izmantojot Raspberry Pi: Vai esat kādreiz vēlējies gudru pulksteni? Ja tā, tas ir risinājums jums! Es izveidoju viedo modinātāju, tas ir pulkstenis, ar kuru jūs varat mainīt modinātāja laiku atbilstoši vietnei. Kad modinātājs atskan, atskanēs skaņa (skaņas signāls) un iedegsies 2 gaismas