Kazalo:
- 1. korak: Shema
- 2. korak: Postavitev
- 3. korak: "Logika" "Wort-Uhr"
- 4. korak: Odlomki kode
- 5. korak: Stanovanje
Video: Wort-Uhr: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Pozdravljeni skupaj!
To bo moj prvi pouk in če imate kakšno idejo, kako to izboljšati ali olajšati razumevanje, se obrnite na mene!
No, sprva takšna "ura" ni moja ideja! Veliko sem videl po internetu in jih je mogoče naročiti za le nekaj dolarjev v različnih spletnih trgovinah. Nisem pa ga hotel kupiti, želel sem narediti svojega, da bi se naučil in razumel, kako deluje.
Ena beseda "nenemškim" članom … Oprostite, ker je to le "nemški Wort Uhr". Morda bi ga bilo enostavno pretvoriti v angleščino ali kateri koli drug jezik, a ker sem Nemka, sem to naredil v svojem jeziku. Če potrebujete podporo za svoj jezik, me kontaktirajte in poskušal vam bom pomagati.
Pa začnimo…
1. korak: Shema
Shema je jasna in če je slika slaba za branje, obstaja tudi datoteka PDF.
Začnimo v spodnjem levem kotu. Obstaja preprost napajalnik, ki uporablja LM7805 za ustvarjanje stabilnega 5V izhoda za PIC, registre premikov (74HC164) in čip v realnem času DS3231. Iz tega dela se napajajo tudi vse LED diode. D22 na desnem koncu je samo za prikaz napajanja in ga lahko preprosto pustite ločenega, če tega ne želite.
Za uro lahko uporabite kateri koli enosmerni napajalnik z manj kot 40 V, potem pa izberite ustrezno vrednost za C7. Morala bi imeti nazivno napetost vsaj dvojno vhodno napetost in ne pozabite, da v LM7805 ustvarjate toploto, zato poskusite ohraniti čim nižjo vhodno napetost, ker je vse ostalo le izguba energije. Najbolj primerno je nekaj med 9V in 12V DC.
Ne obremenjujte se s polarnostjo vašega napajalnika … P-kanalni MOSFET (Q1) deluje kot zaščita pred napačno polarnostjo in ura preprosto ne bo delovala in se ne bo poškodovala. To lahko preverite na "napajalni" LED D22, če je nameščena.
Na desni strani sheme so zaporedno zaporedni premični registri. Odločil sem se, da jih bom uporabil, ker nisem hotel uporabiti velikega PIC-a z veliko V/I-portov. Hotel sem uporabiti manjšega in še vedno sem imel doma 16F1829, tako da je bila izbira že jasna. Podatke (IN_1, IN_2 in IN_3) posreduje PIC (glej spodnji razdelek s kodo) in tudi REGISTER_CLK. Zaradi poenostavitve kode in postavitve tiskanega vezja sem za ure uporabil dve od 74HC164, zadnjo pa za "logiko".
V zgornjem levem kotu je PIC in vsi potrebni deli. Uporabil sem notranjo uro, zato oscilator ni potreben. Samo trije upori za SCL, SDA in MCLR. Ker sem 32kHz uporabil kot indikacijo "točnih sekund", ni potrebe po precej stabilni in natančni frekvenci za PIC.
Na sredini je DS3231 z najmanj zunanjimi deli. Pravzaprav sem uporabil samo vhode SDA in SCL za komunikacijo prek I²C in izhod 32kHZ kot referenco zunanje ure za Timer1 PIC16F1829. Za ta izhod podatkovni list pravi, da je potreben zunanji vlečni upor. Drugih izhodov, ki jih v tem projektu nisem uporabil, sem pustil nepovezanih.
Tudi na sredini so LED diode … Kot lahko preberete v shemi, sem uporabil modre LED (tiste s prozornim ohišjem) in vrednost upora 1k Ohmov. Če nameravate ta projekt izdelati sami, izberite vrednosti teh uporov glede na barvo in vrsto LED, ki jih izberete. Ne pozabite tudi, kje želite nastaviti uro. Moj stoji v moji spalni sobi, zato nisem želel, da bi bile LED svetle, in sem uporabil večjo vrednost za upore. Preden jih namestite na tiskano vezje, poskusite na plošči z LED diodami in vrednostmi upora.
2. korak: Postavitev
Po končani shemi je čas za usmerjanje tiskanega vezja. Za to sem uporabil KiCAD (tudi za shemo). Ni veliko za povedati, samo usmerite proge.
Ker sem ohišje ure natisnil sam, je bilo zelo pomembno, kje se nahajajo LED na zgornji plasti. Na zgornjo plast sem dal samo LED in upore, ker sem naročil tiskano vezje delno nameščeno (vsi deli SMD) in ker je podjetje, ki sem ga izbral za to, le deli postavilo na eno stran, ne pa dvostransko.
Na dveh tridimenzionalnih slikah, ki sem jih naredil iz KiCAD-a, lahko vidite umestitev.
Če vas zanima … KiCAD PCB je mogoče izvoziti v Eagle, nato pa je ohišje precej enostavno sestaviti, ker imate referenco iz tiskanega vezja.
3. korak: "Logika" "Wort-Uhr"
Največji del tega projekta je bila koda za PIC …
Najprej smo našli "logiko" govorjenega časa v nemščini in jo prevedli v kodo.
Na žalost datoteke Excel ni bilo mogoče naložiti neposredno, vendar upam, da je izvoz PDF dovolj berljiv za vas. V nasprotnem primeru me kontaktirajte in poslal vam bom izvirno datoteko Excel. V PDF -ju lahko vidite, kako nastavim logiko za uro. Lahko vidite, kako sem šel skozi različne časovne stopnje in kako je črkovanje. Izračun znotraj kode (predvsem stavkov if-else) je mogoče izpeljati iz informacij na desni strani tabele. En del je za minute, drugi del pa za ure.
Kot vidite, to ni čarovnija in jo je mogoče enostavno kodirati v C. "Najbolj zapletena" točka logike je, kako ravnati z uro, kot lahko vidite v datoteki, da je dejanska ura prikazana šele na začetku ure. V nemščini (morda je to le bavarska posebnost) se "naslednja ura" uporablja precej zgodaj.
Za kodiranje sem kot svoj IDE izbral MPLABX.
4. korak: Odlomki kode
Svoje kode ne bom objavil tukaj, če pa nameravate napisati svojo kodo, vam bom dal nekaj namigov, na kaj sem "naletel" med razvojem …
Najprej izpolnite "register":
Če prenesete nove podatke v registre prepogosto in v prekratkih ciklih, sem doživel, da so LED diode začele utripati. Tako sem naredil nekaj "zastavic za blokiranje", da se šele vsake minute izvede nov "izračun" govorjenega časa in izvede posodobitev registra.
Koda za polnjenje registrov je na zgornji sliki. Kot vidite, vse tri registre napolnim vzporedno, zato potrebujem 3 zatiča PIC za podatke in 1 pin za CLK. 74HC164 prevzame nove podatke o prehodu na liniji CLK od 0 do 1.
Preostali del kode je v glavnem odvisen od PIC-a, logike "govorjenega časa" ter obravnave komunikacije in gumbov. Komunikacijo zagotavlja predvsem Microchip MPLABX, ker sem uporabljal modul MSSP.
Dobra ideja je branje podatkovnega lista DS3231, ker so podatki shranjeni znotraj kot BCD, zato boste morda morali to "preoblikovati" v kodi. No, kar se mene tiče, sem fant, ki se "uči z delom" in seveda nisem prebral podatkovnega lista … Stalo me je veliko živcev in ur.
Kot ste morda opazili, obstajata dva načina za "sledenje času" s to izvedbo.
- Iz DS3231 lahko preberete dejanski čas
- V sami PIC lahko "štejete sekunde" in občasno samo sinhronizirate čas z DS3231
Odvisno je od vas in oba načina sta praktična in naravnost naprej. Uporabil sem prvo možnost in samo sinhroniziran čas pri prilagajanju časa s pomočjo gumbov (čas pisanja v DS3231) ali vsakih 24 ur (čas branja iz DS3231), ker sem želel sam implementirati več logike. Ponoči (od 23:00 do 05:00) izklopim uro, tako da je bilo po mojem mnenju nekoliko lažje.
5. korak: Stanovanje
Nenazadnje je čas, da na kratko pogledamo ohišje.
Kot sem že omenil, sem ohišje izdelal sam (z uporabo Eagle) in ga natisnil s svojim 3D-tiskalnikom, zato sem si moral ogledati položaje različnih LED.
V priponki najdete datoteke STL, če jih želite uporabiti.
Upam, da vam bo ta navodila pomagala pri gradnji lastnega "Wort-Uhr". Če imate še vedno "odprta vprašanja", se obrnite na mene. Najboljši način je, da komentirate spodaj, ker morda niste edini, ki imate posebno vprašanje.
Priporočena:
Števec korakov - mikro: Bit: 12 korakov (s slikami)
Števec korakov - Micro: Bit: Ta projekt bo števec korakov. Za merjenje korakov bomo uporabili senzor pospeška, ki je vgrajen v Micro: Bit. Vsakič, ko se Micro: Bit trese, bomo štetju dodali 2 in ga prikazali na zaslonu
Akustična levitacija z Arduino Uno Korak po korak (8 korakov): 8 korakov
Akustična levitacija z Arduino Uno Korak po korak (8 korakov): ultrazvočni pretvorniki zvoka L298N Dc ženski adapter z napajalnim vtičem za enosmerni tok Arduino UNOBreadboard Kako to deluje: Najprej naložite kodo v Arduino Uno (to je mikrokrmilnik, opremljen z digitalnim in analogna vrata za pretvorbo kode (C ++)
Vijak - Nočna ura za brezžično polnjenje DIY (6 korakov): 6 korakov (s slikami)
Bolt - Nočna ura za brezžično polnjenje DIY (6 korakov): Induktivno polnjenje (znano tudi kot brezžično polnjenje ali brezžično polnjenje) je vrsta brezžičnega prenosa energije. Za zagotavljanje električne energije prenosnim napravam uporablja elektromagnetno indukcijo. Najpogostejša aplikacija je brezžično polnjenje Qi
Merilnik korakov 1. del: Enobarvni zaslon 128x32 in Arduino: 5 korakov
Pedometer 1. del: Enobarvni zaslon 128x32 in Arduino: To je osnovna vadnica, ki uči, kako uporabljati zaslon OLED s svojim Arduinom. Uporabljam zaslon velikosti 128x32, lahko pa uporabite tudi drugačen zaslon z ločljivostjo in po potrebi spremenite ločljivost/koordinate. V tem delu vam bom pokazal, kako
Preklopna obremenitvena banka z manjšo velikostjo korakov: 5 korakov
Preklopna banka odpornikov obremenitve z manjšo velikostjo korakov: Banke uporovnih obremenitev so potrebne za preskušanje energetskih proizvodov, za karakterizacijo sončnih kolektorjev, v preskusnih laboratorijih in v industriji. Reostati zagotavljajo stalno spreminjanje odpornosti na obremenitev. Ker pa se vrednost upora zmanjša, moč