Съдържание:

Будилник Basys 3: 9 стъпки
Будилник Basys 3: 9 стъпки

Видео: Будилник Basys 3: 9 стъпки

Видео: Будилник Basys 3: 9 стъпки
Видео: Часы G Shock до 100 долларов-15 лучших часов Casio G Shock до 100 дол... 2024, Октомври
Anonim
Будилник Basys 3
Будилник Basys 3

Нашият проект създава будилник с помощта на Basys 3 FPGA платка, Arduino и платка с драйвер за високоговорители. Потребителят може да въведе текущото време на дъската с помощта на 11 входни превключвателя на Basys 3 и да заключи стойността с помощта на средния бутон на дъската. След това потребителят може да въведе времето за аларма, използвайки същите ключове, но натиснете левия бутон, за да заключи времето за аларма. Ако е въведен грешен час, бутонът за нулиране (горният бутон) може да бъде натиснат и текущият часовник и аларменото време ще бъдат настроени на 00:00. След това потребителят може да стартира часовника с помощта на крайния ляв превключвател и да включи алармата, като използва следващия превключвател. Когато алармата е включена, будилникът ще издаде звук, когато времето на часовника и зададеното време на алармата съвпадат.

Стъпка 1: Диаграма на черна кутия

Диаграма на черна кутия
Диаграма на черна кутия
Диаграма на черна кутия
Диаграма на черна кутия

Започнахме нашия проект, като начертахме диаграма в черна кутия, за да визуализираме входовете и изходите, необходими в нашата програма. Следните входове за нашата програма, като 5-битов вход (Hour_in), бяха инициализирани, за да определят 24-часовото време, 6-битов (Min_in) вход за показване до 60 минути, бутон за нулиране (Rst_b), за да позволи на потребителя да промяна на техния вход за време, 1-битов вход (alm_en), който зарежда алармения вход, 1-битов вход (alarm_sw) за изключване на будилника, когато е активиран, 1-битов вход (e_sec), който контролира кога броячът секунди, 1-битов вход (Led_btn), който задава текущото време, и накрая 1-битов вход (clk), който контролира времето, показвано от дъската Basys 3. Изходите са (alm_on), който изпраща сигнала към Arduino, изходът sseg, който показва входното време на Basys 3, и анодният изход, който контролира къде се показват входовете на дисплея на седемте сегмента.

Стъпка 2: Бавен часовник

Бавен часовник
Бавен часовник

Бавният часовник или файлът clock_div2 създава часовник, чиято честота е 2 hz. Ако подадем този часовник към брояча на секундите, стойността на секундите ще се увеличава с една всяка секунда. Бавният часовник се използва за създаване на надежден часовник сигнал, който се променя от ниско на високо веднъж в секунда.

Стъпка 3: Брояч

Брояч
Брояч
Брояч
Брояч

Брояч на компоненти (минути и секунди):

Основната функция на минути и секунди е, че те са броячи. Броячът на минути приема вход (Vin), който е сигнал от входове (Min_in), и след това брои, докато достигне желания въведен вход. Секундите приемат само входа на превключвателя (e_Sec), тъй като не може да бъде показан в седемте сегмента и се брои във фонов режим, след като превключвателят е на високо „1“. И двамата извеждат стойност на (Qout) и след това се съхраняват в (данни), които го изпращат до SSEG, което се прави във файла за свързване. Също така, когато минутите и секундите достигнат стойностите на 59, той се нулира, а изходът от тях е „1“, за да се увеличи минутите/час. Той също така може да бъде картографиран с нулиране (rst_b) на техните входове.

Стъпка 4: Counter Hour

Counter Hour
Counter Hour
Counter Hour
Counter Hour

Час за брояч на компоненти

По подобен начин, към брояча на компонентите на минутите и секундите, часовият компонент приема входове s, като (Vin), който е сигнал от свързване на файловия вход (Hour_in), и има изходи, които са свързани по същия начин минутите и секундите. Когато стойността на броя на часа достигне 24 00, тя се нулира до 00 00.

Стъпка 5: Аларма

Аларма
Аларма
Аларма
Аларма
Аларма
Аларма
Аларма
Аларма

. Vhd файлът на алармата се състои от d-джапанки, които са устройства за съхранение, които могат да съхраняват цифрови данни. Аларменият файл се използва за съхраняване на часа, в който алармата ще бъде активирана. За да съхраняваме данните за часове (5-битов вход) и минути (6-битов вход), трябва да отпечатаме 11 d-джапанки в нашия алармен файл. За да направим това, първо трябва да импортираме логиката, управляваща работата на d-джапанките и да картографираме компонентите. Всеки от 11-те джапанки ще съхранява по един бит данни от входовете и ще позволява да се картографират данните към изходите на алармения файл. Тъй като d-джапанките съхраняват данни, ние можем да ги използваме в по-късен момент, дори ако превключвателите за вход са променени.

Стъпка 6: Универсален седемсегментен дисплей драйвер

Универсален драйвер за седем сегмента на дисплея
Универсален драйвер за седем сегмента на дисплея
Универсален седемсегментен драйвер на дисплея
Универсален седемсегментен драйвер на дисплея
Универсален драйвер за седем сегмента на дисплея
Универсален драйвер за седем сегмента на дисплея

Универсалният драйвер за седем сегмента на дисплея получава входовете от часовника и часовника и може да ги извежда на дисплея със седем сегмента на платката. Драйверът може да изведе два отделни броя на дъската едновременно. Използвахме тази функция, за да показваме отделно часа и минутата. Седемсегментният дисплей може да активира само едно число наведнъж, затова sseg файлът трябва да използва мултиплексиране, за да покаже всички номера на времето едновременно. Тактовият сигнал на дъските се подава в sseg, за да се запази правилното време за мултиплексиране. Двоичен в двоичен кодиран десетичен енкодер е необходим за преобразуване на входовете във файла във форма, която може да бъде изведена на дисплея със седем сегмента. Крайният изход на файла sseg се съпоставя със седемсегментния дисплей и правилното време се показва на дисплея.

Стъпка 7: Файл за връзка

Файл за връзка
Файл за връзка
Файл за връзка
Файл за връзка
Файл за връзка
Файл за връзка

Файлът с връзки свързва всички други аспекти на програмата и картографира сигналите до правилното им местоположение. Всеки компонент се въвежда и създава във файла. Сигналите се използват за прехвърляне на данни от един компонент към друг. Съпоставянето на портовете ще следва диаграмата на черната кутия, посочена по -горе. Файлът с връзки също съдържа логиката, която управлява, когато алармата е активирана. По -голямата част от проекта вече ще бъде завършен до този момент. Останалата работа е маршрутизиране на всеки сигнал до подходящото място.

Стъпка 8: Arduino

Arduino
Arduino
Arduino
Arduino

Arduino се използва за активиране на високоговорителя, както и за контрол на тона и продължителността на нотата, свирена през високоговорителя. Arduino чете цифров сигнал от платката Basys 3. Когато този сигнал е висок, arduino ще издава PWM сигнал, контролиращ тона и продължителността на алармата. Изходният сигнал от arduino се свързва с входящия сигнал на платката на драйвера на високоговорителите, което увеличава силата на звука на високоговорителя. Arduino прави този процес много бързо, повтаряйки се много пъти в секунда.

Стъпка 9: Прокарване на кабели

Кабелна маршрутизация
Кабелна маршрутизация

Платката arduino и Basys 3 трябва да бъдат физически свързани, за да предават сигнали между платките. Първият кабел към проводника ще бъде от заземяващия щифт на JA PMOD на Basys 3 до заземяващия щифт на arduino. След това свържете проводник от пин 1 на JA PMOD на Basys 3 към цифров пин 7 на arduino. След това свържете два заземителни щифта от arduino към заземяващите щифтове на драйвера на високоговорителя. След това свържете 3.3 V изхода на arduino към Vcc щифта на драйвера на високоговорителя. След това свържете цифровия щифт 9 на arduino към входа на драйвера на високоговорителя.

Препоръчано: