Sisukord:

Wort-Uhr: 5 sammu
Wort-Uhr: 5 sammu

Video: Wort-Uhr: 5 sammu

Video: Wort-Uhr: 5 sammu
Video: Samy Deluxe - Weck mich auf (Official Video) 2024, November
Anonim
Wort-Uhr
Wort-Uhr

Tere koos!

See on minu esimene juhendatav ja kui teil on ideid selle parandamiseks või arusaamise hõlbustamiseks, võtke palun minuga ühendust!

No esialgu pole selline "kell" minu idee! Olen Internetis palju näinud ja neid saab erinevates veebipoodides tellida vaid paari dollari eest. Kuid ma ei tahtnud seda osta, vaid tahtsin selle endale ise teha, et õppida ja mõista, kuidas see töötab.

Üks sõna "mitte-sakslastest" liikmetele … Vabandage selle pärast, et see on lihtsalt "saksa ürt". Selle võib hõlpsasti inglise keelde või muusse keelde teisendada, kuid kuna olen sakslane, tegin selle oma keeles. Kui vajate oma keele jaoks tuge, võtke minuga ühendust ja ma püüan teid aidata.

Nii et alustame…

Samm: skeem

Skeem
Skeem

Skeem on otse ette nähtud ja kui pilt on halvasti loetav, on olemas ka PDF -fail.

Alustame vasakust alumisest nurgast. Seal on lihtne toiteallikas, mis kasutab LM7805, et genereerida stabiilne 5 V väljund PIC -i, vahetusregistrite (74HC164) ja reaalajas kiibi DS3231 jaoks. Sellest osast tarnitakse ka kõiki LED -e. D22 parempoolses otsas on ainult toiteallika näitamiseks ja kui seda ei soovi, saab selle hõlpsasti üksteisest välja jätta.

Alla 40 V kella jaoks saate kasutada mis tahes alalisvoolu toiteallikat, kuid siis peaksite valima C7 jaoks sobiva väärtuse. Selle pinge peaks olema vähemalt kahekordne sisendpingest ja pidage meeles, et te tekitate LM7805 -s soojust, nii et peaksite proovima hoida sisendpinget võimalikult madalal, sest kõik muu on lihtsalt energia raiskamine. Parim sobivus on vahemikus 9V kuni 12V DC.

Ärge muretsege oma toiteploki polaarsuse pärast … P-kanaliga MOSFET (Q1) toimib vale polaarsuskaitsega ja kell lihtsalt ei tööta ega kahjusta. Seda saate kontrollida "toite" LED D22 -lt, kui see on paigaldatud.

Skeemi paremal küljel on jadaühendusega paralleelselt nihkeregistrid. Otsustasin neid kasutada, kuna ei tahtnud kasutada tohutut PIC-d, millel oleks palju I/O-pordi. Tahtsin kasutada väiksemat ja mul oli kodus veel mingi 16F1829, nii et valik oli juba selge. Andmed (IN_1, IN_2 ja IN_3) pakuvad PIC (vt allpool olevat koodiosa) ja REGISTER_CLK. Koodi ja trükkplaadi paigutuse lihtsuse huvides kasutasin tundidest 74HC164 -st kahte ja viimast "loogika" jaoks.

Vasakus ülanurgas on PIC ja kõik vajalikud osad. Ma kasutasin sisemist kella, nii et ostsillaatorit pole vaja. Ainult kolm takistit SCL, SDA ja MCLR jaoks. Asjaolu, et ma kasutasin 32 kHz "täpsete sekundite" näitena, pole PIC jaoks vaja üsna stabiilset ja täpset sagedust.

Keskel on DS3231 minimaalse väliste osadega. Tegelikult kasutasin PIC16F1829 taimeril 1 välise kella viitena ainult SDA ja SCL sisendeid I²C kaudu ja 32 kHz väljundit. Selle väljundi kohta teabeleht ütleb, et see on vajalik väline tõmbetakisti. Teisi väljundeid ma selles projektis ei kasutanud ja jätsin need ühendamata.

Ka keskel, valgusdioodid … Nagu skemaatiliselt lugeda võib, kasutasin siniseid LED -e (selge korpusega) ja takisti väärtust 1k oomi. Kui kavatsete selle projekti ise teha, peaksite nende takistite väärtused valima vastavalt valitud LED -ide värvile ja tüübile. Pidage meeles ka seda, kuhu soovite kella seadistada. Minu üks seisab minu magamistoas, seetõttu ei tahtnud ma, et LED -id oleksid liiga heledad, ja valisin takistite jaoks suurema väärtuse. Enne PCB -le paigaldamist proovige mõnda LED -lampide ja takisti väärtustega leivaplaati.

2. samm: paigutus

Paigutus
Paigutus
Paigutus
Paigutus
Paigutus
Paigutus

Pärast skeemi lõpetamist on aeg trükkplaat marsruutida. Selleks kasutasin KiCADi (ka skemaatiliseks). Pole palju öelda, lihtsalt marsruudige liinid.

Et ma kella korpuse ise välja printisin, oli üsna oluline, kus pealmise kihi LED -id asuvad. Panin LED-id ja takistid ainult pealmisele kihile, kuna tellisin oma trükkplaadi osaliselt paigaldatuna (kõik SMD osad) ja kuna selle jaoks valitud ettevõte paigutab osad ainult ühele küljele, mitte kahepoolsele.

Näete paigutust kahel kolmemõõtmelisel pildil, mille tegin KiCADist.

Kui olete huvitatud… KiCADi trükkplaati on võimalik eksportida Eagle'i ja siis on korpuse ehitamine üsna lihtne, kuna teil on viide PCB -lt.

3. samm: Wort-Uhri loogika

Selle projekti suurim osa oli PIC -i kood…

Algul leiti saksa keeles kõneaja "loogika" ja tõlgiti see koodiks.

Kahjuks ei olnud võimalik Exceli faili otse üles laadida, kuid loodan, et PDF -fail on teie jaoks piisavalt loetav. Kui ei, siis võtke minuga ühendust ja ma saadan teile algse Exceli faili. PDF -is näete, kuidas ma oma kella loogika seadistasin. Näete, kuidas ma erinevatel ajahetkedel läbisin ja kuidas õigekiri on. Koodisisese arvutuse (peamiselt if-else laused) saab tuletada tabeli paremal küljel olevast teabest. Üks osa on minutite ja teine osa tundide jaoks.

Nagu näete, pole see maagia ja seda saab kergesti kodeerida C -sse. Loogika "keerukam" punkt on see, kuidas tundidega hakkama saada, nagu näete failis, et alles tunni alguses kuvatakse tegelik tund. Saksa keeles (võib -olla on see vaid Baieri spetsiifiline asi) kasutatakse "järgmist tundi" üsna varakult.

Kodeerimiseks kasutasin oma valitud IDE -na MPLABX -i.

4. toiming: koodilõigud

Koodijupid
Koodijupid
Koodijupid
Koodijupid

Ma ei postita oma koodi siia, aga kui kavatsete oma koodi kirjutada, annan teile mõned näpunäited selle kohta, mille peale ma arenduse käigus "komistasin" …

Esiteks täida "register":

Kui edastate uusi andmeid registritesse liiga sageli ja liiga lühikeste tsüklitena, tegin kogemuse, et LED -id hakkasid vilkuma. Nii et tegin mõned "blokeerimislipud", et iga minut tehakse uus kõneaja arvutamine ja registri värskendamine.

Registrite täitmise kood on ülaltoodud pildil. Nagu näete, täidan ma kõik 3 registrit paralleelselt, nii et mul on vaja 3 tihvti PIC -i andmete jaoks ja 1 pin CLK jaoks. 74HC164 võtab üle uued andmed üleminekul CLK liinil 0 -lt 1 -le.

Ülejäänud kood on peamiselt PIC-st sõltuv värk, "kõneaeg" -loogika ning suhtlemise ja nuppude käsitlemine. Suhtlust pakub peamiselt Microchip MPLABX, kuna kasutasin MSSP moodulit.

Hea mõte on lugeda DS3231 andmelehte, kuna andmed salvestatakse BCD -vormingus, nii et peate võib -olla selle oma koodis "teisendama". Minu jaoks olen "tegemise teel õppiv" mees ja muidugi ei lugenud andmelehte … See maksis mulle palju närve ja tunde.

Nagu olete juba märganud, on selle rakendamisega kaks võimalust "ajaga kursis hoida".

  1. DS3231 -st saate lugeda tegelikku aega
  2. Saate PIC -is endas "sekundeid lugeda" ja aeg -ajalt lihtsalt aega DS3231 -ga sünkroonida

See on teie otsustada ja mõlemad viisid on praktilised ja otse edasi. Kasutasin esimest võimalust ja sünkroniseerisin ainult aega nuppude kaudu (kirjutamisaeg DS3231 -le) või iga 24 tunni järel (lugemisaeg DS3231 -st), kuna tahtsin rohkem loogikat ise rakendada. Ma keeran kella ka öösel (23.00 kuni 05.00), nii et minu arvates oli see natuke lihtsam.

Samm: eluase

Viimaseks, kuid mitte vähem tähtsaks, on aeg korpusele lühike pilk peale visata.

Nagu ma eespool mainisin, tegin korpuse ise (kasutades Eagle'i) ja printisin need oma 3D-printeriga, nii et mul on vaja vaadata erinevate LED-ide asukohti.

Lisatud leiate STL -failid, kui soovite neid kasutada.

Loodetavasti aitab see juhend teile oma "Wort-Uhri" ehitamisel. Kui on veel "lahtisi küsimusi", võtke minuga ühendust. Parim viis allpool kommenteerimiseks, sest te ei pruugi olla ainus, kellel on konkreetne küsimus.

Soovitan: