Мазмұны:
- 1 -қадам: Қара жәшіктің диаграммасы
- 2 -қадам: баяу сағат
- 3 -қадам: Есептегіш
- 4 -қадам: Қарсы сағат
- 5 -қадам: Дабыл
- 6 -қадам: әмбебап жеті сегментті дисплей драйвері
- 7 -қадам: Файл сілтемесі
- 8 -қадам: Arduino
- 9 -қадам: Кабельді бағыттау
Бейне: Basys 3 Оятқыш: 9 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Біздің жоба Basys 3 FPGA тақтасын, Arduino және динамик тақтасын пайдаланып, оятар жасайды. Пайдаланушы ағымдағы уақытты Basys 3 -тегі 11 кіріс қосқышының көмегімен тақтаға енгізе алады және тақтадағы ортаңғы түймені қолданып мәнді құлыптай алады. Пайдаланушы оятқыш уақытын сол қосқыштардың көмегімен енгізе алады, бірақ дабыл уақытын құлыптау үшін сол жақ батырманы басады. Егер уақыт қате енгізілсе, қалпына келтіру түймесін (жоғарғы түйме) басуға болады және ағымдағы сағат пен дабыл уақыты 00:00 орнатылады. Содан кейін пайдаланушы сағатты ең сол жақтағы қосқыш арқылы іске қосады және келесі қосқыш арқылы оятқышты қосады. Оятқыш қосылған кезде, оятқыш сағаты мен дабыл уақыты сәйкес келген кезде дыбыс шығарады.
1 -қадам: Қара жәшіктің диаграммасы
Біз өз жобамызды бағдарламамызға керекті кірістер мен шығыстарды бейнелеу үшін қара жәшік диаграммасын салудан бастадық. 5-разрядты енгізу (Hour_in) сияқты біздің бағдарламаның келесі кірістері 24-сағаттық уақытты көрсету үшін инициализацияланды, 60-минутқа дейін көрсету үшін 6-биттік (Min_in) кіріс, пайдаланушыға рұқсат беру үшін қалпына келтіру (Rst_b) түймесі. уақытты енгізуді өзгертіңіз, дабыл кірісін жүктейтін 1 биттік кіріс (alm_en), ояту сағаты қосылған кезде өшіру үшін 1 разрядты кіріс (alarm_sw), есептегішті басқаратын 1 биттік кіріс (e_sec) секунд жұмыс істейді, ағымдағы уақытты орнататын 1-биттік кіріс (Led_btn) және соңында Basys 3 тақтасында көрсетілетін уақытты басқаратын 1-биттік кіріс (clk). Шығу - бұл сигналды Arduino -ға жіберетін (alm_on), Basys 3 -те кіріс уақытын көрсететін sseg шығысы және жеті сегменттің дисплейінде кірістердің қай жерде көрсетілетінін басқаратын анодтық шығыс.
2 -қадам: баяу сағат
Баяу сағат немесе clock_div2 файлы жиілігі 2 гц болатын сағатты жасайды. Егер біз бұл сағатты секунд есептегішіне берсек, секунд мәні секунд сайын бір есе артады. Баяу сағат секундына бір рет төменнен жоғарыға ауысатын сенімді сағат сигналын жасау үшін қолданылады.
3 -қадам: Есептегіш
Компоненттерді санауыш (минут пен секунд):
Минуттар мен секундтардың негізгі функциясы - олар есептегіштер. Минут санағышы кірісті (Min_in) сигнал болып табылатын кірісті (Vin) қабылдайды, содан кейін қажетті кіріс енгізілгенге дейін есептеледі. Секунд тек коммутатордың кірісін (e_Sec) қабылдайды, себебі оны жеті сегментте көрсету мүмкін емес және қосқыш жоғары '1' болған кезде фонда есептеледі. Олар екеуі де [Qout] мәнін шығарады, содан кейін ол SSEG -ге жіберетін (деректерде) сақталады, ол байланыстырушы файлда жасалады. Сондай -ақ, минуттар мен секундтар 59 мәніне жеткенде, ол бастапқы қалпына келеді, ал олардың шығысы минут/сағатты ұлғайту үшін «1» болады. Ол сонымен қатар олардың кірістерін қалпына келтірумен (rst_b) салыстыруға болады.
4 -қадам: Қарсы сағат
Компоненттерге қарсы сағат
Дәл осылай минуттар мен секундтардың құрамдас есептегішіне сағат компоненті файлдарды енгізуді байланыстырудан (Hour_in) сигнал болып табылатын (Vin) сияқты кірістерді қабылдайды және дәл осылай минуттар мен секундтармен байланысты. Сағаттың мәні 24 00 -ге жеткенде, ол 00 00 -ге қалпына келеді.
5 -қадам: Дабыл
Дабыл.vhd файлы сандық деректерді сақтай алатын сақтау құрылғылары болып табылатын d-flip-flops-дан тұрады. Дабыл файлы дабыл іске қосылатын уақытты сақтау үшін қолданылады. Сағат (5 разрядты енгізу) мен минут (6 разрядты енгізу) деректерін сақтау үшін біз дабыл файлында 11 d-flip-flop-ты өшіруіміз керек. Ол үшін алдымен d-flip-flops жұмысын реттейтін логиканы импорттап, компоненттерді картаға түсіру керек. 11 флип-флоптардың әрқайсысы кірістерден бір бит деректерді сақтайды және деректерді дабыл файлының шығысына салыстыруға мүмкіндік береді. D-flip-flops деректерді сақтайтындықтан, біз кіріс қосқыштары өзгерсе де, деректерді кейінірек қолдана аламыз.
6 -қадам: әмбебап жеті сегментті дисплей драйвері
Әмбебап жеті сегментті дисплей драйвері кірісті сағаттан және сағаттан алады және оларды тақтадағы жеті сегментті дисплейге шығара алады. Жүргізуші тақтаға бір уақытта екі бөлек есепті шығара алады. Біз бұл функцияны сағатты және минутты бөлек көрсету үшін қолдандық. Жеті сегментті дисплей бір уақытта тек бір нөмірді белсендіре алады, сондықтан sseg файлы уақыттың барлық сандарын бір мезгілде көрсету үшін мультиплекстеуді қолдануы керек. Тақтаның сағаттық сигналы мультиплекстеудің дұрыс уақытын сақтау үшін sseg -ге беріледі. Екілік -екілік кодталған ондық кодтаушы файлға кіруді жеті сегментті дисплейге шығаруға болатын пішінге түрлендіру үшін қажет. Sseg файлының соңғы шығысы жеті сегментті дисплеймен салыстырылады және дисплейде дұрыс уақыт көрсетіледі.
7 -қадам: Файл сілтемесі
Сілтеме файлы бағдарламаның барлық басқа аспектілерін байланыстырады және сигналдарды олардың дұрыс орналасуына салыстырады. Әр компонент файлға енгізіледі және жасалады. Сигналдар бір компоненттен екіншісіне деректерді беру үшін қолданылады. Портты салыстыру жоғарыда көрсетілген қара жәшік диаграммасына сәйкес болады. Сілтеме файлында дабыл қосылған кезде басқарылатын логика да бар. Жобаның көп бөлігі осы сәтте аяқталады. Қалған жұмыс әр сигналды тиісті орынға бағыттайды.
8 -қадам: Arduino
Arduino динамикті белсендіру, сонымен қатар динамик арқылы ойналатын нотаның үні мен ұзақтығын бақылау үшін қолданылады. Arduino Basys 3 тақтасынан сандық сигналды оқиды. Бұл сигнал жоғары болған кезде, arduino сигналдың дыбысы мен ұзақтығын басқаратын PWM сигналын шығарады. Arduino -дан шығатын сигнал динамиктің дыбыс деңгейін жоғарылататын динамик тақтасының кіріс сигналына қосылады. Ардуино бұл процесті секундына бірнеше рет қайталайды.
9 -қадам: Кабельді бағыттау
Arduino және Basys 3 тақтасы тақталар арасындағы сигналдарды беру үшін физикалық түрде қосылған болуы керек. Сымға қосылатын бірінші кабель Basys 3 JA PMOD жерге тұйықтауышынан arduino жерге тұйықталуына дейін болады. Содан кейін Basys 3 JA PMOD 1 сымынан сымды arduino цифрлық пиніне 7 қосыңыз. Әрі қарай, arduino -дан динамик драйверінің жерге қосатын екі түйреуішті қосыңыз. Содан кейін arduino 3,3 В шығысын динамик драйверінің Vcc істігіне қосыңыз. Әрі қарай, arduino 9 цифрлық түйреуішін динамик драйверінің кіріс істігіне қосыңыз.
Ұсынылған:
Шулы оятқыш: 3 қадам
Шулы оятқыш: Мен Тайваньда 13 жасар студентпін, егер мен бұл жұмысты қалай жақсартуға болатынын айтсаңыз, маған Arduino -мен бірінші рет нәрселер жасаймын. ) Бұл сағат сіз ұйықтап жатқанда сізді оятуы мүмкін, бірақ мен
Groundhog Day Оятқыш: 12 қадам (суреттермен)
Groundhog Day Alarm Clock: Groundhog Day Alarm Clock Panasonic RC-6025 флип-сағатынан тұрады, ол дабыл сөнген кезде Groundhog Day фильмінің аудиосын ойнату үшін өзгертілген. Бұл құрылғыны жасаған себебім-Groundhog Day (екі күні де) және фильм) спецификалық
Ақылды оятқыш - Intel Edison - Iot RoadShow - Сан -Паулу: 4 қадам
Ақылды дабыл сағаты - Intel Эдисон - Iot RoadShow - Сан -Паулу: Үлкен қалада тұратын немесе жұмыс істейтін кез келген адамның жақсы қасиеттерінің бірі - уақытты басқару. Қазіргі уақытта сапарлар тұрақты және трафик негізгі факторлардың бірі болғандықтан, мен ойлана отырып, Google M интеграциясын қолданатын шағын қосымша жасадым
Температура сенсоры бар Arduino оятқыш сағаты: 5 қадам
Температура сенсоры бар Arduino оятқыш сағаты: Arduino - өте қарапайым және арзан микроконтроллер. және оны басқару оңай өзгереді. Сонымен, сіз бұл жобадан не күтесіз … біз бейнебаянды көргіңіз келсе, сіздің температураңызды ояту үшін жеткілікті жоғары RTC уақыт сигналының параметрлерін қолданамыз
Оятқыш: Арнайы қоңырау үні, өте тиімді: 3 қадам
Оятқыш: Арнайы қоңырау үні, Өте тиімді: Баршаңызға сәлем! Мен бірінші рет инструктивті материал жариялап отырмын, ағылшын тілінің төмендігі үшін кешірім сұраймын :) Міне, таңертең ұйқыға кететіндерге көмектесетін ояну. Қоңырау үнімен оятудың орнына, принцип өте қарапайым