Мазмуну:
- Жабдуулар
- 1 -кадам: Компоненттерди туташтыруу
- 2 -кадам: 3D басылган бөлүктөр
- 3 -кадам: Кодекс
- 4 -кадам: Иштөө жана Орнотуулар
Video: Пенсиялык саат / Эсептөө / Dn Сааты: 4 кадам (Сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Менде тартмада 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 басылган бөлүктөр
Дисплейдин эки катарын кармап, бөтөлкөгө жайгаштыруу үчүн дисплей алкагына тегерек аралык шакектерди басып чыгардым. Мен төмөндө колдонгон файлдарды коштум. Буларды колдоосуз басып чыгаруу үчүн, алар бөлүктөргө бөлүнөт. Скриншот дисплей алкагына чапталган эки шакекти көрсөтүп турат. Бөтөлкөнүн моюн капкагы дисплей режимдери менен учурдагы убакытты жана максаттуу убакытты алмаштыруу үчүн үч баскычты камтыйт. Мен бөтөлкөнүн моюн капкагын 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 мс цифралар жетишерлик жай кыймылдайт, анткени ал тынымсыз иштеген дөңгөлөк болмок.
Бул көрсөтмө сизге жакты деп ишенем.
Патрик Гешвинднер
Сунушталууда:
Акылдуу ойготкуч саат: Raspberry Pi менен жасалган акылдуу ойготкуч саат: 10 кадам (сүрөттөр менен)
Smart Alarm Clock: Raspberry Pi менен жасалган акылдуу ойготкуч: Сиз качандыр бир убакта акылдуу саатты кааладыңыз беле? Андай болсо, бул сиз үчүн чечим! Мен Smart Alarm Clock жасадым, бул веб -сайтка ылайык ойготкуч убактысын өзгөртө турган саат. Ойготкуч өчкөндө, үн чыгат (зумбул) жана 2 жарык күйөт
Arduino IDEди колдонуу менен M5stick C менен саат жасоо - M5stack M5stick-C менен RTC реалдуу убакыт сааты: 4 кадам
Arduino IDEди колдонуу менен M5stick C менен саат жасоо | R5 Real Time Clock With M5stack M5stick-C: Салам балдар бул көрсөтмөлөрдө биз m5stackтин m5stick-M5stack тактасы менен саат жасоону үйрөнөбүз, Arduino IDE.So m5stick күндү, убакытты көрсөтөт. дисплейде айдын жумасы
C51 4 бит электрондук сааты - жыгач саат: 15 кадам (сүрөттөр менен)
C51 4 Бит Электрондук Сааты - Жыгач Сааты: Ушул дем алыш күндөрү бош убактым бар болчу, ошондуктан мен AU $ 2.40 4 -бит DIY электрондук санариптик саатын чогулттум, мен бир аз мурун AliExpressтен сатып алдым
Дүйнө жүзү боюнча саат сааты: 5 кадам (сүрөттөр менен)
Дүйнөлүк убакыт сааты боюнча: Дүйнө жүзү чуркап жүрөбү же түнкү саат чалууга чейин саат канча экенин билүүгө кызыкдарбы, 5 зоналуу дүйнөлүк саат эсепке туура келет. Мен акыркы жөнөтмөмдө кошумча TM1637 7 орундуу дисплейлерге ээ болгондуктан, мен саатты чогултууну чечтим
7 сегменттин дисплейи менен 8051 микроконтроллерин колдонуу менен 0дон 99га чейин кантип эсептөө керек: 5 кадам (сүрөттөр менен)
7 сегменттин дисплейи менен 8051 микроконтроллерин колдонуу менен 0дон 99га чейин кантип эсептөө керек: Саламатсыздарбы, бул окуу куралында биз 0дөн 99га чейин эки 7 сегменттүү дисплейди кантип колдонууну айтып беребиз