Taula de continguts:

Rellotge despertador Basys 3: 9 passos
Rellotge despertador Basys 3: 9 passos

Vídeo: Rellotge despertador Basys 3: 9 passos

Vídeo: Rellotge despertador Basys 3: 9 passos
Vídeo: ajustando relógio digital 2024, De novembre
Anonim
Rellotge despertador Basys 3
Rellotge despertador Basys 3

El nostre projecte crea un despertador mitjançant la placa Basys 3 FPGA, un Arduino i una placa de controladors d’altaveus. L'usuari pot introduir l'hora actual a la placa mitjançant 11 commutadors d'entrada del Basys 3 i bloquejar el valor mitjançant el botó central de la placa. A continuació, l'usuari pot introduir l'hora de l'alarma mitjançant els mateixos commutadors, però prem el botó esquerre per bloquejar l'hora de l'alarma. Si s’introdueix l’hora incorrecta, es pot prémer el botó de reinici (botó superior) i l’hora actual del rellotge i l’hora de l’alarma s’establiran a 00:00. A continuació, l’usuari pot iniciar el rellotge mitjançant l’interruptor situat a l’esquerra i activar l’alarma mitjançant el següent interruptor. Quan s’activa l’alarma, el despertador emetrà un so quan coincideixi l’hora i la configuració de l’alarma.

Pas 1: diagrama de la caixa negra

Diagrama de la caixa negra
Diagrama de la caixa negra
Diagrama de la caixa negra
Diagrama de la caixa negra

Vam començar el nostre projecte dibuixant un diagrama de caixa negra per visualitzar les entrades i sortides necessàries al nostre programa. Les següents entrades per al nostre programa, com ara l'entrada de 5 bits (Hour_in), es van inicialitzar per especificar el temps de 24 hores, l'entrada de 6 bits (Min_in) per mostrar fins a 60 minuts, un botó de reinicialització (Rst_b) per permetre a l'usuari canviar la seva entrada de temps, una entrada de 1 bit (alm_en) que carrega l’entrada d’alarma, una entrada de 1 bit (alarm_sw) per desactivar el despertador quan s’activa, una entrada de 1 bit (e_sec) que controla quan el comptador s'executaran uns segons, una entrada d'1 bit (Led_btn) que estableix l'hora actual i, finalment, una entrada d'1 bit (clk) que controla el temps que mostra la placa Basys 3. Les sortides són (alm_on) que envia el senyal a l'Arduino, la sortida segseg que mostra el temps d'entrada a Basys 3 i la sortida d'ànode que controla on es mostren les entrades a la pantalla dels set segments.

Pas 2: rellotge lent

Rellotge lent
Rellotge lent

El fitxer slow clock o clock_div2 crea un rellotge la freqüència del qual és de 2 hz. Si alimentem aquest rellotge al comptador de segons, el valor dels segons augmentarà un per segon. El rellotge lent s’utilitza per crear un senyal de rellotge fiable que canvia de baix a alt una vegada per segon.

Pas 3: comptador

Comptador
Comptador
Comptador
Comptador

Comptador de components (minuts i segons):

La funció bàsica de minuts i segons és que són comptadors. El comptador de minuts pren l'entrada (Vin) que és el senyal de les entrades (Min_in) i, a continuació, compta fins que arriba a l'entrada desitjada introduïda. Els segons només prenen l'entrada del commutador (e_Sec), ja que no es pot mostrar al segment de set i compta en segon pla un cop el commutador és alt '1'. Tots dos generen un valor a (Qout), i després s’emmagatzemen a (data) que l’envia a SSEG que es fa al fitxer d’enllaç. A més, quan els minuts i els segons assoleixen els valors de 59, es restableix i la sortida d’ells és ‘1’ per tal d’incrementar els minuts / hora. També es pot assignar amb un restabliment (rst_b) a les seves entrades.

Pas 4: Hora de comptador

Hora de comptador
Hora de comptador
Hora de comptador
Hora de comptador

Hora del comptador de components

De la mateixa manera, al comptador de components dels minuts i segons, el component horari pren entrades com ara (Vin), que és un senyal de l'entrada de fitxers que enllaça (Hour_in), i té sortides que es vinculen de la mateixa manera els minuts i els segons. Quan el valor de recompte d'hora arriba a 24 00 es restableix a 00 00.

Pas 5: alarma

Alarma
Alarma
Alarma
Alarma
Alarma
Alarma
Alarma
Alarma

El fitxer.vhd d’alarma està format per d-xancles que són dispositius d’emmagatzematge que poden emmagatzemar dades digitals. El fitxer d'alarma s'utilitza per emmagatzemar l'hora en què s'activarà l'alarma. Per emmagatzemar les dades d’hores (entrada de 5 bits) i minuts (entrada de 6 bits) hem d’esborrar 11 xancletes d dins del nostre fitxer d’alarma. Per fer-ho, primer hem d'importar la lògica que regeix el funcionament de les xancletes d i assignar els components. Cadascuna de les 11 xancletes d emmagatzema un bit de dades de les entrades i permetrà assignar-les a les sortides del fitxer d'alarma. Com que les xancletes d emmagatzemen dades, podem utilitzar-les en un moment posterior encara que els commutadors d’entrada s’hagin modificat.

Pas 6: controlador de pantalla universal de set segments

Controlador de pantalla universal de set segments
Controlador de pantalla universal de set segments
Controlador de pantalla universal de set segments
Controlador de pantalla universal de set segments
Controlador de pantalla universal de set segments
Controlador de pantalla universal de set segments

El controlador de pantalla universal de set segments rep les entrades del rellotge i del conjunt de rellotges i pot enviar-les a la pantalla de set segments del tauler. El controlador pot generar dos comptes separats al tauler alhora. Hem utilitzat aquesta funció per mostrar l’hora i l’hora dels minuts per separat. La visualització de set segments només pot activar un número a la vegada, de manera que el fitxer sseg ha d’utilitzar la multiplexació per mostrar simultàniament tots els números del temps. El senyal de rellotge de les plaques s’introdueix a la sseg per mantenir l’hora correcta de multiplexació. Cal un codificador decimal codificat de binari a binari per convertir les entrades al fitxer en un formulari que es pot enviar a la pantalla de set segments. La sortida final del fitxer sseg es mapeja a la pantalla de set segments i es mostra la hora correcta a la pantalla.

Pas 7: enllaçar el fitxer

Fitxer d'enllaç
Fitxer d'enllaç
Fitxer d'enllaç
Fitxer d'enllaç
Fitxer d'enllaç
Fitxer d'enllaç

El fitxer d’enllaç connecta tots els altres aspectes del programa i assigna els senyals a la seva ubicació correcta. Cada component s’inclou i s’instancia al fitxer. Els senyals s’utilitzen per transferir dades d’un component a l’altre. El mapatge de ports seguirà el diagrama de quadre negre que s’enumera més amunt. El fitxer d'enllaç també conté la lògica que regeix quan s'activa l'alarma. La majoria del projecte ja estarà acabat en aquest punt. La feina restant està encaminant cada senyal a la ubicació adequada.

Pas 8: Arduino

Arduino
Arduino
Arduino
Arduino

L’arduino s’utilitza per activar l’altaveu i controlar el to i la durada de la nota que es reprodueix a través de l’altaveu. L’arduino llegeix un senyal digital des de la placa Basys 3. Quan aquest senyal és alt, l'arduino emetrà un senyal PWM que controla el to i la durada de l'alarma. El senyal de sortida de l’arduino es connecta al senyal d’entrada d’una placa de controladors d’altaveus que augmenta el volum de l’altaveu. L'arduino fa aquest procés molt ràpidament repetint-se moltes vegades per segon.

Pas 9: enrutament per cable

Encaminament per cable
Encaminament per cable

La placa Arduino i Basys 3 han d’estar connectades físicament per transferir senyals entre les plaques. El primer cable que es connectarà serà des del pin de terra del JA PMOD del Basys 3 fins al pin de terra de l’arduino. A continuació, connecteu un cable del pin 1 del JA PMOD del Basys 3 al pin digital 7 de l’arduino. A continuació, connecteu dos pins de terra des de l’arduino als pins de terra del controlador de l’altaveu. A continuació, connecteu la sortida de 3,3 V de l’arduino al pin Vcc del controlador de l’altaveu. A continuació, connecteu el pin digital 9 de l'arduino al pin d'entrada del controlador de l'altaveu.

Recomanat: