Obsah:

Wort-Uhr: 5 krokov
Wort-Uhr: 5 krokov

Video: Wort-Uhr: 5 krokov

Video: Wort-Uhr: 5 krokov
Video: 5 АУДИОУРОК С ГОЛОСОМ НОСИТЕЛЯ ПО МЕТОДУ МИШЕЛЯ ТОМАСА #уроки_немецкого #немецкий_ язык #немецкий 2024, November
Anonim
Wort-Uhr
Wort-Uhr

Ahoj spolu!

Toto bude môj prvý návod a ak máte nápady, ako ho zlepšiť alebo zrozumiteľnejšie, neváhajte ma kontaktovať!

Na začiatku tento druh „hodín“nie je môj nápad! Videl som veľa cez internet a dajú sa objednať za pár dolárov v rôznych internetových obchodoch. Ale nechcel som si kúpiť jeden, chcel som si vytvoriť vlastný, aby som sa ho naučil a porozumel, ako funguje.

Jedno slovo pre „ne-nemeckých“členov … Ospravedlňujeme sa, že ide iba o „nemeckú mladinu Uhr“. Dalo by sa to ľahko previesť na angličtinu alebo iný jazyk, ale keďže som nemčina, urobil som to vo svojom jazyku. Ak potrebujete podporu pre svoj jazyk, kontaktujte ma a pokúsim sa vám pomôcť.

Začnime teda…

Krok 1: Schéma

Schéma
Schéma

Schéma je priamočiara a ak je obrázok zle čitateľný, existuje aj súbor PDF.

Začnime v ľavom dolnom rohu. Existuje jednoduchý zdroj napájania pomocou LM7805 na generovanie stabilného 5V výstupu pre PIC, posuvné registre (74HC164) a čip DS3231 v reálnom čase. Z tejto časti sú napájané aj všetky LED diódy. D22 na pravom konci slúži len na označenie napájania a v prípade záujmu ho možno ľahko nechať od seba.

Pre hodiny s menším ako 40 V môžete použiť akékoľvek jednosmerné napájanie, ale potom by ste mali zvoliť príslušnú hodnotu pre C7. Malo by mať menovité napätie najmenej dvojnásobok vstupného napätia a pamätajte, že v LM7805 vytvárate teplo, takže by ste sa mali snažiť udržať vstupné napätie na čo najnižšej úrovni, pretože všetko ostatné je len plytvanie energiou. Najlepšie sa hodí niečo medzi 9V a 12V DC.

Nerobte si starosti s polaritou napájacieho zdroja … P-kanálový MOSFET (Q1) funguje ako ochrana proti falošnej polarite a hodiny nebudú fungovať a nepoškodia sa. Môžete to skontrolovať na „napájacej“dióde LED D22, ak je namontovaná.

Na pravej strane schémy sú posuvné registre so sériovým paralelným výstupom. Rozhodol som sa ich použiť, pretože som nechcel používať obrovský PIC s množstvom I/O portov. Chcel som použiť menší a doma som mal ešte nejaký 16F1829, takže voľba už bola jasná. Údaje (IN_1, IN_2 a IN_3) poskytuje PIC (pozri časť kódu nižšie) a REGISTER_CLK tiež. Pre jednoduchosť v mojom rozložení kódu a DPS som použil dve 74HC164 na hodiny a posledné na „logiku“.

V ľavom hornom rohu je PIC a všetky potrebné časti. Použil som vnútorné hodiny, takže nie je potrebný oszilátor. Iba tri odpory pre SCL, SDA a MCLR. Na to, že som použil 32kHz ako indikáciu „presných sekúnd“, nie je potrebná celkom stabilná a presná frekvencia pre PIC.

V strede je DS3231 s minimom na vonkajších častiach. V skutočnosti som použil iba vstupy SDA a SCL na komunikáciu cez I²C a výstup 32 kHZ ako externú referenciu hodín pre časovač 1 PIC16F1829. V údajovom liste tohto výstupu je, že je to potrebný externý pull-up odpor. Ostatné výstupy som v tomto projekte nepoužil a nechal som ich nespojené.

Tiež v strede LED diódy … Ako si môžete zo schémy prečítať, použil som modré LED diódy (tie s čírym krytom) a hodnotu odporu 1 kOhm. Ak máte v úmysle vykonať tento projekt sami, mali by ste zvoliť hodnoty týchto odporov podľa farby a typu LED diód, ktoré si vyberiete. Majte tiež na pamäti, kde chcete hodiny nastaviť. Ten môj stojí v mojej spálni, preto som nechcel, aby diódy LED boli príliš jasné a pre rezistory som vybral väčšiu hodnotu. Pred montážou na dosku plošných spojov si vyskúšajte dosku s LED diódami a hodnotami odporu.

Krok 2: Rozloženie

Rozloženie
Rozloženie
Rozloženie
Rozloženie
Rozloženie
Rozloženie

Po dokončení schémy je čas nasmerovať DPS. Na to som použil KiCAD (aj pre schému). Nie je veľmi čo povedať, iba nasmerovať linky.

Na to, že som si kryt hodiniek vytlačil sám, bolo dosť dôležité, kde sa nachádzajú diódy LED vo vrchnej vrstve. LED diódy a odpory som umiestnil iba na hornú vrstvu, pretože som si objednal svoju DPS čiastočne namontovanú (všetky diely SMD) a pretože spoločnosť, ktorú som si vybral, umiestňuje diely iba na jednu stranu, a nie na obojstranné.

Umiestnenie môžete vidieť na dvoch trojrozmerných obrázkoch, ktoré som vytvoril z KiCADu.

Ak vás to zaujíma … Je možné exportovať KiCAD PCB do Eagle a potom je celkom ľahké postaviť puzdro, pretože máte referenciu z PCB.

Krok 3: „Logika“„Wort-Uhr“

Najväčšou súčasťou tohto projektu bol kód PIC …

Najprv nájsť „logiku“hovoreného času v nemčine a preložiť ho do kódu.

Súbor Excel bohužiaľ nebolo možné nahrať priamo, ale dúfam, že export PDF je pre vás dostatočne čitateľný. Ak nie, kontaktujte ma a ja vám pošlem pôvodný súbor programu Excel. V PDF môžete vidieť, ako som nastavil logiku pre svoje hodiny. Môžete vidieť, ako som prechádzal rôznymi časovými krokmi a ako sa píše. Výpočet v kóde (hlavne príkazy if-else) je možné odvodiť z informácií na pravej strane tabuľky. Jedna časť je na minúty a jedna časť na hodiny.

Ako vidíte, nie je to žiadna mágia a dá sa ľahko kódovať v C. „Najnáročnejší“bod v logike je, ako zvládnuť hodinu, ako vidíte v súbore, že skutočná hodina sa zobrazuje iba na začiatku hodiny. V nemčine (možno je to len špecifická bavorská vec) sa „nasledujúca hodina“používa dosť skoro.

Na kódovanie som ako zvolené IDE použil MPLABX.

Krok 4: Útržky kódu

Útržky kódu
Útržky kódu
Útržky kódu
Útržky kódu

Nebudem tu uverejňovať svoj kód, ale ak máte v úmysle napísať svoj vlastný kód, dám vám niekoľko tipov, o čo som „narazil“počas vývoja …

Najprv vyplnenie „registra“:

Ak prenášate nové údaje do registrov príliš často a v príliš krátkych cykloch, urobil som skúsenosť, že diódy LED začali blikať. Vytvoril som teda niekoľko „blokovacích vlajok“, že každú minútu sa vykoná nový „výpočet“hovoreného času a vykoná sa aktualizácia registra.

Kód na vyplnenie registrov je na obrázku vyššie. Ako vidíte, vyplňujem všetky 3 registre paralelne, takže potrebujem 3 piny PIC na dáta a 1 pin na CLK. 74HC164 preberá nové údaje o prechode na linke CLK z 0 na 1.

Zvyšok kódu sú hlavne veci závislé od PIC, logika „hovoreného času“a obsluha komunikácie a tlačidiel. Komunikáciu zabezpečuje predovšetkým Microchip MPLABX, pretože som použil modul MSSP.

Dobrou myšlienkou je prečítať si technický list DS3231, pretože údaje sú uložené vo vnútri ako BCD, takže to možno budete musieť „transformovať“vo svojom kóde. Pokiaľ ide o mňa, som chlapík typu „učím sa praxou“a samozrejme som nečítal údajový list … Stálo ma to veľa nervov a hodín.

Ako ste si mohli všimnúť, pri tejto implementácii existujú dva spôsoby „udržiavania času“.

  1. Môžete si prečítať skutočný čas mimo DS3231
  2. Môžete „počítať sekundy“v samotnom PIC a čas od času synchronizovať čas s DS3231

Je to na vás a oba spôsoby sú praktické a priame. Prvú možnosť a synchronizovaný čas som použil iba pri úprave času pomocou tlačidiel (čas zápisu do DS3231) alebo každých 24 hodín (čas čítania z DS3231), pretože som chcel implementovať väčšiu logiku sám. V noci (23:00 až 5:00) tiež otáčam hodiny, takže to bolo podľa mňa o niečo jednoduchšie.

Krok 5: Bývanie

V neposlednom rade je načase sa krátko pozrieť na bývanie.

Ako som už uviedol vyššie, kryt som vyrobil sám (pomocou Eagle) a vytlačil som ich pomocou svojej 3D tlačiarne, takže som sa musel pozerať na polohy rôznych LED diód.

Priložené súbory STL nájdete, ak ich chcete použiť.

Dúfam, že vám tento návod pomôže pri vytváraní vlastného „Wort-Uhr“. Ak ešte stále existujú „otvorené otázky“, neváhajte ma kontaktovať. Najlepším spôsobom je komentovať nižšie, pretože nemusíte byť jediní, kto má konkrétnu otázku.

Odporúča: