Indholdsfortegnelse:

Basys 3 vækkeur: 9 trin
Basys 3 vækkeur: 9 trin

Video: Basys 3 vækkeur: 9 trin

Video: Basys 3 vækkeur: 9 trin
Video: Как сделать стяжку с шумоизоляцией в квартире. #18 2024, November
Anonim
Basys 3 vækkeur
Basys 3 vækkeur

Vores projekt skaber et vækkeur ved hjælp af Basys 3 FPGA -kortet, en Arduino og et højttalerdriverkort. Brugeren er i stand til at indtaste den aktuelle tid til kortet ved hjælp af 11 input switches på Basys 3 og låse værdien ved hjælp af den midterste knap på kortet. Brugeren kan derefter indtaste alarmtiden ved hjælp af de samme kontakter, men tryk på den venstre knap for at låse alarmtiden. Hvis det forkerte tidspunkt indtastes, kan der trykkes på nulstillingsknappen (øverste knap), og det aktuelle ur og alarmtid indstilles til 00:00. Brugeren kan derefter starte uret ved hjælp af kontakten til venstre og tænde alarmen ved hjælp af den næste kontakt. Når alarmen er tændt, vil vækkeuret afgive en lyd, når uret og indstillet alarmtid matcher.

Trin 1: Black Box Diagram

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

Vi startede vores projekt med at tegne et sort boksdiagram for at visualisere de input og output, der er nødvendige i vores program. Følgende input til vores program, såsom 5-bit input (Hour_in) blev initialiseret for at angive 24-timers tid, 6-bit (Min_in) input for at vise op til 60 minutter, en reset (Rst_b) knap, så brugeren kunne ændre deres tidsindgang, en 1-bit input (alm_en), der indlæser alarmindgangen, en 1-bit input (alarm_sw) for at slukke vækkeuret, når det er aktiveret, en 1-bit input (e_sec), der styrer, når tælleren sekunder kører, en 1-bit input (Led_btn), der indstiller det aktuelle klokkeslæt, og endelig en 1-bit input (clk), der styrer den tid, der vises af Basys 3-kortet. Outputene er (alm_on), der sender signalet til Arduino, sseg -output, der viser inputtiden på Basys 3, og anodeudgangen, der styrer, hvor input vises på de syv segmenters display.

Trin 2: Langsomt ur

Langsomt ur
Langsomt ur

Det langsomme ur eller clock_div2 -filen opretter et ur, hvis frekvens er 2 hz. Hvis vi fodrer dette ur til vores sekundærtæller, stiger sekundværdien med et hvert sekund. Det langsomme ur bruges til at skabe et pålideligt urssignal, der skifter fra lavt til højt en gang i sekundet.

Trin 3: Tæller

Tæller
Tæller
Tæller
Tæller

Komponenttæller (minutter og sekunder):

Den grundlæggende funktion af minutter og sekunder er, at de er tællere. Minuttælleren indtager input (Vin), som er signal fra input (Min_in), og tæller derefter, indtil den ønskede input er indtastet. Sekunderne tager kun input af switch (e_Sec), da den ikke kan vises på det syv segment og tæller i baggrunden, når kontakten er høj '1'. De sender begge værdien til (Qout), og derefter gemmes den i (data), der sender den til SSEG, som udføres i forbindelsesfilen. Når minutter og sekunder når værdierne på 59, nulstilles det også, og output fra dem er '1' for at øge minutter/time. Det kan også kortlægges med en nulstilling (rst_b) til deres input.

Trin 4: Tællertime

Tællertime
Tællertime
Tællertime
Tællertime

Komponent tæller time

Tilsvarende til komponenttælleren for minutter og sekunder tager timekomponenten input som f.eks. (Vin), som er et signal fra sammenkædning af filinput (Time_in) og har output, der er forbundet på samme måde minutter og sekunder. Når tællingsværdien for timen når 24 00 nulstilles den til 00 00.

Trin 5: Alarm

Alarm
Alarm
Alarm
Alarm
Alarm
Alarm
Alarm
Alarm

Alarm.vhd-filen består af d-flip-flops, som er lagerenheder, der kan lagre digitale data. Alarmfilen bruges til at gemme det tidspunkt, hvor alarmen aktiveres. For at gemme data om timer (5 bit input) og minutter (6 bit input) skal vi stemple 11 d-flip-flops i vores alarmfil. For at gøre dette skal vi først importere logikken for driften af d-flip-flops og kortlægge komponenterne. Hver af de 11 d-flip-flops gemmer en bit data fra inputene og gør det muligt at kortlægge dataene til alarmfilens output. Fordi d-flip-flops gemmer data, er vi i stand til at bruge dataene på et senere tidspunkt, selvom inputkontakterne er blevet ændret.

Trin 6: Universal Seven Segment Display Driver

Universal syv segment display driver
Universal syv segment display driver
Universal syv segment display driver
Universal syv segment display driver
Universal syv segment display driver
Universal syv segment display driver

Den universelle syv segment display driver modtager input fra uret og uret og er i stand til at sende dem til syv segment display på tavlen. Driveren er i stand til at udsende to separate tællinger på tavlen ad gangen. Vi brugte denne funktion til at vise både timetiden og minuttiden separat. Displayet med syv segmenter er kun i stand til at aktivere et tal ad gangen, derfor skal sseg -filen bruge multiplexering til at vise alle tidens numre samtidigt. Tavlernes ursignal føres ind i sseget for at holde det korrekte tidspunkt for multiplexering. En binær til binær kodet decimal encoder er nødvendig for at konvertere input til filen til en formular, der kan sendes til displayet med syv segmenter. Det endelige output af sseg -filen knyttes til displayet med syv segmenter, og det korrekte tidspunkt vises på displayet.

Trin 7: Link fil

Link fil
Link fil
Link fil
Link fil
Link fil
Link fil

Linkfilen forbinder alle andre aspekter af programmet og kortlægger signalerne til deres korrekte placering. Hver komponent bringes ind og instantieres i filen. Signaler bruges til at overføre data fra den ene komponent til den anden. Portkortlægningen følger det sorte boksdiagram, der er anført ovenfor. Linkfilen indeholder også den logik, der styrer, når alarmen aktiveres. Det meste af projektet vil allerede være afsluttet på dette tidspunkt. Det resterende arbejde dirigerer hvert signal til det passende sted.

Trin 8: Arduino

Arduino
Arduino
Arduino
Arduino

Arduino bruges til at aktivere højttaleren samt styre tonen og varigheden af den note, der spilles gennem højttaleren. Arduino’en læser et digitalt signal fra Basys 3 -kortet. Når dette signal er højt, udsender arduinoen et PWM -signal, der styrer tonen og varigheden af alarmen. Udgangssignalet fra arduinoen forbinder til input -signalet fra et højttalerdriverkort, som øger højttaleren. Arduinoen udfører denne proces meget hurtigt og gentager mange gange i sekundet.

Trin 9: Kabelføring

Kabelføring
Kabelføring

Arduino- og Basys 3 -kortet skal være fysisk forbundet for at overføre signaler mellem kortene. Det første kabel til ledning vil være fra jordnålen på JA PMOD i Basys 3 til jordstiften på arduinoen. Tilslut derefter en ledning fra pin 1 på JA PMOD i Basys 3 til digital pin 7 på arduinoen. Tilslut derefter to jordstifter fra arduinoen til jordstifterne på højttalerdriveren. Forbind derefter 3,3 V -udgangen fra arduinoen til Vcc -stiften på højttalerdriveren. Tilslut derefter den digitale pin 9 på arduinoen til In -pin på højttalerdriveren.

Anbefalede: