Мазмуну:

Wort-Uhr: 5 кадам
Wort-Uhr: 5 кадам

Video: Wort-Uhr: 5 кадам

Video: Wort-Uhr: 5 кадам
Video: Загадка Титаника : Как они могли не заметить айсберг?! Самая подробная история! 2024, Ноябрь
Anonim
Wort-Uhr
Wort-Uhr

Салам бирге!

Бул менин биринчи үйрөткүчүм болот жана эгерде сизде аны жакшыртуу же түшүнүүнү жеңилдетүү боюнча кандайдыр бир ойлоруңуз болсо, сураныч, мени менен байланышуудан тартынбаңыз!

Башында, мындай "саат" менин оюм эмес! Мен Интернетте көп нерселерди көрдүм жана аларды бир нече долларга заказ кылса болот, интернет дүкөндөрүндө. Бирок мен аны сатып алгым келген жок, үйрөнүп, анын кандай иштеп жатканын түшүнүү үчүн өзүмдүкүн жасагым келди.

"Германиялык эмес" мүчөлөргө бир сөз … Бул жөн эле "немис чөптөрү" болгондугу үчүн кечирим сурайм. Бул англисче же башка тилге оңой эле которулушу мүмкүн, бирок мен немис болгондуктан, мен аны өз тилимде жасадым. Эгерде сизге тилиңизге колдоо керек болсо, мага кайрылыңыз, мен сизге жардам берүүгө аракет кылам.

Андыктан баштайлы…

1 -кадам: Схема

Схемалык
Схемалык

Схема түз алдыга жана эгерде сүрөттү окуу начар болсо, анда PDF файлы да бар.

Келгиле, төмөнкү сол бурчтан баштайлы. PIC, сменалык реестрлер (74HC164) жана реалдуу убакыт чип DS3231 үчүн туруктуу 5V чыгарууну түзүү үчүн LM7805ти колдонгон жөнөкөй электр энергиясы бар. Бардык светодиоддор да ушул бөлүктөн берилет. Оң жагындагы D22 жөн гана электр менен камсыздоону көрсөтүү үчүн жана каалабаса оңой эле бөлүнүп кетиши мүмкүн.

Сиз 40Втан азыраак саат үчүн каалаган DC энергия булагын колдоно аласыз, бирок анда C7 үчүн ылайыктуу маанини тандашыңыз керек. Ал кирүү чыңалуусунун жок дегенде эки эсе чыңалуусуна ээ болушу керек жана сиз LM7805те жылуулукту жаратып жатканыңызды унутпаңыз, андыктан сиз кирүү чыңалуусун мүмкүн болушунча төмөн сактоого аракет кылышыңыз керек, анткени баары энергияны текке кетирүү. Эң жакшы шайкештик 9В менен 12В DC ортосундагы нерсе.

Электр энергияңыздын полярдуулугу жөнүндө убара болбоңуз … P-каналы MOSFET (Q1) жалган полярдуулуктан коргоочу катары иштейт жана саат иштебейт жана эч кандай зыян тартпайт. Сиз муну "күч" LED D22де орнотулган болсо текшере аласыз.

Схеманын оң жагында катарлаш параллель чыккан сменалык регистрлер бар. Мен аларды колдонууну чечтим, анткени I/O-Ports көп болгон чоң PICти колдонууну каалаган жокмун. Мен кичирээкти колдонгум келди, менде дагы эле 16F1829 бар болчу, андыктан тандоо ачык болчу. Маалыматтар (IN_1, IN_2 жана IN_3) PIC (төмөндөгү коддор бөлүмүн караңыз) жана REGISTER_CLK тарабынан да берилет. Менин кодумдун жана ПКБнын жайгашуусун жөнөкөйлөштүрүү үчүн, мен 74HC164төн экөөнү саат үчүн, ал эми акыркысын "логика" үчүн колдондум.

Жогорку сол бурчта PIC жана бардык керектүү бөлүктөр бар. Мен ички саатты колдондум, андыктан осциллятордун кереги жок. SCL, SDA жана MCLR үчүн үч гана резистор. Мен 32 кГцти "так секунддардын" көрсөткүчү катары колдонгонум үчүн, PIC үчүн туруктуу жана так жыштыктын кереги жок.

Ортодо тышкы бөлүктөрү боюнча минималдуу DS3231 бар. Чындыгында мен I²C жана 32 кГцтен ашкан байланыш үчүн SDA жана SCL кириштерин PIC16F1829дун Timer1 үчүн тышкы сааттык маалымдама катары колдондум. Бул жыйынтык үчүн маалымат барагында бул тышкы тартуучу резистор экени айтылат. Башка долбоорлорду мен бул долбоордо колдонгон жокмун жана аларды туташпай калтырдым.

Ошондой эле ортосунда, Светодиоддор … Схемада окуганыңыздай, мен көк светодиоддорду (тунук корпусу барлар) жана 1к Ом резистордук маанини колдондум. Эгерде сиз бул долбоорду өзүңүз жасоону пландап жатсаңыз, анда сиз тандаган светодиоддордун түсүнө жана түрүнө жараша бул резисторлордун маанилерин тандашыңыз керек. Ошондой эле сааттын кайда орнотулушун каалаарыңызды унутпаңыз. Менин бирөө менин уктоочу бөлмөмдө турат, ошондуктан мен светодиоддун өтө жарык болушун каалаган жокмун жана резисторлор үчүн чоңураак баалуулукту тандадым. ПХБга орнотуудан мурун, LED жана резистордун мааниси бар нан тактасында бир аз аракет кылып көрүңүз.

2 -кадам: Макет

Макет
Макет
Макет
Макет
Макет
Макет

Схеманы бүтүргөндөн кийин, ПХБны багыттоо убактысы келди. Бул үчүн мен KiCAD колдондум (схемада дагы). Айтууга көп нерсе жок, жөн гана линияларды маршруттаңыз.

Мен сааттын корпусун өзүм басып чыгарганым үчүн, үстүңкү катмардагы LEDлердин кайда жайгашканы абдан маанилүү болчу. Мен LED жана резисторлорду үстүңкү катмарга гана койгом, анткени мен ПХБны жарым-жартылай орнотууга буйрук бергем (бардык SMD бөлүктөрү) жана мен тандап алган компания тетиктерди бир тарапка гана коюп, эки тараптуу эмес.

Сиз KiCADдан жасаган эки өлчөмдүү эки сүрөттө жайгаштырууну көрө аласыз.

Эгер сизди кызыктырса… KiCAD ПХБсын Eagleге экспорттоого болот, анан корпусту куруу оңой, анткени сизде ПХБдан шилтеме бар.

3-кадам: "Логика" "Wort-Uhr"

Бул долбоордун эң чоң бөлүгү PICтин коду болду …

Адегенде немис тилинде сүйлөө убактысынын "логикасын" таап, аны кодго которуу.

Тилекке каршы, Excel файлын түз жүктөө мүмкүн болгон жок, бирок PDF экспорту сиз үчүн жетиштүү окулат деп үмүттөнөм. Болбосо, мага кайрылыңыз, мен сизге түпнуска Excel файлын жөнөтөм. PDFтен менин саатымдын логикасын кантип орнотконумду көрө аласыз. Сиз ар кандай убакытты кантип басканымды жана жазуу кандай экенин көрө аласыз. Коддун ичиндеги эсептөө (негизинен if-else билдирүүлөрү) столдун оң жагындагы маалыматтан алынышы мүмкүн. Бир бөлүгү мүнөткө жана бир бөлүгү сааттарга.

Көрүнүп тургандай, бул эч кандай сыйкыр эмес жана аны Cде оңой коддоого болот. Логиканын ичиндеги "татаал" чекит - бул файлды көрүп тургандай, саатты кантип иштетүү керек, аны сааттын башында гана көрсөтүүгө болот.. Немец тилинде (балким, бул Бавариянын конкреттүү нерсеси болушу мүмкүн) "кийинки саат" эрте колдонулат.

Коддоо үчүн мен MPLABXти IDE катары тандадым.

4 -кадам: Код үзүндүлөрү

Код үзүндүлөрү
Код үзүндүлөрү
Код үзүндүлөрү
Код үзүндүлөрү

Мен бул жерге кодумду жазбайм, бирок эгер сиз өзүңүздүн кодуңузду жазууну кааласаңыз, анда мен иштеп чыгуу учурунда "мүдүрүлгөн" нерселеримди берем …

Биринчиден, "каттоо" толтуруу:

Эгерде сиз жаңы маалыматтарды реестрге өтө тез жана өтө кыска циклде өткөрүп берсеңиз, мен тажрыйбага ээ болдум, ошондо диоддор жаркырай баштады. Ошентип, мен бир нече "блокировкалык желектерди" жасадым, бир гана мүнөт калганда сүйлөө убактысынын жаңы "эсеби" жасалып, реестр жаңыртылды.

Реестрлерди толтуруу коду жогорудагы сүрөттө. Көрүнүп тургандай, мен бардык 3 реестрди параллелдүү түрдө толтурам, андыктан мага маалыматтар үчүн PICтин 3 төөнөгүчү жана CLK үчүн 1 пин керек. 74HC164 CLK линиясында 0дөн 1ге өтүү боюнча жаңы маалыматтарды өзүнө алат.

Калган коддор негизинен PICке көз каранды нерселер, "сүйлөө убактысы"-логика жана байланышты жана баскычтарды иштетүү. Байланыш негизинен Microchip MPLABX тарабынан камсыздалат, анткени мен MSSP модулун колдондум.

DS3231 маалымат барагын окуу жакшы идея, анткени маалыматтар BCD катары сакталат, андыктан сиз муну кодуңузда "өзгөртүшүңүз" мүмкүн. Менин тынчсыздануум боюнча, мен "жасоо менен үйрөнөм" деген жигитмин жана, албетте, маалыматтык баракчаны окуган жокмун … Мага нервдер жана сааттар көп эле кымбатка турду.

Сиз байкагандай, бул ишке ашыруу менен "убакытты көзөмөлдөөнүн" эки жолу бар.

  1. Сиз DS3231дин чыныгы убактысын окуй аласыз
  2. Сиз PICтин ичинде "секунддарды санай аласыз" жана мезгил -мезгили менен DS3231 менен убакытты синхрондоштура аласыз

Бул сизге байланыштуу жана эки жол тең практикалык жана түз алдыга. Мен биринчи вариантты колдондум жана убакытты баскычтар аркылуу тууралоодо (DS3231ге жазуу убактысы) же ар бир 24 саатта (DS3231ден окуу убактысы), анткени мен өзүм логиканы көбүрөөк ишке ашыргым келди. Мен да түн ичинде (23: 00дөн 05: 00гө чейин) саатымды бурам, бул менин оюмча бир аз жеңилирээк болду.

5 -кадам: Турак жай

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

Мен жогоруда айткандай, мен турак-жайды өзүм жасадым (Бүркүттүн жардамы менен) жана аларды 3D-принтерим менен басып чыгардым, ошондуктан ар кандай светодиоддордун позицияларын карап турууга туура келди.

Эгерде сиз аларды колдонууну кааласаңыз, STL файлдарын таба аласыз.

Бул көрсөтмө сизге "Wort-Uhr" курууда сизге жардам берет деп үмүттөнөбүз. Эгерде дагы эле "ачык суроолор" болсо, мага кайрылуудан тартынбаңыз. Төмөндө комментарий берүүнүн эң жакшы жолу, анткени сизде белгилүү бир суроо жок болушу мүмкүн.

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