Wort-Uhr: 5 žingsniai
Wort-Uhr: 5 žingsniai

Video: Wort-Uhr: 5 žingsniai

Video: Wort-Uhr: 5 žingsniai
Video: 😫 Перечисляем слабые места VW Touareg: неужели всё так печально? 2025, Sausis
Anonim
Wort-Uhr
Wort-Uhr

Sveiki kartu!

Tai bus mano pirmasis pamokomas dalykas ir, jei turite idėjų, kaip tai patobulinti ar lengviau suprasti, nedvejodami susisiekite su manimi!

Na, iš pradžių toks „laikrodis“nėra mano idėja! Mačiau daug interneto ir juos galima užsisakyti vos už porą dolerių įvairiose internetinėse parduotuvėse. Bet aš nenorėjau to nusipirkti, norėjau pasigaminti savo, kad išmokčiau ir suprasčiau, kaip tai veikia.

Vienas žodis „ne vokiečių“nariams… Atsiprašau už tai, kad tai tik „vokiška Wort Uhr“. Jis gali būti lengvai konvertuojamas į anglų ar bet kurią kitą kalbą, bet kadangi esu vokietis, padariau tai savo kalba. Jei jums reikia kalbos palaikymo, susisiekite su manimi ir aš pasistengsiu jums padėti.

Taigi pradėkime…

1 žingsnis: schema

Schema
Schema

Schema yra tiesiai į priekį ir, jei paveikslėlis yra blogai skaitomas, taip pat yra PDF failas.

Pradėkime nuo apatinio kairiojo kampo. Yra paprastas maitinimo šaltinis, naudojant LM7805, kad būtų sukurtas stabilus 5 V išėjimas PIC, poslinkių registrams (74HC164) ir realaus laiko mikroschemai DS3231. Visi šviesos diodai taip pat tiekiami iš šios dalies. D22 dešiniajame gale yra skirtas tik maitinimo šaltiniui parodyti ir gali būti lengvai paliktas atskirai, jei to nenorite.

Laikrodžiui, kurio įtampa mažesnė nei 40 V, galite naudoti bet kurį nuolatinės srovės maitinimo šaltinį, tačiau tuomet turėtumėte pasirinkti tinkamą C7 vertę. Jo įtampa turėtų būti bent dvigubai didesnė už įėjimo įtampą ir atminkite, kad kuriate šilumą LM7805, todėl turėtumėte stengtis, kad įėjimo įtampa būtų kuo mažesnė, nes visa kita yra tik energijos švaistymas. Geriausiai tinka kažkas tarp 9V ir 12V DC.

Nesijaudinkite dėl savo maitinimo šaltinio poliškumo … P-kanalo MOSFET (Q1) veikia kaip klaidinga poliškumo apsauga, o laikrodis tiesiog neveiks ir nebus pažeistas. Tai galite patikrinti naudodami „maitinimo“šviesos diodą D22, jei jis sumontuotas.

Schemos dešinėje pusėje yra nuosekliųjų lygiagrečių poslinkių registrai. Aš nusprendžiau juos naudoti, nes nenorėjau naudoti didžiulio PIC su daugybe įvesties/išvesties prievadų. Norėjau naudoti mažesnį, o namuose dar turėjau kokį 16F1829, todėl pasirinkimas jau buvo aiškus. Duomenis (IN_1, IN_2 ir IN_3) teikia PIC (žr. Toliau pateiktą kodų skyrių) ir REGISTER_CLK. Kad mano kodas ir PCB išdėstymas būtų paprastesni, valandoms naudojau du iš 74HC164, o paskutinį - „logikai“.

Viršutiniame kairiajame kampe yra PIC ir visos reikalingos dalys. Aš naudoju vidinį laikrodį, todėl nereikia osziliatoriaus. Tik trys SCL, SDA ir MCLR rezistoriai. Dėl to, kad naudojau 32 kHz kaip „tikslių sekundžių“indikaciją, nereikia visiškai stabilaus ir tikslaus PIC dažnio.

Viduryje yra DS3231 su minimaliu išorinių dalių kiekiu. Tiesą sakant, aš naudoju tik SDA ir SCL įėjimus komunikacijai per I²C ir 32 kHz išvestį kaip išorinį laikrodžio atskaitą PIC16F1829 laikmačiui 1. Šios išvesties duomenų lape sakoma, kad reikalingas išorinis traukimo rezistorius. Kiti išėjimai, kurių nenaudojau šiame projekte, palikau juos nesusijusius.

Taip pat viduryje, šviesos diodai … Kaip galite perskaityti schemoje, naudojau mėlynus šviesos diodus (tuos, kurių korpusas yra skaidrus) ir rezistoriaus vertę 1k omų. Jei ketinate patys atlikti šį projektą, turėtumėte pasirinkti šių rezistorių vertes pagal pasirinktų šviesos diodų spalvą ir tipą. Taip pat nepamirškite, kur norite nustatyti laikrodį. Mano vienas stovi mano miegamajame, todėl nenorėjau, kad šviesos diodai būtų per šviesūs, ir pasirinkau didesnę rezistorių vertę. Prieš montuodami juos ant PCB, pabandykite duonos lentą su šviesos diodais ir rezistorių vertėmis.

2 žingsnis: išdėstymas

Išdėstymas
Išdėstymas
Išdėstymas
Išdėstymas
Išdėstymas
Išdėstymas

Baigus schemą, laikas nukreipti PCB. Tam aš panaudojau „KiCAD“(taip pat schematiškai). Nėra daug ką pasakyti, tiesiog maršrutų linijos.

Dėl to, kad pats išspausdinau laikrodžio korpusą, buvo gana svarbu, kur yra viršutinio sluoksnio šviesos diodai. Šviesos diodus ir rezistorius uždėjau tik ant viršutinio sluoksnio, nes užsisakiau savo PCB iš dalies sumontuotą (visas SMD dalis) ir todėl, kad įmonė, kurią pasirinkau, dedasi tik iš vienos pusės, o ne iš abiejų pusių.

Jūs galite pamatyti vietą dviejose trimatėse nuotraukose, kurias padariau iš „KiCAD“.

Jei jus domina … Galima eksportuoti „KiCAD“PCB į „Eagle“, tada korpusą pastatyti yra gana paprasta, nes turite nuorodą iš PCB.

3 žingsnis: „Wort-Uhr“„logika“

Didžiausia šio projekto dalis buvo PIC kodas…

Iš pradžių suradus sakytinio laiko „logiką“vokiečių kalba ir ją išverčiant į kodą.

Deja, nepavyko tiesiogiai įkelti „Excel“failo, bet tikiuosi, kad PDF eksportas jums bus pakankamai skaitomas. Jei ne, susisiekite su manimi ir aš atsiųsiu jums originalų „Excel“failą. PDF faile galite pamatyti, kaip aš nustatiau savo laikrodžio logiką. Galite pamatyti, kaip sekėsi įvairiais laiko žingsniais ir kaip rašyba. Skaičiavimas kodo viduje (daugiausia teiginiai, jei kitaip) gali būti gautas iš dešinėje lentelės pusėje esančios informacijos. Viena dalis skirta minutėms, o kita - valandoms.

Kaip matote, tai nėra stebuklas ir gali būti lengvai užkoduotas C. „Keisčiausias“logikos taškas yra tai, kaip valdyti valandą, kaip matote faile, kad tik valandos pradžioje rodoma tikroji valanda. Vokiečių kalba (gal tai gali būti tik konkretus Bavarijos dalykas) „kita valanda“naudojama gana anksti.

Kodavimui naudojau MPLABX kaip savo pasirinktą IDE.

4 veiksmas: kodo fragmentai

Kodo fragmentai
Kodo fragmentai
Kodo fragmentai
Kodo fragmentai

Aš čia neskelbsiu savo kodo, bet jei ketinate parašyti savo kodą, duosiu jums keletą patarimų, dėl ko „suklydau“kurdamas …

Pirmiausia užpildykite „registrą“:

Jei perkeliate naujus duomenis į registrus per dažnai ir per trumpus ciklus, aš patyriau, kad šviesos diodai pradėjo mirksėti. Taigi padariau „blokuojančias vėliavas“, kad tik kiekvieną minutę būtų atliktas naujas žodinio laiko „skaičiavimas“ir atnaujintas registras.

Registrų pildymo kodas yra aukščiau esančiame paveikslėlyje. Kaip matote, aš užpildau visus 3 registrus lygiagrečiai, todėl man reikia 3 kontaktų PIC duomenims ir 1 kaiščio CLK. 74HC164 perima naujus duomenis apie perėjimą CLK linijoje nuo 0 iki 1.

Likęs kodas daugiausia priklauso nuo PIC, „kalbėjimo laiko“logikos ir komunikacijos bei mygtukų tvarkymo. Ryšį daugiausia teikia „Microchip MPLABX“, nes naudojau MSSP modulį.

Gera idėja yra skaityti DS3231 duomenų lapą, nes duomenys saugomi viduje kaip BCD, todėl gali tekti tai „pakeisti“savo kode. Na, kiek aš esu susirūpinęs, aš esu „besimokantis iš darbo“vaikinas ir, žinoma, neskaičiau duomenų lapo … Man tai kainavo daug nervų ir valandų.

Kaip jau pastebėjote, yra du būdai, kaip „išlaikyti laiką“.

  1. Galite perskaityti tikrąjį DS3231 laiką
  2. Galite „suskaičiuoti sekundes“pačiame PIC ir kartkartėmis tiesiog sinchronizuoti laiką su DS3231

Tai priklauso nuo jūsų ir abu būdai yra praktiški ir tiesūs. Aš naudoju pirmąjį variantą ir tik sinchronizavau laiką, reguliuodamas laiką mygtukais (rašymo laikas į DS3231) arba kas 24 valandas (skaitymo laikas iš DS3231), nes norėjau daugiau įgyvendinti logiką. Aš taip pat pasukau laikrodį naktį (nuo 23:00 iki 05:00), todėl, mano nuomone, buvo šiek tiek lengviau.

5 žingsnis: būstas

Paskutinis, bet ne mažiau svarbus metas trumpai apžvelgti korpusą.

Kaip minėjau aukščiau, korpusą pasidariau pats (naudodamas „Eagle“) ir atspausdinau juos savo 3D spausdintuvu, todėl turėjau nuolat stebėti skirtingų šviesos diodų padėtį.

Pridėtas galite rasti STL failus, jei norite juos naudoti.

Tikimės, kad ši pamoka padės jums kuriant savo „Wort-Uhr“. Jei vis dar yra „atvirų klausimų“, nedvejodami susisiekite su manimi. Geriausias būdas komentuoti žemiau, nes galbūt ne vienintelis turite konkretų klausimą.