Мазмуну:

Пенсиялык саат / Эсептөө / Dn Сааты: 4 кадам (Сүрөттөр менен)
Пенсиялык саат / Эсептөө / Dn Сааты: 4 кадам (Сүрөттөр менен)

Video: Пенсиялык саат / Эсептөө / Dn Сааты: 4 кадам (Сүрөттөр менен)

Video: Пенсиялык саат / Эсептөө / Dn Сааты: 4 кадам (Сүрөттөр менен)
Video: Агрогороскоп выращивания сладкого перца в 2022 году 2024, Ноябрь
Anonim
Пенсиялык саат / Эсептөө / Dn Сааты
Пенсиялык саат / Эсептөө / Dn Сааты

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

Аны бөтөлкөгө салуу идеясы корпус жөнүндө ойлонуп жатканда көбүрөөк кырсык болгон. Башкалар кемелерди бөтөлкөгө салышат, эмне үчүн саат эмес?

Мен ошондой эле саатты жазгы убакытка баш ийдиргим келди жана, албетте, орнотууларды жана розеткадан чыгарылган убакытты эстегим келди. Мен USB аркылуу саатты иштетип жатам, эгерде сиз башка нерсени кылгыңыз келсе же жөн эле кодго өзгөчөлүктөрдү кошкуңуз келсе, аны кайра программалоого болот. Код абдан жөнөкөй жана көптөгөн оптималдаштырууну колдонушу мүмкүн. Мен моюнга алышым керек RAM керектөө жөнүндө жакшы кам көргөн жокмун. Эгерде менде убакыт жана мотивация болсо, мен ага кайра келем.

Жабдуулар

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

2. RTC (мен EEPROMге ээ болгон жалпы DS3231ди колдондум)

3. 12x 8x8 чекит матрицасы модулу. (Менде тизилүү оңой болгон төрт модулдар бар болчу)

4. LDR дисплей жарыктыгын тууралоо үчүн

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

6. Конденсатор 5x 100 UF дисплейден чукулдарды басат

7. 8x8 модулдарынын контрастын жогорулатуу үчүн мен караңгы түстүү "Терезе пленкасын" колдондум. Дисплей жарык кылбаса, LEDди ак чекит катары көрсөтөт. Терезе пленкасы аны жалтыраган кара өңгө айлантат.

1 -кадам: Компоненттерди туташтыруу

Компоненттерди туташтыруу
Компоненттерди туташтыруу
Компоненттерди туташтыруу
Компоненттерди туташтыруу

Мен дисплейди чогултуу үчүн төрт дисплейдин үчөөнү колдондум. Күндү кыйшык сызык менен көрсөтүү жана эки чекит менен убакытты көрсөтүү үчүн бизге 8 белгиден турган боштук керек. Кадимки 5х7 шрифтин колдонуп, биз бир катарга 8х8 алты блок керек. Мен квадраттык блоктордун бирин экиге бөлүп, экөөнү нан блоктун схемасында көрсөтүлгөндөй алты блокко бөлдүм.

2 -кадам: 3D басылган бөлүктөр

3D басылган бөлүктөрү
3D басылган бөлүктөрү
3D басылган бөлүктөрү
3D басылган бөлүктөрү
3D басылган бөлүктөрү
3D басылган бөлүктөрү

Дисплейдин эки катарын кармап, бөтөлкөгө жайгаштыруу үчүн дисплей алкагына тегерек аралык шакектерди басып чыгардым. Мен төмөндө колдонгон файлдарды коштум. Буларды колдоосуз басып чыгаруу үчүн, алар бөлүктөргө бөлүнөт. Скриншот дисплей алкагына чапталган эки шакекти көрсөтүп турат. Бөтөлкөнүн моюн капкагы дисплей режимдери менен учурдагы убакытты жана максаттуу убакытты алмаштыруу үчүн үч баскычты камтыйт. Мен бөтөлкөнүн моюн капкагын USB кабелин кошкучтарды үзбөй капкакка жылдырып, бир нече оролгон зым менен байлап коюуга мүмкүндүк бердим. Мен эң түбүндө кескен 1,5 л шарап бөтөлкөсүн колдонгонумду унутуп калдым. Басылып чыгуучу бардык бөлүктөр 20x20 см (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. Up

3. Down

Меню баскычы үч дисплейде велосипед менен жүрүүгө мүмкүндүк берет: Учурдагы убакыт, Максаттуу убакыт, Дельта убактысы. Delta убактысы күндөрдүн санын көрсөтүп турат, HH/MM/SS учурдагы убакыт менен максаттуу убакыттын ортосунда. Бул t- жана кайра саноону көрсөтөт, эгерде максат келечекте болсо же t+ жана бута мурун болсо.

Учурдагы же максаттуу убакытты тууралоо үчүн, учурдагы убакытты же максаттуу убакыт дисплейин тандаңыз. Убакытты өзгөртүү үчүн меню баскычын 2 секунда кармап туруңуз жана бул сизди жөндөө режимине алып келет. Коңшу "/" же ":" кайсы санды тууралап жатканыңызды көрсөтүү үчүн "" ге айланат. Жеке саат/мм/сс жана мм/кк/жж жөнгө салуу үчүн өйдө/ылдый баскычтарын колдонуңуз. Мен mm/dd/yy жана dd/mm/yy ортосунда которуштуруу үчүн жөндөөнү кошкон жокмун, бул кодду өзгөртүшү керек же кимдир бирөө бул мүмкүнчүлүктү кошууга даяр болушу мүмкүн.

Сиз мүнөттү 59дан жогору же 00дөн төмөн бассаңыз, саат дисплейи да жөнгө салынарын байкайсыз. бул сан үчүн, максимум 0дөн төмөн же андан жогору өтсө, кийинки жогорку маанини өзгөрткөн секундалар, сааттар жана күндөр үчүн да ушуну айтууга болот. Мен муну айрым айлардын ар кандай чектерин программалоодон качуу үчүн кылдым жана эгерде февраль секирик жылда 29 күнгө муктаж болсо. Убакытты тууралоо, чынында, 1-январдан 1970-жылга чейинки мезгилде, секундада жүргүзүлөт.

Мен саноону көрсөтүү үчүн жөнөкөй видеону коштум. Мен муну бурулуш дөңгөлөк дисплейине окшоштургум келди. Эгер сиз өзгөрүүнүн узактыгын тууралоону кааласаңыз, INOдогу 69 -сап сизге өзгөрүүнү тездетүү же жайлатуу үчүн бир нече варианттарды берет. 120 мс цифралар жетишерлик жай кыймылдайт, анткени ал тынымсыз иштеген дөңгөлөк болмок.

Бул көрсөтмө сизге жакты деп ишенем.

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

Сунушталууда: