Innholdsfortegnelse:

Wort-Uhr: 5 trinn
Wort-Uhr: 5 trinn

Video: Wort-Uhr: 5 trinn

Video: Wort-Uhr: 5 trinn
Video: WAS ICH GEMACHT HABE AUS DEM LAMINAT?! Eine wunderbare Idee für die Küche! 2024, November
Anonim
Wort-Uhr
Wort-Uhr

Hei sammen!

Dette blir min første instruks, og hvis du har noen ideer om hvordan du kan forbedre det eller gjøre det lettere å forstå, ikke nøl med å kontakte meg!

Først, denne typen "klokke" er ikke min idé! Jeg har sett mye på internett, og de kan bestilles for bare et par dollar i forskjellige nettbutikker. Men jeg ville ikke kjøpe en, jeg ville lage en til å lære og forstå hvordan den fungerer.

Ett ord til "ikke-tyske" medlemmer … Beklager at dette bare er en "tysk Wort Uhr". Det kan lett konverteres til engelsk eller et annet språk, men siden jeg er tysk, gjorde jeg det på språket mitt. Kontakt meg hvis du trenger støtte for språket ditt, så skal jeg prøve å hjelpe deg.

Så la oss starte …

Trinn 1: Den skjematiske

Den skjematiske
Den skjematiske

Skjematikken er rett frem, og hvis bildet er for dårlig å lese, er det også en PDF -fil.

La oss begynne i nedre venstre hjørne. Det er en enkel strømforsyning som bruker en LM7805 for å generere en stabil 5V -utgang for PIC, skiftregistre (74HC164) og sanntidsbrikke DS3231. Alle lysdioder leveres også fra denne delen. D22 i høyre ende er bare for å indikere strømforsyning og kan lett stå fra hverandre hvis det ikke er ønsket.

Du kan bruke hvilken som helst likestrømforsyning for klokken med mindre enn 40V, men du bør deretter velge riktig verdi for C7. Den bør ha en spenningsvurdering på minst det dobbelte av inngangsspenningen, og husk at du lager varme i LM7805, så du bør prøve å holde inngangsspenningen så lav som mulig fordi alt annet bare er sløsing med energi. Best passform er noe mellom 9V og 12V DC.

Ikke bry deg om polariteten til strømforsyningen din … P-kanal MOSFET (Q1) fungerer som en falsk polaritetsbeskyttelse, og klokken vil bare ikke fungere og ikke bli skadet. Du kan sjekke dette på "strøm" LED D22 hvis den er montert.

På høyre side av skjemaet er serie-i parallell-ut skiftregistre. Jeg bestemte meg for å bruke dem fordi jeg ikke ønsket å bruke en enorm PIC med mange I/O-porter. Jeg ønsket å bruke en mindre, og jeg hadde fremdeles noen 16F1829 hjemme, så valget var allerede klart. Dataene (IN_1, IN_2 og IN_3) er levert av PIC (se kodeseksjonen nedenfor) og REGISTER_CLK også. For enkelhet i min kode og PCB -layout brukte jeg to av 74HC164 for timene og den siste for "logikken".

I øvre venstre hjørne er PIC og alle nødvendige deler. Jeg brukte den interne klokken, så ingen oszillator er nødvendig. Bare tre motstander for SCL, SDA og MCLR. For det faktum at jeg brukte 32 kHz som en indikasjon på "eksakte sekunder", er det ikke nødvendig med en ganske stabil og nøyaktig frekvens for PIC.

I midten er det DS3231 med et minimum på eksterne deler. Faktisk brukte jeg bare SDA- og SCL -inngangene for kommunikasjon over I²C og 32kHZ -utgangen som en ekstern klokkereferanse for Timer1 i PIC16F1829. For denne utgangen sier databladet at det er en ekstern opptrekksmotstand som trengs. De andre utgangene brukte jeg ikke i dette prosjektet og lot dem være uten sammenheng.

Også i midten, lysdiodene … Som du kan lese i skjematikken brukte jeg blå lysdioder (de med klart hus) og en motstandsverdi på 1 k ohm. Hvis du har tenkt å lage dette prosjektet selv, bør du velge verdiene til disse motstandene i henhold til fargen og typen på lysdiodene du velger. Husk også hvor du vil at klokken skal settes opp. Min står på soverommet mitt, derfor ville jeg ikke at lysdiodene skulle være for lyse og valgte en større verdi for motstandene. Gjør noen forsøk på et brødbrett med lysdioder og motstandsverdier før du monterer dem på kretskortet.

Trinn 2: Oppsett

Oppsett
Oppsett
Oppsett
Oppsett
Oppsett
Oppsett

Etter å ha fullført skjematikken er det på tide å rute PCB. Til det brukte jeg KiCAD (også skjematisk). Det er ikke så mye å si, bare rute linjene.

For det faktum at jeg trykte huset på klokken selv, var det ganske viktig hvor lysdiodene på det øverste laget er plassert. Jeg satte bare lysdiodene og motstandene på det øverste laget, fordi jeg bestilte PCB-en delvis montert (alle SMD-delene) og fordi selskapet jeg valgte for bare plasserer deler på den ene siden og ikke tosidig.

Du kan se plasseringen i de to tredimensjonale bildene jeg laget av KiCAD.

Hvis du er interessert … Det er mulig å eksportere KiCAD PCB til Eagle, og da er det ganske enkelt å konstruere huset, fordi du har en referanse fra PCB.

Trinn 3: "Logikk" for "Wort-Uhr"

Den største delen for dette prosjektet var koden for PIC …

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

Dessverre var det ikke mulig å laste opp Excel -filen direkte, men jeg håper PDF -eksporten er lesbar nok for deg. Hvis ikke, vennligst kontakt meg, så sender jeg deg den originale Excel -filen. I PDF -filen kan du se hvordan jeg konfigurerte logikken for klokken min. Du kan se hvordan jeg gikk gjennom de forskjellige tidspunkter og hvordan stavemåten er. Beregningen inne i koden (hovedsakelig if-else-setninger) kan utledes av informasjonen på høyre side av tabellen. En del er for minutter og en del for timene.

Som du kan se er dette ingen magi og kan enkelt kodes i C. Det "vanskeligste" punktet inne i logikken er hvordan du skal håndtere timen som du kan se i filen at bare i begynnelsen av en time vises den faktiske timen. På tysk (kanskje dette bare er en bayersk spesifikk ting) brukes "neste time" ganske tidlig.

For koding brukte jeg MPLABX som min foretrukne IDE.

Trinn 4: Kodebiter

Kodebiter
Kodebiter
Kodebiter
Kodebiter

Jeg vil ikke legge ut koden min her, men hvis du har tenkt å skrive din egen kode, vil jeg gi deg noen hint om hva jeg har "snublet over" under utviklingen …

Først fyller du ut "register":

Hvis du overfører nye data til registerene for ofte og i for korte sykluser, opplevde jeg at lysdiodene begynte å flimre. Så jeg lagde noen "blokkerende flagg", at bare noen minutter blir en ny "beregning" av taletid gjort og registeroppdatering utført.

Koden for å fylle registerene er på bildet ovenfor. Som du kan se fyller jeg alle tre registre parallelt, så jeg trenger 3 pinner av PIC for data og 1 pin for CLK. 74HC164 overtar nye data om en overgang på CLK -linjen fra 0 til 1.

Resten av koden er hovedsakelig PIC-avhengige ting, "taletiden" -logikken og håndtering av kommunikasjon og knapper. Kommunikasjon er hovedsakelig levert av Microchip MPLABX fordi jeg brukte MSSP -modulen.

En god idé er å lese databladet til DS3231 fordi data er lagret inne som BCD, så du må kanskje "transformere" dette i koden din. Vel, så langt jeg er bekymret, er jeg en "learning by doing" -mann, og jeg har selvfølgelig ikke lest databladet … Kostet meg mange nerver og timer.

Som du kanskje har lagt merke til, er det to måter å "holde tiden på sporet" med denne implementeringen.

  1. Du kan lese den faktiske tiden ut av DS3231
  2. Du kan "telle sekunder" i selve PIC og bare synkronisere tiden med DS3231 fra tid til annen

Det er opp til deg og begge måter er praktiske og rett frem. Jeg brukte det første alternativet og synkroniserte bare tiden når jeg justerte tiden gjennom knappene (skrivetid til DS3231) eller hver 24. time (lesetid fra DS3231), fordi jeg ønsket å implementere mer logikk selv. Jeg slår også på klokken om natten (23:00 til 05:00), så det var litt lettere etter min mening.

Trinn 5: Boligen

Sist men ikke minst er det på tide å ta en liten titt på huset.

Som jeg nevnte ovenfor, laget jeg huset selv (ved hjelp av Eagle) og trykte dem med min 3D-skriver, så jeg måtte fortsette å se på posisjonene til de forskjellige lysdiodene.

Vedlagt finner du STL -filene hvis du vil bruke dem.

Håper dette kan hjelpe deg når du bygger din egen "Wort-Uhr". Hvis det fortsatt er "åpne spørsmål", ikke nøl med å kontakte meg. Beste måten å kommentere nedenfor, fordi du kanskje ikke er den eneste som har et spesifikt spørsmål.

Anbefalt: