Innehållsförteckning:
- Steg 1: Black Box Diagram
- Steg 2: Långsam klocka
- Steg 3: Räknare
- Steg 4: Counter Hour
- Steg 5: Larm
- Steg 6: Universal Seven Segment Display Driver
- Steg 7: Länkfil
- Steg 8: Arduino
- Steg 9: Kabeldragning
Video: Basys 3 väckarklocka: 9 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Vårt projekt skapar en väckarklocka med hjälp av Basys 3 FPGA -kortet, en Arduino och ett högtalarkort. Användaren kan mata in den aktuella tiden till kortet med 11 ingångsbrytare på Basys 3 och låsa in värdet med mittenknappen på kortet. Användaren kan sedan ange larmtiden med samma omkopplare men tryck på vänster knapp för att låsa in larmtiden. Om du anger fel tid kan du trycka på återställningsknappen (övre knappen) och den aktuella klockan och alarmtiden ska ställas in på 00:00. Användaren kan sedan starta klockan med knappen längst till vänster och slå på larmet med nästa omkopplare. När larmet slås på kommer väckarklockan att göra ett ljud när klockan och den inställda larmtiden matchar.
Steg 1: Black Box Diagram
Vi började vårt projekt med att rita ett svart lådediagram för att visualisera ingångar och utgångar som behövs i vårt program. Följande ingångar för vårt program, såsom 5-bitars ingång (tim_in) initierades för att ange 24-timmars tid, 6-bitars (Min_in) ingång för att visa upp till 60 minuter, en återställningsknapp (Rst_b) för att låta användaren ändra deras tidsingång, en 1-bitars ingång (alm_en) som laddar larmingången, en 1-bitars ingång (alarm_sw) för att stänga av väckarklockan när den är aktiverad, en 1-bitars ingång (e_sec) som styr när räknaren sekunder körs, en 1-bitars ingång (Led_btn) som ställer in den aktuella tiden, och slutligen en 1-bitars ingång (clk) som styr tiden som visas av Basys 3-kortet. Utgångarna är (alm_on) som skickar signalen till Arduino, sseg -utgången som visar ingångstiden på Basys 3 och anodutgången som styr var ingångarna visas på de sju segmentens display.
Steg 2: Långsam klocka
Den långsamma klockan eller clock_div2 -filen skapar en klocka vars frekvens är 2 hz. Om vi matar denna klocka till vår sekundräknare, ökar sekundvärdet med en varje sekund. Den långsamma klockan används för att skapa en pålitlig klocksignal som ändras från låg till hög en gång per sekund.
Steg 3: Räknare
Komponenträknare (minuter och sekunder):
Grundfunktionen för minuter och sekunder är att de är räknare. Minuteräknaren tar in ingång (Vin) som är signal från ingångar (Min_in) och räknar sedan tills den önskade ingången matas in. Sekunderna tar bara in ingången för omkopplaren (e_Sec) eftersom den inte kan visas på det sju segmentet och räknas i bakgrunden när omkopplaren är hög '1'. De matar båda ut värdet till (Qout), och sedan lagras det i (data) som skickar det till SSEG som görs i länkningsfilen. När minuter och sekunder når värdena på 59 återställs det och utsignalen från dem är "1" för att öka minuter/timme. Det kan också mappas med en återställning (rst_b) till deras ingångar.
Steg 4: Counter Hour
Komponenträknartimme
På samma sätt, till komponenträknaren för minuter och sekunder, tar timkomponenten in ingångar som (Vin) som är en signal från länkande filinmatning (tim_in) och har utgångar som är kopplade på samma sätt minuter och sekunder. När räkningsvärdet för timme når 24 00 återställs det till 00 00.
Steg 5: Larm
Larm.vhd-filen består av d-flip-flops som är lagringsenheter som kan lagra digital data. Larmfilen används för att lagra den tid då larmet kommer att aktiveras. För att lagra data om timmar (5 bitars ingång) och minuter (6 bitars ingång) måste vi stämpla ut 11 d-flip-flops i vår larmfil. För att göra detta måste vi först importera logiken för driften av d-flip-flops och kartlägga komponenterna. Var och en av de 11 d-flip-flopsna kommer att lagra en bit data från ingångarna och låta data mappas till larmfilens utgångar. Eftersom d-flip-flops lagrar data kan vi använda data vid ett senare tillfälle även om ingångsbrytarna har ändrats.
Steg 6: Universal Seven Segment Display Driver
Den universella sju segmentdisplaydrivrutinen tar emot ingångarna från klockan och klockan och kan mata ut dem till sju segmentskärmen på kortet. Föraren kan mata ut två separata räkningar på kortet på en gång. Vi använde denna funktion för att visa både timtid och minuttid separat. Displayen med sju segment kan bara aktivera ett nummer i taget, därför måste sseg -filen använda multiplexering för att visa alla tidens nummer samtidigt. Kortets klocksignal matas in i sseget för att hålla rätt tid för multiplexering. En binär till binär kodad decimalinkodare är nödvändig för att konvertera ingångarna till filen till en form som kan matas ut till sjusegmentdisplayen. Den slutliga utmatningen av sseg -filen mappas till sjusegmentdisplayen och rätt tid visas på displayen.
Steg 7: Länkfil
Länkfilen ansluter alla andra aspekter av programmet och kartlägger signalerna till deras rätta plats. Varje komponent förs in och instantieras i filen. Signaler används för att överföra data från en komponent till den andra. Portmappningen följer det svarta rutschemat som anges ovan. Länkfilen innehåller också logiken som styr när larmet aktiveras. Det mesta av projektet är redan klart vid denna tidpunkt. Det återstående arbetet dirigerar varje signal till lämplig plats.
Steg 8: Arduino
Arduino används för att aktivera högtalaren samt styra tonen och varaktigheten för den ton som spelas genom högtalaren. Arduino läser en digital signal från Basys 3 -kortet. När denna signal är hög kommer arduino att mata ut en PWM -signal som styr tonen och varaktigheten för larmet. Utsignalen från arduino ansluts till insignalen från ett högtalardrivrutin som ökar högtalarens volym. Arduino gör denna process mycket snabbt upprepa många gånger per sekund.
Steg 9: Kabeldragning
Arduino- och Basys 3 -kortet måste fysiskt anslutas för att överföra signaler mellan korten. Den första kabeln till kabeln kommer att vara från jordstiftet på JA PMOD i Basys 3 till jordstiftet på arduino. Anslut sedan en kabel från stift 1 på JA PMOD i Basys 3 till digital stift 7 på arduino. Anslut sedan två jordstift från arduino till jordstiftet på högtalardrivrutinen. Anslut därefter 3,3 V -utgången från arduinoen till Vcc -stiftet på högtalardrivrutinen. Anslut därefter den digitala stift 9 på arduino till in -stiftet på högtalardrivrutinen.
Rekommenderad:
Smart väckarklocka med Magicbit (Arduino): 10 steg
Smart väckarklocka med hjälp av Magicbit (Arduino): Denna handledning visar hur du gör en smart väckarklocka med hjälp av OLED -display i Magicbit dev -kort utan att använda någon RTC -modul
Twin Bell väckarklocka från läskburkar: 7 steg (med bilder)
Twin Bell Alarm Clock From Soda Cans: Denna instruktion visar hur du gör en dubbelklocka väckarklocka från läskburkar. Projektet använder läskburkar där bläcket togs bort (Länk: Bläckborttagning från Soda Cans). För att göra denna väckarklocka fullt fungerande integrerades en DIY Quartz -klockmodul
En bullrig väckarklocka: 3 steg
En bullrig väckarklocka: Jag är en 13 -årig student i Taiwan.Jag gör saker med Arduino för första gången om du kan berätta för mig hur jag kan förbättra detta arbete, vänligen lämna kommentarer för mig så att jag kan göra det bättre. (Tack ) Den här klockan kan väcka dig när du tar en tupplur, men jag
Smart väckarklocka - Intel Edison - Iot RoadShow - São Paulo: 4 steg
Smart väckarklocka - Intel Edison - Iot RoadShow - São Paulo: En av de stora dygderna för alla som bor eller arbetar i en storstad är tidshantering. Numera är resorna konstanta och eftersom trafik är en av huvudfaktorerna. När jag tänkte på det gjorde jag en liten applikation som använder integrationen med Google M
Smart väckarklocka: en smart väckarklocka tillverkad med hallon Pi: 10 steg (med bilder)
Smart väckarklocka: en smart väckarklocka tillverkad med hallon Pi: Har du någonsin velat ha en smart klocka? I så fall är detta lösningen för dig! Jag gjorde Smart Alarm Clock, det här är en klocka som du kan ändra alarmtiden enligt webbplatsen. När larmet går går det ett ljud (summer) och 2 lampor lyser