Innholdsfortegnelse:

Basys 3 vekkerklokke: 9 trinn
Basys 3 vekkerklokke: 9 trinn

Video: Basys 3 vekkerklokke: 9 trinn

Video: Basys 3 vekkerklokke: 9 trinn
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Juli
Anonim
Basys 3 vekkerklokke
Basys 3 vekkerklokke

Prosjektet vårt lager en vekkerklokke ved hjelp av Basys 3 FPGA -kortet, en Arduino og et høyttalerdriverkort. Brukeren kan legge inn den nåværende tiden til tavlen ved hjelp av 11 inngangsbrytere på Basys 3 og låse verdien ved å bruke den midtre knappen på tavlen. Brukeren kan deretter angi alarmtiden med de samme bryterne, men trykk på venstre knapp for å låse alarmtiden. Hvis du skriver inn feil tid, kan du trykke på tilbakestillingsknappen (øverste knapp) og gjeldende klokkeslett og alarmtid vil bli satt til 00:00. Brukeren kan deretter starte klokken ved å bruke bryteren lengst til venstre og slå på alarmen med neste bryter. Når alarmen er slått på, vil alarmklokken lage en lyd når klokkeslettet og innstilt alarmtid samsvarer.

Trinn 1: Black Box Diagram

Black Box Diagram
Black Box Diagram
Black Box Diagram
Black Box Diagram

Vi begynte prosjektet vårt med å tegne et svart boks -diagram for å visualisere innganger og utganger som trengs i programmet vårt. Følgende innganger for programmet vårt, for eksempel 5-bits inngang (time_in) ble initialisert for å spesifisere 24-timers tid, 6-bit (Min_in) inngang for å vise opptil 60 minutter, en tilbakestilling (Rst_b) -knapp for å la brukeren endre tidsinngangen, en 1-bits inngang (alm_en) som laster alarminngangen, en 1-bits inngang (alarm_sw) for å slå av vekkerklokken når den er aktivert, en 1-bits inngang (e_sec) som kontrollerer når telleren sekunder vil kjøre, en 1-bits inngang (Led_btn) som angir gjeldende tid, og til slutt en 1-bits inngang (clk) som styrer tiden som vises av Basys 3-kortet. Utgangene er (alm_on) som sender signalet til Arduino, sseg -utgangen som viser inngangstiden på Basys 3, og anodeutgangen som styrer hvor inngangene vises på de syv segmentene.

Trinn 2: Sakte klokke

Sakte klokke
Sakte klokke

Den sakte klokken eller clock_div2 -filen oppretter en klokke hvis frekvens er 2 hz. Hvis vi mater denne klokken til sekundtelleren, øker sekundverdien med ett hvert sekund. Den sakte klokken brukes til å lage et pålitelig klokkesignal som endres fra lav til høy en gang i sekundet.

Trinn 3: Teller

Disk
Disk
Disk
Disk

Komponentteller (minutter og sekunder):

Den grunnleggende funksjonen til minutter og sekunder er at de er tellere. Minuttelleren tar inn inngang (Vin) som er signal fra innganger (Min_in), og teller deretter til når ønsket inngang er lagt inn. Sekundene tar bare inngangen til bryteren (e_Sec) siden den ikke kan vises på det syv segmentet, og teller i bakgrunnen når bryteren er høy '1'. De sender begge ut verdien til (Qout), og deretter lagres den i (data) som sender den til SSEG som gjøres i koblingsfilen. Når minutter og sekunder når verdiene til 59, tilbakestilles den, og utgangen av dem er "1" for å øke minutter/time. Den kan også kartlegges med en tilbakestilling (rst_b) til inngangene.

Trinn 4: Counter Hour

Counter Time
Counter Time
Teller time
Teller time

Komponent teller time

Tilsvarende, til komponenttelleren for minutter og sekunder, tar timekomponenten inn innganger s som (Vin) som er et signal fra kobling av filinngang (Time_in), og har utganger som er koblet på samme måte minutter og sekunder. Når telleverdien for timen når 24 00, tilbakestilles den til 00 00.

Trinn 5: Alarm

Alarm
Alarm
Alarm
Alarm
Alarm
Alarm
Alarm
Alarm

Alarm.vhd-filen består av d-flip-flops som er lagringsenheter som kan lagre digitale data. Alarmfilen brukes til å lagre tidspunktet da alarmen skal aktiveres. For å lagre data om timer (5 bit input) og minutter (6 bit input) må vi stemple ut 11 d-flip-flops i alarmfilen vår. For å gjøre dette må vi først importere logikken for driften av d-flip-flops og kartlegge komponentene. Hver av de 11 d-flip-flops vil lagre en bit data fra inngangene og la dataene bli kartlagt til utgangene til alarmfilen. Fordi d-flip-flops lagrer data, er vi i stand til å bruke dataene på et senere tidspunkt, selv om inndatabryterne er endret.

Trinn 6: Universal sju segmenters skjermdriver

Universal sju segmenters skjermdriver
Universal sju segmenters skjermdriver
Universal sju segmenters skjermdriver
Universal sju segmenters skjermdriver
Universal sju segmenters skjermdriver
Universal sju segmenters skjermdriver

Den universelle sjusegmentdisplaydriveren mottar inngangene fra klokken og klokkesettet og kan sende dem til syvsegmentdisplayet på brettet. Sjåføren kan sende ut to separate tellinger på brettet om gangen. Vi brukte denne funksjonen til å vise både timetid og minuttid separat. Displayet med syv segmenter er bare i stand til å aktivere ett tall om gangen. Derfor må sseg -filen bruke multipleksing for å vise alle tallene samtidig. Tavlenes klokkesignal mates inn i sseget for å beholde riktig tid for multipleksing. En binær til binær kodet desimalkoder er nødvendig for å konvertere inngangene til filen til et skjema som kan sendes ut til syv segmentvisning. Den endelige utgangen av sseg -filen blir kartlagt til syv segmentvisning og riktig tid vises på displayet.

Trinn 7: Koble fil

Link -fil
Link -fil
Link -fil
Link -fil
Link -fil
Link -fil

Lenkefilen kobler alle andre aspekter ved programmet og kartlegger signalene til riktig plassering. Hver komponent blir hentet inn og instantiert i filen. Signaler brukes til å overføre data fra en komponent til den andre. Portkartleggingen følger diagrammet for svart boks som er oppført ovenfor. Lenkefilen inneholder også logikken som styrer når alarmen aktiveres. Det meste av prosjektet vil allerede være ferdig på dette tidspunktet. Det gjenværende arbeidet dirigerer hvert signal til riktig sted.

Trinn 8: Arduino

Arduino
Arduino
Arduino
Arduino

Arduino brukes til å aktivere høyttaleren samt kontrollere tonen og varigheten av notatet som spilles gjennom høyttaleren. Arduinoen leser et digitalt signal fra Basys 3 -kortet. Når dette signalet er høyt, sender arduinoen et PWM -signal som styrer tonen og varigheten av alarmen. Utgangssignalet fra arduino kobles til inngangssignalet til et høyttalerdriverkort som øker volumet på høyttaleren. Arduinoen gjør denne prosessen veldig raskt og gjentar mange ganger i sekundet.

Trinn 9: Kabelføring

Kabelføring
Kabelføring

Arduino- og Basys 3 -kortet må være fysisk tilkoblet for å overføre signaler mellom kortene. Den første kabelen til ledning vil være fra jordpinnen til JA PMOD of the Basys 3 til jordpinnen til arduinoen. Koble deretter en ledning fra pin 1 på JA PMOD på Basys 3 til digital pin 7 på arduinoen. Deretter kobler du to jordpinner fra arduinoen til jordpinnene på høyttalerdriveren. Deretter kobler du 3,3 V -utgangen til arduinoen til Vcc -pinnen til høyttalerdriveren. Deretter kobler du den digitale pinnen 9 på arduinoen til In -pinnen til høyttalerdriveren.

Anbefalt: