Obsah:
- Krok 1: Ako si to prečítať?
- Krok 2: Čo budete potrebovať
- Krok 3: Elektronické súčiastky - pozadie
- Krok 4: Elektronika - Napájanie
- Krok 5: Elektronika - spájkovanie
- Krok 6: Softvér - pozadie
- Krok 7: Softvér - kód
- Krok 8: Vytvorte hodiny
- Krok 9: Nakreslite do dreva
- Krok 10: Assamble
- Krok 11: Aktualizácia - fotorezistor
- Krok 12: Užite si to
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Projekty Tinkercad »
Po dlhej dobe, keď som robil rôzne projekty, som sa rozhodol, že urobím návod sám. V prvom rade vás prevediem procesom výroby vlastných analógových hodín vyrobených z úžasného adresovateľného LED krúžku. Vnútorný krúžok ukazuje hodiny, vonkajší prstenec ukazuje minúty a sekundy.
Okrem toho, že hodiny ukazujú čas, môžu tiež zobrazovať izbovú teplotu a môže to byť veľmi pekná dekorácia v miestnosti. Každých 15 minút hodiny vytvoria aj špeciálne efekty - video ich všetky zobrazuje, nezabudnite sa na to pozrieť. Pomocou dvoch tlačidiel a potenciometra si užívateľ môže vybrať medzi rôznymi režimami a upravovať farby podľa vlastného želania. Tiež som ho aktualizoval tak, aby automaticky stlmil LED diódy, ak v miestnosti stmavne, takže užívateľ nebude v noci rušený.
Hodiny je možné umiestniť na stôl, posteľ alebo zavesiť na stenu.
Poznámka: Obrázky nie sú také dobré ako pohľad v skutočnosti kvôli vysokému jasu.
Krok 1: Ako si to prečítať?
Hodiny majú 2 prstene - menší na zobrazenie hodín a väčší na zobrazenie minút a sekúnd. Niektoré diódy LED nepretržite svietia - takzvaný kompas, ktorý indikuje polohu hlavných hodín. Na hodinovom prstenci to predstavuje hodiny 3, 6, 9 a 12'o, na minútovom zvonení to predstavuje 15, 30, 45 a 0 minút.
Krok 2: Čo budete potrebovať
Materiály:
- 1x Arduino Nano (môžete použiť aj akékoľvek iné Arduino)
- 1x modul DS3231 RealTimeClock
- 1x Adresovateľný LED krúžok - 60 LED diód
- 1x Adresovateľný LED krúžok - 24 LED diód
- 2x tlačidlá (NIE - normálne otvorené)
- 1x potenciometr 100kOhm
- 1x 5V napájací zdroj (schopný dodať 1 A)
- 1x napájací konektor
- Niektoré drôty
- 1x 10kOhm odpor
- 1x fotorezistor
- Prefboard (voliteľné)
- Konektory vodičov svorkovnice (voliteľné)
- 25 mm hrubé drevo, veľkosť najmenej 22 cm x 22 cm
- 1 mm tenká podložka z PVC plastu s rozmermi 20 cm x 20 x m
Náradie:
- Základné nástroje pre stavebnú elektroniku (spájkovačka, kliešte, skrutkovač, …)
- Vŕtačka
- Horúca lepiaca pištoľ
- Brúsny papier a nejaký lak na drevo
- CNC stroj (možno ho má nejaký priateľ)
Krok 3: Elektronické súčiastky - pozadie
DS3231
Čas sme mohli určiť pomocou vstavaného oscilátora a časovača Arduinos, ale rozhodol som sa použiť vyhradený modul Real Time Clock (RTC), ktorý dokáže sledovať čas, aj keď hodiny odpojíme od zdroja energie. Doska DS3231 má batériu, ktorá dodáva energiu, keď modul nie je pripojený k zdroju napájania. Je tiež presnejší v dlhších časových obdobiach ako zdroj hodín Arduinos.
DS3231 RTC používa na komunikáciu s mikro-ovládačom rozhranie I2C-veľmi jednoduché použitie a na komunikáciu s ním potrebujeme iba 2 vodiče. Modul tiež poskytuje teplotný senzor, ktorý bude použitý v tomto projekte.
Dôležité: Ak plánujete pre modul RTC použiť nenabíjateľnú batériu, mali by ste odpájkovať odpor 200 ohmov alebo diódu 1N4148. V opačnom prípade sa vám môže vybiť batéria. Viac informácií nájdete na tomto odkaze.
LED krúžok WS2812
Rozhodol som sa použiť 60 LED krúžkov na sledovanie minút a 24 LED krúžkov na hodiny. Nájdete ich na Adafruit (neoPixel ring) alebo niektorých lacných verziách na eBay, Aliexpress alebo iných internetových obchodoch. Medzi adresovateľnými LED pásikmi je veľká rozmanitosť a ak sa s nimi hráte prvýkrát, odporúčam vám prečítať si niektoré popisy použitia - tu je niekoľko užitočných odkazov:
https://www.tweaking4all.com/hardware/arduino/adr…
https://randomnerdtutorials.com/guide-for-ws2812b…
Adresovateľný LED pás má 3 konektory: 5V, GND a DI/DO. Prvé dve slúžia na napájanie LED diód, posledné slúžia na napájanie dát. Pri pripájaní krúžku k Arduinu buďte opatrní - vaša dátová linka musí byť pripojená k pinu DI (data IN).
Arduino
Používam Arduino Nano, pretože je malý a dostačujúci pre tento projekt. Môžete použiť takmer akékoľvek iné Arduino, ale potom musíte byť opatrní a pripájať k nemu všetko. Tlačidlá a prstence LED môžu byť na rovnakých kolíkoch, ale konektory I2C (pre modul RTC) sa môžu medzi platformami líšiť - pozrite sa na ich technický list.
Krok 4: Elektronika - Napájanie
Arduino aj LED pásik musia byť napájané zdrojom 5 V, aby sme vedeli, aké napätie je potrebné. Pretože LED krúžky čerpajú pomerne veľa zosilňovačov, nemôžeme ho napájať priamo pomocou Arduina, ktorý na svojom digitálnom výstupe vydrží maximálne 20 mA. Podľa mojich meraní môžu LED krúžky spoločne čerpať až 500 mA. Preto som si kúpil adaptér, ktorý dokáže dodávať až 1A.
Rovnakým zdrojom napájania chceme napájať Arduino a LED - tu si musíte dávať pozor.
Výstraha! Pri testovaní LED pásika buďte obzvlášť opatrní - napájací adaptér NESMIE byť pripojený k Arduinu, keď je Arduino pripojený aj k počítaču pomocou konektora USB (môžete poškodiť port USB počítača).
Poznámka: V nižšie uvedených schémach som použil normálny prepínač na výber, či je Arduino napájané z napájacieho zdroja alebo z konektora USB. Ale na perfboarde vidíte, že som pridal záhlavie pinov na výber, z akého zdroja energie je Arduino napájané.
Krok 5: Elektronika - spájkovanie
Keď zhromaždíte všetky diely, je čas ich spájkovať.
Pretože som chcel urobiť rozvody úhľadné, použil som na vodiče perfboard a nejaký konektor svorkovnice, aby som ich v prípade úprav mohol odpojiť. Toto je voliteľné - drôty môžete tiež spájkovať priamo s Arduinom.
Tip: Je jednoduchšie vytlačiť schémy tak, aby ste ich mali pri spájkovaní pred sebou. A pred pripojením k zdroju napájania všetko skontrolujte.
Krok 6: Softvér - pozadie
Arduino IDE
Chystáme sa programovať Arduino s jeho vyhradeným softvérom: Arduino IDE. Ak hráte s Arduinom prvýkrát, odporúčam vám skontrolovať si niekoľko návodov, ako to urobiť. Na webe je už veľa návodov, takže nebudem zachádzať do podrobností.
Knižnica
Namiesto populárneho Adafruit som sa rozhodol použiť knižnicu FastLED. Má niekoľko úhľadných matematických funkcií, s ktorými môžete vykonávať skvelé efekty (palec hore vývojárom!). Knižnicu nájdete v ich úložisku GitHub, ale do svojho kódu som pridal súbor.zip verzie, ktorú používam.
Ak vás zaujíma, ako pridať externú knižnicu do Arduino IDE, môžete si prečítať niekoľko už vytvorených pokynov
Pre hodinový modul som použil knižnicu Arduino pre hodiny reálneho času DSTC (RTC) DS3231 (odkaz), ktorú môžete jednoducho nainštalovať do Arduino IDE. Keď ste v IDE, kliknite na položku Skica → Zahrnúť knižnicu → Spravovať knižnice … a potom filtrovať vyhľadávanie podľa vyššie uvedeného názvu.
Poznámka: Z nejakého dôvodu momentálne nemôžem pridať súbory.zip. Knižnicu nájdete v mojom úložisku GitHub.
Krok 7: Softvér - kód
Štruktúra
Aplikácia je zostavená zo 4 súborov:
- LEDclokc.ino Toto je hlavná aplikácia Arduino, v ktorej nájdete funkcie na ovládanie celých hodín - začínajú predponou CLOCK_.
- LEDclokc.h tu sú definované pinové pripojenia a niektoré konfigurácie hodín.
- ring.cpp a ring.h tu je môj kód na ovládanie krúžkov LED.
LEDclock.h
Tu nájdete všetky definície hodín. Na začiatku sú definície zapojenia. Zaistite, aby boli rovnaké ako vaše pripojenia. Potom existujú konfigurácie hodín - tu nájdete makro pre počet režimov, ktoré hodiny majú.
LEDclock.ino
Na diagrame je znázornená hlavná slučka. Kód najskôr skontroluje, či je stlačené nejaké tlačidlo. Vzhľadom na povahu prepínačov musíme na čítanie ich hodnôt použiť metódu odskakovania (viac sa o tom môžete dozvedieť na odkaze).
Po stlačení tlačidla 1 sa variabilný režim zvýši o 1, ak sa stlačí tlačidlo 2, zvýši sa typ premennej. Tieto premenné používame na určenie, ktorý režim hodín chceme vidieť. Ak sú obe tlačidlá stlačené súčasne, vyvolá sa funkcia CLOCK_setTime (), aby ste mohli zmeniť čas.
Neskôr kód prečíta hodnotu potenciometra a uloží ho do premennej - pričom túto premennú môže užívateľ meniť farby hodín, jasu atď.
Potom je tu vyhlásenie o prepínači. Tu určíme, v ktorom režime sú hodiny aktuálne, a v tomto režime sa volá zodpovedajúca funkcia, ktorá nastavuje farby diód LED. Môžete pridať svoje vlastné režimy hodín a funkcie prepisovať alebo upravovať.
Ako je popísané v knižnici FastLED, musíte na konci zavolať funkciu FastLED.show (), ktorá zmení LED na farbu, na ktorú sme ich predtým nastavili.
Medzi riadkami kódu nájdete oveľa podrobnejšie popisy
Celý kód je priložený nižšie v nižšie uvedených súboroch.
TIP: celý projekt nájdete v mojom úložisku GitHub. Tu bude kód tiež aktualizovaný, ak do neho pridám akékoľvek zmeny.
Krok 8: Vytvorte hodiny
Rám hodín
Rám hodín som postavil pomocou CNC stroja a dreva s hrúbkou 25 mm. Náčrt nakreslený v ProgeCADe nájdete nižšie. Otvory pre prstenec LED sú o niečo väčšie, pretože výrobcovia poskytujú iba merania vonkajšieho priemeru - vnútorný sa môže veľmi líšiť … V zadnej časti hodín je veľa priestoru pre elektroniku a vodiče.
PVC krúžky
Pretože LED diódy sú celkom jasné, je dobré ich nejakým spôsobom rozptýliť. Najprv som to skúsil s priehľadným silikónom, ktorý robí difúziu, ale je dosť chaotický a je ťažké ho navrchu vyhladiť. Preto som si objednal kus „mliečneho“PVC plastu s rozmermi 20 x 20 cm a narezal som doň dva krúžky pomocou CNC stroja. Na zmäkčenie okrajov môžete použiť brúsny papier, aby krúžky vkĺzli do drážok.
Bočné otvory
Potom je čas vyvŕtať otvory pre tlačidlá, potenciometer a konektor napájacieho zdroja. Najprv nakreslite každú polohu ceruzkou a potom vyvŕtajte otvor. Tu záleží na tom, aký typ tlačidiel máte - išiel som na tlačidlá s mierne zakrivenou hlavou. Majú priemer 16 mm, takže som použil vrták do dreva tejto veľkosti. To isté platí pre potenciometer a napájací konektor. Potom nezabudnite vymazať všetky kresby ceruzkou.
Krok 9: Nakreslite do dreva
Rozhodol som sa nakresliť niekoľko ukazovateľov hodín do dreva - tu môžete využiť svoju predstavivosť a navrhnúť svoje vlastné. Drevo som spálil pomocou spájkovačky, vyhriatej na maximálnu teplotu.
Aby boli kruhy pekne okrúhle, použil som kus hliníka, vyvŕtal som do neho dieru a spájkovačkou som sledoval okraje otvoru (pozri obrázok). Uistite sa, že hliník držíte pevne, aby pri kreslení nekĺzal. A buďte opatrní, aby ste predišli zraneniu.
Ak robíte kresby a chcete, aby boli pekne zarovnané s hodinovými pixelmi, môžete použiť „Režim údržby“, ktorý vám ukáže, kde sa pixely budú nachádzať (prejdite na kapitolu Zostavenie).
Chráňte drevo
Keď ste s hodinami spokojní, je čas ich obrúsiť a chrániť lakom na drevo. Na zjemnenie okrajov som použil veľmi mäkký brúsny papier (hodnota 500). Odporúčam vám použiť transparentný lak na drevo, aby sa farba dreva nemenila. Na kefu naneste malé množstvo laku a potiahnite ho v smere letničiek v dreve. Opakujte to najmenej 2 krát.
Krok 10: Assamble
Jedle položili tlačidlá a potenciometer na svoje miesta - ak sú vaše otvory príliš veľké, môžete ich na svoje miesto pripevniť horúcim lepidlom. Potom vložte prúžok do otvorov a zapojte jeho vodiče k Arduinu. Pred prilepením prstenca LED na jeho miesto je dobré sa uistiť, že pixely LED sú na správnom mieste - v strede a zarovnané s výkresom. Za týmto účelom som pridal takzvaný režim údržby, ktorý zobrazí všetky dôležité pixely (0, 5, 10, 15, … na minútovom zvonení a 3, 6, 9 a 12 na hodinovom zvonení). Do tohto režimu môžete vstúpiť stlačením a podržaním oboch tlačidiel pred zapojením napájania do konektora. Tento režim môžete ukončiť stlačením ľubovoľného tlačidla.
Akonáhle sú vaše LED krúžky zarovnané, naneste horúce lepidlo a podržte ich, kým lepidlo nestuhne. Potom vezmite PVC krúžky a znova: naneste na LED diódy horúce lepidlo, rýchlo ich umiestnite a niekoľko sekúnd ich podržte. Nakoniec, keď ste si istí, že všetko funguje, môžete horúcu lepidlo na dosku (alebo Arduino) prilepiť na drevo. Tip: Neaplikujte na veľa lepidla. Len malé množstvo, aby držalo na jednom mieste, ale môžete ho ľahko odstrániť, ak by ste chceli niečo neskôr zmeniť.
Na úplnom konci vložte gombíkovú batériu do držiaka.
Krok 11: Aktualizácia - fotorezistor
Hodinové efekty sú obzvlášť pekné v tme. To však môže jeho používateľa rušiť počas noci, keď spí. Preto som sa rozhodol aktualizovať hodiny o funkciu automatickej korekcie jasu - keď miestnosť stmavne; hodiny vypnú LED diódy.
Na tento účel som použil svetelný senzor - fotoodpor. Jeho odolnosť výrazne stúpne; až niekoľko mega ohmov, keď je tma, a bude to mať len niekoľko stoviek ohmov, keď na to bude svietiť svetlo. Spolu s normálnym odporom tvoria delič napätia. Keď sa teda zmení odpor svetelného senzora, zmení sa aj napätie na analógovom kolíku Arduino (ktoré môžeme zmerať).
Pred spájkovaním a zostavovaním akéhokoľvek obvodu je múdre ho najskôr simulovať, aby ste videli správanie a vykonávali opravy. S pomocou Autocad Tinkercad to dokážete presne tak! Niekoľkými kliknutiami som pridal komponenty, pripojil ich a napísal kód. V simulácii môžete vidieť, ako sa mení jas LED diód podľa hodnoty fotorezistora. Je to veľmi jednoduché a priamočiare - môžete si hrať s okruhom.
Po simulácii bol čas pridať funkciu na hodiny. Vyvŕtal som dieru v strede hodín, prilepil fotoodpor, spojil ho tak, ako to vidieť na obvode a pridal niekoľko riadkov kódu. V súbore LEDclock.h musíte túto funkciu povoliť deklarovaním USE_PHOTO_RESISTOR ako 1. Môžete tiež zmeniť, pri akom svetle miestnosti hodiny stlmia LED diódy zmenou hodnoty CLOCK_PHOTO_TRESHOLD.
Krok 12: Užite si to
Keď ho prvýkrát zapnete, hodiny budú zobrazovať nejaký náhodný čas. Môžete ho nastaviť stlačením oboch tlačidiel súčasne. Otáčaním gombíka zvoľte správny čas a potvrďte ho stlačením ľubovoľného tlačidla.
Inšpiráciu som našiel v jednom veľmi úhľadnom projekte na internete. Ak sa rozhodnete postaviť hodiny svojpomocne, pozrite sa na ne aj vy! (NeoClock, Wol Clock, Arduino Colorful Clock) Ak sa niekedy rozhodnete pokúsiť sa riadiť pokynmi, dúfam, že vás bude baviť rovnako ako mňa.
Ak narazíte na nejaké problémy počas procesu jeho výroby, neváhajte sa ma opýtať na akúkoľvek otázku v komentároch - rád vám na to odpoviem!