Мазмұны:

Зейнеткерлік сағат / санау / Dn сағаты: 4 қадам (суреттермен)
Зейнеткерлік сағат / санау / Dn сағаты: 4 қадам (суреттермен)

Бейне: Зейнеткерлік сағат / санау / Dn сағаты: 4 қадам (суреттермен)

Бейне: Зейнеткерлік сағат / санау / Dn сағаты: 4 қадам (суреттермен)
Бейне: Жігітім дұрыстап тықпаса не істеу керек? 2024, Шілде
Anonim
Зейнеткерлік сағат / санау / Dn сағаты
Зейнеткерлік сағат / санау / Dn сағаты

Менде тартпада 8x8 жарықдиодты матрицалық дисплейлердің бірнешеуі болды және олармен не істеу керектігін ойладым. Басқа нұсқаулардан шабыттана отырып, мен болашақ күнді/уақытты санау үшін кері/артқа дисплей құру идеясын алдым, егер мақсатты уақыт өтіп кетсе, одан санаңыз. Мен мұны енді сөреде отырған зейнеткерлік сағатым жасадым.

Оны бөтелкеге салу идеясы қаптама туралы ойлану кезінде кездейсоқ болды. Басқалары кемелерді бөтелкеге салады, неге сағат емес?

Мен сонымен қатар сағатты жазғы уақытқа бағындырғым келді және, әрине, желіден ажыратылған кездегі параметрлер мен уақытты есте сақтағым келді. Мен USB арқылы сағатты қосамын, егер сіз басқа нәрсе жасағыңыз келсе немесе кодқа мүмкіндіктерді қосқыңыз келсе, оны қайта бағдарламалауға болады. Код өте қарапайым, сонымен қатар көптеген оңтайландыруды қолдануы мүмкін. Мен мойындауым керек жедел жадты тұтыну туралы жақсы ойламадым. Егер менде уақыт пен мотивация болса, мен оған қайта ораламын.

Жабдықтар

1. Ардуино Нано

2. RTC (мен EEPROM бар жалпы DS3231 қолдандым)

3. 12х 8х8 нүктелік матрицалық модуль. (Менде төрт қатарлы модульдер болды, оларды кезекке қою оңай)

4. LDR дисплей жарықтығын реттейді

5. Резистор 10 кОм

6. Дисплейден шығуды басатын 5x 100 uF конденсаторы

7. 8х8 модульдерінің контрастын жоғарылату үшін мен қараңғы түсті «Терезе пленкасын» қолдандым. Дисплейде светодиодтар ақ нүкте түрінде көрсетіледі, егер жанбаса. Терезе пленкасы оны жылтыр қара түске айналдырады.

1 -қадам: компоненттерді қосыңыз

Компоненттерді қосыңыз
Компоненттерді қосыңыз
Компоненттерді қосыңыз
Компоненттерді қосыңыз

Дисплейді жинау үшін мен төрт квадраттық дисплейдің үшеуін қолдандым. Күнді қиғаш сызықтармен және уақытты қос нүктемен көрсету үшін бізге 8 таңбадан тұратын бос орын қажет. Кәдімгі 5x7 қаріпті қолдана отырып, бізге әр жолға 8x8 алты блок қажет. Мен квадратты бір бөлікті екіге бөліп, оларды тақта схемасында көрсетілгендей екі блоктан алты блокқа бөлдім.

2 -қадам: 3D басып шығарылған бөлшектер

3D басып шығарылған бөлшектер
3D басып шығарылған бөлшектер
3D басып шығарылған бөлшектер
3D басып шығарылған бөлшектер
3D басып шығарылған бөлшектер
3D басып шығарылған бөлшектер

Дисплейдің екі жолын ұстап тұрып, оларды бөтелкеге орналастыру үшін дисплей жақтауына дөңгелек қашықтық сақиналарын басып шығардым. Мен төменде қолданған файлдарды қостым. Оларды қолдаусыз басып шығару үшін олар бөліктерге бөлінеді. Скриншотта дисплей жақтауына жабыстырылған екі сақина көрсетілген. Бөтелкенің мойын қақпағы дисплей режимдері арасында ауысу, ағымдағы уақыт пен мақсатты уақытты орнату үшін үш түймені қамтиды. Мен TPU -да басып шығарылған бөтелкенің мойын қақпағы, USB кабелін коннекторларды үзбей қақпақшаға сырғытып, оны бірнеше сым орамасымен байлауға мүмкіндік берді. Мен ең төменгі бөлігінде кескен 1,5 л шарап бөтелкесін қолданғанымды ұмыттым. Басып шығарылатын барлық бөлшектер 20х20 см (8х8 дюйм) принтер төсегіне орнатылады.

3 -қадам: Кодекс

Arduino коды бірнеше жиі қолданылатын кітапханаларды қолданады.

MD_MAX72xx

SPI

Сым

RTClib

Уақыт белдеуі

TimeLib

INO файлында өзгерту қажет болуы мүмкін бірнеше жолдар бар:

38-жол: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- 8x8 модуліне және оның бағытына байланысты

FC16_HW орнына ол:

- MD_MAX72XX:: PAROLA_HW

- MD_MAX72XX:: GENERIC_HW

- MD_MAX72XX:: ICSTATION_HW

- MD_MAX72XX:: FC16_HW

Код АҚШ -тың Орталық уақытына арналған параметрлерді қолданады және басқа уақыт белдеулерін реттеуді қажет етеді:

53/54 жолы:

TimeChangeRule myDST = {«CDT», Екінші, Күн, Наурыз, 2, -300}; // Жазғы уақыт UTC -5TimeChangeRule mySTD = {«CST», Бірінші, Күн, Қараша, 2, -360}; // Стандартты уақыт UTC -6

Бұл реттеуге оңай. CST/CDT атауы тек сілтеме болуы керек. Мен үш әріптен тұратын аббревиатураны көрсетпеймін, сондықтан маңызды емес. Келесі параметрлер ауысу қай айда болатынын көрсетеді. Реттеу минуттарда, сондықтан +/- 30 минуттық реттеуді қолданатын орындар да жұмыс істейді.

RTC UTC-Time жүйесінде жұмыс істейді, бұл уақыт белдеуінің кітапханасына сәйкес жұмыс істеуге мүмкіндік береді. Неліктен код ескі DS1307 чипіне мен қолданған сағат чипіне сілтеме жасайды деп ойлайсыз, бірақ бұл маңызды емес. Кітапхана екі чиппен де жақсы жұмыс істейді. DS1307 DS3132 -ге қарағанда көбірек кетуге бейім. DS3132 - қолайлы сағат. Интернет уақытын қосқысы келетіндер үшін ESP8266 бұл жұмысты оңай орындайды. Бұл РТЖ -ны ескіруі мүмкін. Егер сіз осы өзгерістерді енгізсеңіз, мақсатты уақытты сақтау үшін Arduino EEPROM пайдаланыңыз, мен мұны істеу үшін RTC EEPROM қолдандым.

4 -қадам: жұмыс және параметрлер

Жұмыс және параметрлер
Жұмыс және параметрлер
Жұмыс және параметрлер
Жұмыс және параметрлер
Жұмыс және параметрлер
Жұмыс және параметрлер

Үш түйме бар

1. Мәзір / параметрлер

2. Жоғары

3. Төмен

Мәзір түймесі дисплейдің үш түрі бойынша велосипедпен жүруге мүмкіндік береді: ағымдағы уақыт, мақсатты уақыт, Delta уақыты. Delta уақыты - ағымдағы уақыт пен мақсатты уақыт арасындағы күндер санын, HH/MM/SS. Ол t- және кері санауды көрсетеді, егер мақсат болашақта болса немесе t+ және егер мақсат өткен болса.

Ағымдағы немесе мақсатты уақытты реттеу үшін ағымдағы уақытты немесе мақсатты уақытты көрсетуді таңдаңыз. Уақытты өзгерту үшін мәзір түймесін 2 секунд ұстап тұрыңыз және босатыңыз, ол сізді орнату режиміне әкеледі. Көршілес «/» немесе «:» «» санына айналады, ол сіз реттейтін цифрды көрсетеді. Жоғары/төмен түймелерін жеке сағ/а/сс және мм/кк/жж реттеу үшін пайдаланыңыз. Мен mm/dd/yy және dd/mm/yy арасында ауысу үшін параметрді қосқан жоқпын, бұл кодты өзгертуді қажет етеді, немесе біреу бұл мүмкіндікті қосуға дайын болуы мүмкін.

Егер сіз минутты 59 -дан жоғары немесе 00 -ден төмен қойсаңыз, сағат дисплейі де реттелетінін байқайсыз. дәл осы цифр үшін максимум 0 -ден төмен немесе одан жоғары өтсе, келесі жоғары мәнді өзгертетін секундтарға, сағаттарға және күндерге де қатысты. Мен мұны жекелеген айлардың әр түрлі шектеулерін бағдарламалауды болдырмау үшін жасадым, ал егер ақпанға кібісе жылда 29 күн қажет болса. Уақытты реттеу іс жүзінде дәуірде, 1-1970 қаңтардан бастап секундтарда жасалады.

Мен санауды көрсету үшін қарапайым бейнені қостым. Мен оларды дөңгелекті дисплейге айналдырғым келді. Егер сіз өзгеріс ұзақтығын реттеуді қаласаңыз, INO 69 -жолы сізге өзгертуді жылдамдату немесе баяулатудың бірнеше нұсқасын береді. 120 мс цифрларды баяу айналдырады, себебі бұл үздіксіз жұмыс істейтін дөңгелек.

Сізге бұл нұсқаулық ұнады деп сенемін.

Патрик Гешвинднер

Ұсынылған: