Indholdsfortegnelse:

Wort-Uhr: 5 trin
Wort-Uhr: 5 trin

Video: Wort-Uhr: 5 trin

Video: Wort-Uhr: 5 trin
Video: ЯПОНЦЫ ВОТ ТАК ОЧИЩАЮТ СОСУДЫ ЗА 2 НЕДЕЛИ! 2024, November
Anonim
Wort-Uhr
Wort-Uhr

Hej sammen!

Dette vil være min første instruerbare, og hvis du har nogen ideer til, hvordan du kan forbedre det eller gøre det lettere at forstå, tøv ikke med at kontakte mig!

I første omgang er denne slags "ur" ikke min idé! Jeg har set masser af internettet, og de kan bestilles for bare et par dollars i forskellige webshops. Men jeg ville ikke købe en, jeg ville lave en af mine egne for at lære og forstå, hvordan den fungerer.

Et ord til "ikke-tyske" medlemmer … Beklager, at dette kun er en "tysk Wort Uhr". Det kan let konverteres til engelsk eller et hvilket som helst andet sprog, men da jeg er tysk, lavede jeg det på mit sprog. Hvis du har brug for støtte til dit sprog, skal du kontakte mig, så prøver jeg at hjælpe dig.

Så lad os starte…

Trin 1: Skematisk

Det skematiske
Det skematiske

Skematikken er lige frem, og hvis billedet er for dårligt at læse, er der også en PDF -fil.

Lad os begynde i nederste venstre hjørne. Der er en simpel strømforsyning ved hjælp af en LM7805 til at generere en stabil 5V udgang til PIC, skiftregistre (74HC164) og real -time chip DS3231. Alle lysdioder leveres også fra denne del. D22 i højre ende er kun til indikation af strømforsyning og kan let efterlades fra hinanden, hvis det ikke ønskes.

Du kan bruge enhver DC -strømforsyning til uret med mindre end 40V, men du skal derefter vælge den passende værdi for C7. Den skal have en spændingsværdi på mindst det dobbelte af indgangsspændingen, og husk, at du skaber varme i LM7805, så du bør prøve at holde indgangsspændingen så lav som muligt, fordi alt andet bare er spild af energi. Bedste pasform er noget mellem 9V og 12V DC.

Du skal ikke bekymre dig om polariteten i din strømforsyning … P-kanal MOSFET (Q1) fungerer som en falsk polaritetsbeskyttelse, og uret fungerer bare ikke og får ingen skader. Du kan kontrollere dette på "strøm" LED D22, hvis den er monteret.

På højre side af skematikken er de seriel-i parallel-out skiftregistre. Jeg besluttede at bruge dem, fordi jeg ikke ønskede at bruge en enorm PIC med masser af I/O-porte. Jeg ville bruge en mindre, og jeg havde stadig nogle 16F1829 derhjemme, så valget var allerede klart. Dataene (IN_1, IN_2 og IN_3) leveres af PIC (se kodesektion herunder) og REGISTER_CLK også. For enkelhed i min kode og PCB -layout brugte jeg to af 74HC164 i timerne og den sidste til "logikken".

I øverste venstre hjørne er PIC og alle nødvendige dele. Jeg brugte det interne ur, så ingen oszillator er nødvendig. Kun tre modstande til SCL, SDA og MCLR. For det faktum, at jeg brugte 32 kHz som en indikation af "nøjagtige sekunder", er der ikke behov for en ganske stabil og præcis frekvens for PIC.

I midten er der DS3231 med et minimum på eksterne dele. Faktisk brugte jeg kun SDA- og SCL -indgange til kommunikation over I²C og 32kHZ -udgangen som en ekstern urreference til Timer1 i PIC16F1829. For denne output siger databladet, at det er en ekstern pull-up-modstand, der er nødvendig. De andre output brugte jeg ikke i dette projekt og efterlod dem uden forbindelse.

Også i midten, lysdioderne … Som du kan læse i skematisk brugte jeg blå lysdioder (dem med klart hus) og en modstandsværdi på 1k Ohm. Hvis du har tænkt dig at lave dette projekt selv, skal du vælge værdierne for disse modstande i henhold til farven og typen af de lysdioder, du vælger. Husk også på, hvor du vil have uret sat op. Min ene står i mit soveværelse, derfor ville jeg ikke, at lysdioderne var for lyse og valgte en større værdi for modstandene. Gør nogle forsøg på et brødbræt med lysdioder og modstandsværdier, før du monterer dem på printkortet.

Trin 2: Layout

Layout
Layout
Layout
Layout
Layout
Layout

Efter afslutningen af skematikken er det tid til at dirigere printkortet. Til det brugte jeg KiCAD (også skematisk). Der er ikke meget at sige, bare ruter linjerne.

For det faktum, at jeg selv trykkede urets hus, var meget vigtigt, hvor lysdioderne på det øverste lag er placeret. Jeg lagde kun lysdioder og modstande på det øverste lag, fordi jeg bestilte mit printkort delvist monteret (alle SMD-dele), og fordi det firma, jeg valgte, kun placerer dele på den ene side og ikke dobbeltsidet.

Du kan se placeringen i de to 3-dimensionelle billeder, jeg lavede af KiCAD.

Hvis du er interesseret … Det er muligt at eksportere KiCAD PCB til Eagle, og så er det ret let at konstruere huset, fordi du har en reference fra printkortet.

Trin 3: "Logik" i "Wort-Uhr"

Den største del af dette projekt var koden til PIC …

Først fandt jeg "logikken" i taletiden på tysk og oversatte den til kode.

Desværre var det ikke muligt at uploade Excel -filen direkte, men jeg håber, at PDF -eksporten er læselig nok til dig. Hvis ikke, bedes du kontakte mig, så sender jeg dig den originale Excel -fil. I PDF -filen kan du se, hvordan jeg opsætter logikken for mit ur. Du kan se, hvordan jeg gik igennem de forskellige tidspunkter, og hvordan stavemåden er. Beregningen inde i koden (hovedsageligt if-else-sætninger) kan udledes af oplysningerne på højre side af tabellen. En del er i minutter og en del i timer.

Som du kan se, er dette ingen magi og kan let kodes i C. Det "vanskeligste" punkt inde i logikken er, hvordan timen skal håndteres, som du kan se i filen, at den faktiske time kun vises i begyndelsen af en time. På tysk (måske er dette kun en bayersk specifik ting) "den næste time" bruges ret tidligt.

Til kodning brugte jeg MPLABX som min valgte IDE.

Trin 4: Kodeuddrag

Kodeuddrag
Kodeuddrag
Kodeuddrag
Kodeuddrag

Jeg sender ikke min kode her, men hvis du har tænkt dig at skrive din egen kode, vil jeg give dig nogle tip om, hvad jeg har "snublet over" under udviklingen …

Først "register" -fyldning:

Hvis du overfører nye data til registre for ofte og i for korte cyklusser, oplevede jeg, at lysdioderne begyndte at blinke. Så jeg lavede nogle "blokerende flag", at der kun i hvert øjeblik foretages en ny "beregning" af taletid og registreringsopdatering foretages.

Koden til udfyldning af registre findes på billedet ovenfor. Som du kan se, udfylder jeg alle 3 registre parallelt, så jeg har brug for 3 pins af PIC til data og 1 pin til CLK. 74HC164 overtager nye data om en overgang på CLK -linjen fra 0 til 1.

Resten af koden er hovedsageligt PIC-afhængige ting, "taletiden" -logikken og håndtering af kommunikation og knapper. Kommunikation leveres hovedsageligt af Microchip MPLABX, fordi jeg brugte MSSP -modulet.

En god idé er at læse databladet til DS3231, fordi data er gemt inde som BCD, så du skal muligvis "transformere" dette i din kode. For så vidt angår mig, er jeg en "learning by doing" fyr, og selvfølgelig læste jeg ikke databladet … Det kostede mig mange nerver og timer.

Som du måske har bemærket, er der to måder at "holde tiden på sporet" med denne implementering.

  1. Du kan læse den faktiske tid ud af DS3231
  2. Du kan "tælle sekunder" i selve PIC'en og bare synkronisere tiden med DS3231 fra tid til anden

Det er op til dig, og begge måder er praktiske og ligetil. Jeg brugte den første mulighed og synkroniserede kun tiden, når jeg justerede tiden via knapperne (skrivetid til DS3231) eller hver 24. time (læsetid fra DS3231), fordi jeg selv ville implementere mere logik. Jeg tænder også for mit ur i løbet af natten (23:00 til 05:00), så det var lidt lettere efter min mening.

Trin 5: Boligen

Sidst men ikke mindst er det tid til at kigge lidt på huset.

Som jeg nævnte ovenfor, lavede jeg huset alene (ved hjælp af Eagle) og printede dem med min 3D-printer, så jeg måtte fortsat se på placeringen af de forskellige lysdioder.

Vedhæftet kan du finde STL -filerne, hvis du vil bruge dem.

Håber denne instruktive hjælper dig, når du bygger din egen "Wort-Uhr". Hvis der stadig er "åbne spørgsmål", tøv ikke med at kontakte mig. Den bedste måde at kommentere herunder, fordi du måske ikke er den eneste, der har et specifikt spørgsmål.

Anbefalede: