INHOUDSOPGAWE:
- Stap 1: Die skematiese
- Stap 2: Uitleg
- Stap 3: "Logika" van die "Wort-Uhr"
- Stap 4: Kodebrokkies
- Stap 5: Die behuising
Video: Wort-Uhr: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Hallo saam!
Dit sal my eerste opdrag wees, en as u enige idees het om dit te verbeter of makliker te verstaan, moet u asseblief nie kontak nie!
Aanvanklik is hierdie soort 'klok' nie my idee nie! Ek het al baie op die internet gesien, en dit kan bestel word vir slegs 'n paar dollar in verskillende webwinkels. Maar ek wou nie een koop nie, ek wou dit self maak om te leer en te verstaan hoe dit werk.
Een woord aan "nie-Duitse" lede … Jammer dat dit net 'n "Duitse Wort Uhr" is. Dit kan maklik in Engels of enige ander taal omgeskakel word, maar aangesien ek Duits is, het ek dit in my taal gemaak. Kontak my as u ondersteuning vir u taal nodig het, en ek sal u probeer help.
So laat ons begin …
Stap 1: Die skematiese
Die skema is eenvoudig en as die prentjie te sleg is om te lees, is daar ook 'n PDF -lêer.
Kom ons begin in die onderste linkerhoek. Daar is 'n eenvoudige kragtoevoer wat 'n LM7805 gebruik om 'n stabiele 5V -uitset vir die PIC, skofregisters (74HC164) en real -time chip DS3231 op te wek. Alle LED's word ook van hierdie onderdeel voorsien. D22 aan die regterkant is slegs 'n aanduiding van kragtoevoer en kan maklik uitmekaar gelaat word as dit nie verlang word nie.
U kan enige GS -kragtoevoer vir die klok met minder as 40V gebruik, maar u moet dan die toepaslike waarde vir C7 kies. Dit moet 'n spanning van minstens die ingangspanning hê en onthou dat u hitte in die LM7805 skep, dus moet u probeer om die ingangsspanning so laag as moontlik te hou, want alles is net vermorsing van energie. Die beste pasmaat is iets tussen 9V en 12V DC.
Moenie bekommerd wees oor die polariteit van u kragtoevoer nie … Die p-kanaal MOSFET (Q1) dien as 'n vals polariteitsbeskerming, en die horlosie werk nie en kry geen skade nie. U kan dit op die "krag" LED D22 nagaan as dit gemonteer is.
Aan die regterkant van die skematiese is die reeks-in parallel-uit skofregisters. Ek het besluit om dit te gebruik omdat ek nie 'n groot PIC met baie I/O-poorte wou gebruik nie. Ek wou 'n kleiner een gebruik, en ek het nog 'n paar 16F1829 by die huis, so die keuse was reeds duidelik. Die data (IN_1, IN_2 en IN_3) word verskaf deur die PIC (sien kode -afdeling hieronder) en die REGISTER_CLK ook. Vir die eenvoud van my kode en PCB -uitleg gebruik ek twee van die 74HC164 vir die ure en die laaste vir die 'logika'.
In die linker boonste hoek is die PIC en alle nodige dele. Ek het die interne klok gebruik, sodat geen oszillator nodig is nie. Slegs drie weerstande vir SCL, SDA en MCLR. Vir die feit dat ek die 32kHz gebruik het as 'n aanduiding van 'presiese sekondes', is dit nie nodig om 'n redelik stabiele en akkurate frekwensie vir die PIC te kry nie.
In die middel is die DS3231 met 'n minimum op eksterne dele. Eintlik het ek slegs die SDA- en SCL -insette gebruik vir kommunikasie oor I²C en die 32kHZ -uitset as 'n eksterne klokverwysing vir Timer1 van die PIC16F1829. Vir hierdie uitvoer sê die datablad dat dit 'n eksterne trekweerstand nodig is. Die ander uitsette wat ek nie in hierdie projek gebruik het nie, het dit sonder verbinding gelaat.
Ook in die middel, die LED's … Soos u in die skema kan lees, gebruik ek blou LED's (dié met duidelike behuising) en 'n weerstandswaarde van 1k Ohms. As u van plan is om hierdie projek self te maak, moet u die waardes van hierdie weerstande kies volgens die kleur en tipe LED's wat u kies. Hou ook in gedagte waar u die klok wil stel. My een staan in my slaapkamer, daarom wou ek nie dat die LED's te helder was nie en 'n groter waarde vir die weerstande gekies het. Probeer 'n broodbord met LED's en weerstandswaardes voordat u dit op die printplaat monteer.
Stap 2: Uitleg
Na voltooiing van die skema is dit tyd om die PCB te roete. Daarvoor het ek KiCAD gebruik (ook skematies). Daar is nie veel om te sê nie, net die lyne.
Omdat ek die behuizing van die klok self gedruk het, was dit baie belangrik waar die LED's op die boonste laag geleë is. Ek het slegs die LED's en weerstande op die boonste laag geplaas, omdat ek my PCB gedeeltelik gemonteer het (al die SMD-onderdele) en omdat die onderneming wat ek gekies het, slegs dele aan die een kant plaas en nie dubbelzijdig is nie.
U kan die plasing sien in die twee driedimensionele foto's wat ek uit KiCAD gemaak het.
As u belangstel … Dit is moontlik om die KiCAD PCB na Eagle uit te voer, en dit is redelik maklik om die behuising te bou, want u het 'n verwysing van die PCB.
Stap 3: "Logika" van die "Wort-Uhr"
Die grootste deel van hierdie projek was die kode vir die PIC …
Ek het eers die 'logika' van spreektyd in Duits gevind en dit na kode vertaal.
Dit was ongelukkig nie moontlik om die Excel -lêer direk op te laai nie, maar ek hoop dat die PDF -uitvoer vir u leesbaar genoeg is. Indien nie, kontak my asseblief en ek stuur die oorspronklike Excel -lêer vir u. In die PDF kan u sien hoe ek die logika vir my horlosie opgestel het. U kan sien hoe ek deur die verskillende tydstappe gegaan het en hoe die spelling is. Die berekening binne die kode (veral as-anders-stellings) kan afgelei word uit die inligting aan die regterkant van die tabel. Een deel is vir minute en een deel vir ure.
Soos u kan sien, is dit geen towerkuns nie en kan dit maklik in C gekodeer word.. In Duits (miskien is dit dalk net 'n Beierse spesifieke ding) word die 'volgende uur' redelik vroeg gebruik.
Vir kodering gebruik ek MPLABX as my IDE van keuse.
Stap 4: Kodebrokkies
Ek sal nie my kode hier plaas nie, maar as u van plan is om u eie kode te skryf, gee ek u 'n paar wenke waaroor ek 'gestruikel het' tydens ontwikkeling …
Eerstens die "register" -vulsel:
As u te gereeld nuwe data en in te kort siklusse na die registers oordra, het die LED's begin flikker. Dus het ek 'n paar "blokkeer vlae" gemaak, sodat slegs 'n nuwe "berekening" van spreektyd gedoen word en die registeropdatering gemaak word.
Die kode vir die invul van die registers is op die foto hierbo. Soos u kan sien, vul ek al drie registers parallel, so ek benodig 3 penne van die PIC vir data en 1 pen vir CLK. Die 74HC164 neem nuwe data oor oor 'n oorgang by die CLK -lyn van 0 na 1.
Die res van die kode is hoofsaaklik PIC-afhanklike dinge, die 'spreektyd'-logika en die hantering van kommunikasie en knoppies. Kommunikasie word hoofsaaklik deur Microchip MPLABX verskaf omdat ek die MSSP -module gebruik het.
'N Goeie idee is om die datablad van DS3231 te lees, want data word daarin as BCD gestoor, sodat u dit moontlik in u kode moet "transformeer". Wat my betref, ek is 'n "leer deur te doen" man en het natuurlik nie die datablad gelees nie … Het my baie senuwees en ure gekos.
Soos u dalk opgemerk het, is daar twee maniere om 'tyd op koers te hou' met hierdie implementering.
- U kan die werklike tyd uit die DS3231 lees
- U kan 'sekondes tel' in die PIC self en van tyd tot tyd die tyd met DS3231 sinchroniseer
Dit is aan u en albei maniere is prakties en reguit. Ek het die eerste opsie gebruik en slegs tyd gesinkroniseer tydens die aanpassing van die tyd deur middel van die knoppies (skryftyd na DS3231) of elke 24 uur (leestyd vanaf DS3231), omdat ek meer logika self wou implementeer. Ek draai ook my horlosie gedurende die nag (23:00 tot 05:00), sodat dit na my mening 'n bietjie makliker was.
Stap 5: Die behuising
Laastens is dit tyd om 'n kort blik op die behuising te neem.
Soos ek hierbo genoem het, het ek die behuising self gemaak (met behulp van Eagle) en dit met my 3D-drukker gedruk, sodat ek na die posisies van die verskillende LED's moes kyk.
As u dit aangeheg het, kan u die STL -lêers vind as u dit wil gebruik.
Hoop hierdie instruksies help u by die bou van u eie "Wort-Uhr". As daar nog 'oop vrae' is, moet asseblief nie huiwer om my te kontak nie. Die beste manier om hieronder kommentaar te lewer, want u is moontlik nie die enigste een wat 'n spesifieke vraag het nie.
Aanbeveel:
Spelontwerp in vyf stappe: 5 stappe
Spelontwerp in fliek in 5 stappe: Flick is 'n baie eenvoudige manier om 'n speletjie te maak, veral iets soos 'n legkaart, visuele roman of avontuurlike spel
Gesigsopsporing op Raspberry Pi 4B in 3 stappe: 3 stappe
Gesigsopsporing op Raspberry Pi 4B in 3 stappe: in hierdie instruksies gaan ons gesigsopsporing uitvoer op Raspberry Pi 4 met Shunya O/S met behulp van die Shunyaface-biblioteek. Shunyaface is 'n biblioteek vir gesigherkenning/opsporing. Die projek het ten doel om die vinnigste opsporing en herkenningssnelheid te bereik met
DIY Vanity Mirror in eenvoudige stappe (met LED -strookligte): 4 stappe
DIY Vanity Mirror in eenvoudige stappe (met behulp van LED Strip Lights): In hierdie pos het ek 'n DIY Vanity Mirror gemaak met behulp van die LED strips. Dit is regtig cool, en u moet dit ook probeer
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): 6 stappe
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): wil u u vriende skrik en 'n skreeu geraas maak tydens Halloween? Of wil u net 'n goeie grap maak? Hierdie pop-up skerm van Zombies kan dit doen! In hierdie instruksies sal ek u leer hoe u maklik Zombies kan spring deur Arduino te gebruik. Die HC-SR0
Speel Doom op u iPod in 5 maklike stappe !: 5 stappe
Speel Doom op u iPod in 5 maklike stappe !: 'n Stap-vir-stap gids oor hoe u Rockbox op u iPod kan dubbellaai om Doom en tientalle ander speletjies te speel. Dit is iets baie maklik om te doen, maar baie mense staan nog steeds verbaas as hulle sien hoe ek op my iPod doom speel en deurmekaar raak met die instruksies