Obsah:

Kryptické nástenné hodiny: 27 krokov (s obrázkami)
Kryptické nástenné hodiny: 27 krokov (s obrázkami)

Video: Kryptické nástenné hodiny: 27 krokov (s obrázkami)

Video: Kryptické nástenné hodiny: 27 krokov (s obrázkami)
Video: 35 видео со страшными призраками: мегасборник 2023 года [V1] 2024, Júl
Anonim
Kryptické nástenné hodiny
Kryptické nástenné hodiny

Čas je niečo, čo nemôžeme ovládať. Stáva sa to rovnakým spôsobom, ak spíme, bdíme, nudíme sa alebo sme zapojení. Pri súčasných udalostiach je dôležité mať na pamäti, že čas uplynie. Kým čakáme na plynutie času, prečo neurobiť niečo, vďaka čomu je plynutie času príjemnejšie sledovať.

Tieto hodiny boli inšpirované Mengenlehreuhrom nájdeným v Berlíne v Nemecku a dajú sa čítať rovnakým spôsobom. Rovnako ako originál ukazuje čas pomocou osvetlených, farebných polí.

Je vybavený 96 diódami LED, ktoré rozsvietia 52 'digitálne' oblasti. Na rozdiel od originálu má kruhový dizajn, ktorý namiesto rozloženia vodorovnej lišty obsahuje sekundový krúžok. Vonkajší pás označuje sekundy v spojení so strednou bodkou, ďalšie dva pásy označujú minúty, pričom posledné vnútorné pásy označujú hodiny.

Ak máte na rukách nejaký šrot a čas navyše, prečo tento čas nevyužiť na výrobu niečoho, čo to ukáže!

Existuje niekoľko zmien, ktoré by som na tomto projekte urobil, ak by som ho chcel vykonať znova. Najprv by som namiesto čiernej farby namaľoval rám a dosku LED. To by odrážalo viac svetla cez veľký objektív vpredu. Tiež by som počkal až do konca, kým vložím LED diódy. Potreboval som, aby bola doska dokončená skôr, aby mi to mohlo pomôcť s napísaním kódu. Keď už to nie je tak, naučme sa to najskôr čítať!

Obrázok
Obrázok

Krok 1: Ako čítať hodiny

Hodiny sa čítajú z vnútorných kruhov do vonkajších. Vnútorný kruh štyroch polí označuje päť celých hodín, vedľa druhého krúžku tiež štyri polia, ktoré označujú každú jednu celú hodinu, pričom sa hodnota hodiny zobrazuje v 24-hodinovom formáte. Tretí krúžok pozostáva z jedenástich políčok, ktoré označujú každé päť celých minút, ďalší krúžok má ďalšie štyri polia, ktoré označujú každé jednu celú minútu. Nakoniec vonkajší prstenec 29 polí označuje párne sekundy, pričom svetlo v strede bliká, čo znamená nepárne (keď svieti) alebo párne (ak nesvieti) sekundy.

Obrázok
Obrázok

Vyššie uvedený obrázok má napríklad 1 z piatich hodinových číslic, 3 z hodinových číslic, 8 z päťminútových číslic, 4 z minútových číslic a 23 z dvoch sekundových číslic a rozsvieti sa stredná druhá číslica.

1x5 + 3x1: 8x5 + 4x1: 23x2 + 1x1 = 8:44:47 = 8:44:47 AM

Obrázok
Obrázok

Čas zobrazený vyššie je: 3x5 + 0x1: 3x5 + 2x1: 5x2 + 1x1 = 15:17:11 = 15:17:11 PM

Obrázok
Obrázok

Čas zobrazený vyššie je: 3x5 + 2x1: 3x5 + 3x1: 16x2 + 1x1 = 17:18:33 = 17:18:33 PM

Krok 2: Nástroje a materiály

Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Nástroje a materiály

Materiály elektroniky:

  • Arduino Nano
  • Hodiny v reálnom čase
  • Adresovateľné LED diódy
  • Zástrčka
  • Napájací kábel
  • USB napájací konektor
  • Svetlo závislý odpor a vyvážený odpor (ak chcete, aby v noci stmavil)
  • Drôt

Materiály na spracovanie dreva:

  • 3/4 palca preglejka
  • Tenká preglejka
  • Šrotové drevo (použil som 2x4, ale fungovalo by aj tvrdé drevo)
  • Maľovať
  • Akryl 30 x 36 palcov (nájdený v miestnom obchode s domácimi potrebami)
  • Odtieň okna (skúste získať zdroj lokálne. Ak žiadny nie je k dispozícii, nájdete tu dostatočne veľký hárok)
  • Tekutina na nanášanie odtieňa okna (vo fľaši s rozprašovačom som použil vodu zmiešanú s detským šampónom)
  • Windex
  • Mäsiarsky papier
  • Skrutky
  • Lepidlo v spreji
  • Lepidlo
  • Lepidlo

Náradie:

  • Vládca
  • Xacto nôž
  • Páska
  • Obojstranná lepiaca páska
  • Kompas
  • Prípravok na rezanie kruhu
  • Skladačka
  • Pásová píla
  • Vretenová brúska
  • Palm Sander
  • Kotúčová brúska
  • Routerový stôl
  • Awl
  • Vŕtačka a vrtáky/skrutkovače
  • Svorky
  • Spájkovačka
  • Spájka
  • Odizolovače drôtov

Krok 3: Zostavte šablóny

Zostavte šablóny
Zostavte šablóny
Zostavte šablóny
Zostavte šablóny

Veľkú šablónu vytlačte pomocou nastavenia plagátu v programe Adobe Reader. Odstrihnite okraje pre každý papier a zalepte ich páskou. Zvislé, horizontálne a diagonálne čiary pomôžu pri zarovnaní šablóny. Na všetkých stránkach je uvedený malý počet čísiel, ktoré im pomôžu udržať si organizáciu, ak vypadnú.

Všetky potrebné šablóny a súbory nájdete v kroku 26.

Krok 4: Kruhy hrubého rezu

Kruhy hrubého rezu
Kruhy hrubého rezu
Kruhy hrubého rezu
Kruhy hrubého rezu

Položte dve šablóny na list preglejky 3/4 palca a nakreslite pomocou kompasu kruhy o niečo väčšie, ako je potrebné. Pomocou skladačky vyrežeme hrubý tvar.

Krok 5: Strihajte na veľkosť

Strih na veľkosť
Strih na veľkosť
Strih na veľkosť
Strih na veľkosť

Kruhom nakrájajte prípravok na pásovú pílu na konečnú veľkosť.

Krok 6: Aplikujte šablónu

Použiť šablónu
Použiť šablónu
Použiť šablónu
Použiť šablónu
Použiť šablónu
Použiť šablónu

Pomocou sprejového lepidla naneste každú šablónu na kruh. Do stredu šablóny vložte klinec, aby sa vycentroval na kruh.

Krok 7: Vystrihnite šablónu

Vystrihnúť šablónu
Vystrihnúť šablónu
Vystrihnúť šablónu
Vystrihnúť šablónu
Vystrihnúť šablónu
Vystrihnúť šablónu

Pomocou skladačky vyrežte každé jednotlivé okno šablóny. Ak máte prístup k CNC, tento krok by bol oveľa jednoduchší! Do každého okna som vyvŕtal dieru, aby som pomohol s týmto procesom. Keď začnete rezať, šablóna sa môže začať odlepovať. Ak k tomu dôjde, môžete ho zaistiť na mieste malými kúskami pásky.

Krok 8: Brúsenie

Brúsenie
Brúsenie
Brúsenie
Brúsenie
Brúsenie
Brúsenie

Brúsnym papierom naneseným na palicu, vretenovou brúskou a palmovou brúskou obrúsime a vyhladíme hrubý rez, ktorý zanechala skladačka.

Krok 9: Vŕtačka drží pre diódy LED

Vŕtačka drží pre LED diódy
Vŕtačka drží pre LED diódy
Vŕtačka drží pre LED diódy
Vŕtačka drží pre LED diódy
Vŕtačka drží pre LED diódy
Vŕtačka drží pre LED diódy
Vŕtačka drží pre LED diódy
Vŕtačka drží pre LED diódy

Stred každého otvoru označte šípkou a vyvŕtajte diery pre diódy LED. Použil som sprievodcu, ktorý mi pomohol udržať vrták kolmý na môj obrobok, a zadnú dosku, aby som nevyfúkol drevo na zadnej strane.

Krok 10: Kombinujte dosky

Kombinované dosky
Kombinované dosky
Kombinované dosky
Kombinované dosky
Kombinované dosky
Kombinované dosky

Vymeňte prednú a zadnú dosku a vystopujte časti rámu na zadnej strane dosky LED. Posuňte rám späť na prednú stranu dosky LED a vyvŕtajte otvory a priskrutkujte diely k sebe.

Ďalšie informácie nájdete v poznámkach k obrázku.

Krok 11: Vložte diódy LED

Vložte LED diódy
Vložte LED diódy
Vložte LED diódy
Vložte LED diódy

Zatlačte diódy LED cez zadnú stranu dosky LED. Otvory by mali byť od seba vzdialené tak, aby ste nemuseli prestrihávať žiadne drôty, okrem pohybu z jedného kruhu do druhého.

LED diódy zozadu začínajú v strede a potom smerujú proti smeru hodinových ručičiek a potom až k ďalšiemu krúžku.

Krok 12: Pripojte segment 1

Pripojiť segment 1
Pripojiť segment 1
Pripojiť segment 1
Pripojiť segment 1
Pripojiť segment 1
Pripojiť segment 1

Vystrihnite 9 segmentov zo šablóny „Segment 1“pripevnenej na 3/4 palcovej preglejke (nájdené v kroku 26). Pripevnite k doske LED lepidlom a svorkami. Ak ste netrpezliví, môžete ho na svoje miesto pripevniť aj klincami.

Hranu po zaschnutí obrúste kotúčovou brúskou.

Krok 13: Maľujte

Maľovať
Maľovať
Maľovať
Maľovať
Maľovať
Maľovať
Maľovať
Maľovať

Nastriekajte farbu na dosku LED aj na rám. Ak by som to robil znova, vybral by som použiť bielu farbu namiesto čiernej, pretože by bola cez objektív viac reflexná.

Krok 14: Segment 2

Segment 2
Segment 2
Segment 2
Segment 2
Segment 2
Segment 2

Vystrihnite 9 segmentov zo šablóny „Segment 2“pripevnenej z dreva hrubého 2 3/8 palca (nájdené v kroku 26). Použil som nejaký šrot 2x4 z celého obchodu. Segmenty nasaďte nasucho a pomocou pásovej svorky zaistite, aby dobre sedeli. Ak sa všetko zobrazí, prikryte vonkajšiu stranu maliarskou páskou, aby sa lepidlo nelepilo, a nechajte aspoň hodinu zaschnúť, než prejdete k ďalšiemu kroku.

Krok 15: Segment 3

Segment 3
Segment 3
Segment 3
Segment 3
Segment 3
Segment 3

Vystrihnite 9 segmentov zo šablóny „Segment 3“pripevnenej z 3/8 palca hrubého šrotu (nájdené v kroku 26). Prilepte ich tak, aby švy zo segmentu 2 boli v strede každého segmentu 3. Tým sa prsteň spevní.

Krok 16: Hladký prsteň a farba

Hladký prsteň a farba
Hladký prsteň a farba
Hladký prsteň a farba
Hladký prsteň a farba

Z odstrihnutého kusa veľkého krúžku som vyrobil vlastný brúsny blok. Brúste vnútornú a vonkajšiu stranu krúžku a vyplňte všetky praskliny, ktoré sa mohli objaviť počas procesu lepenia.

Akonáhle je hladký, naneste niekoľko vrstiev čiernej farby a priehľadného laku.

Krok 17: Vystrihnite akryl

Brúsený akryl
Brúsený akryl
Brúsený akryl
Brúsený akryl
Brúsený akryl
Brúsený akryl
Brúsený akryl
Brúsený akryl

Akryl nakrájajte na štvorec s rozmermi 30 x 30 palcov a označte stred. Akryl pripevnite obojstrannou páskou. Pomocou preplachovacej frézy odstráňte prebytočný akryl

Krok 18: Naneste tónovanie okna

Použiť odtieň okna
Použiť odtieň okna
Použiť odtieň okna
Použiť odtieň okna
Použiť odtieň okna
Použiť odtieň okna

V bezprašnom prostredí odstráňte z akrylátu ochranný film. Naneste sprej a odstráňte podkladovú vrstvu z odtieňa okna. Odtieň okna naneste lepivou stranou nadol. Pomocou stierky alebo kreditnej karty vytlačte všetku tekutinu pod odtieň okna. Po odstránení všetkých bublín a vrások orezajte prebytočný odtieň okna ostrým nožom.

Krok 19: Pripojte Defuser

Pripojte Defuser
Pripojte Defuser
Pripojte Defuser
Pripojte Defuser

Použil som veľký kus mäsiarskeho papiera, aby pôsobil ako defuser. Položte papier na rovný povrch. Zakryte tvár rámu lepidlom z lepiacej tyčinky. Predtým, ako lepidlo zaschne, položte prednú stranu hodín na papier lícom nadol a prebytočný materiál nahrubo orežte. Po zaschnutí použite ostrý nôž na orezanie.

Krok 20: Naneste izoláciu

Naneste izoláciu
Naneste izoláciu

Na oddelenie napájacieho a dátového vedenia som použil elektrickú pásku.

Krok 21: Zostavte

Zostaviť
Zostaviť
Zostaviť
Zostaviť
Zostaviť
Zostaviť

Odstráňte druhú ochrannú vrstvu z akrylátu. Umiestnite akryl do prstenca s odtieňom okna nahor. Zasuňte zvyšok hodín do krúžku. Miernym tlakom zatlačte na svorku, kým je prstenec a do dosky LED vyvŕtaný otvor. To by malo byť zhruba 1 1/8 palca zozadu. Dávajte pozor, aby ste nevŕtali do LED diódy. Do otvoru zaskrutkujte skrutku priehradovej hlavy. Opakujte celkom pre osem skrutiek po obvode hodín.

Krok 22: Pripojte kotviace body

Pripojte kotviace body
Pripojte kotviace body

Prilepte kotviace body k zadnej časti hodín, na ktoré sa má pripevniť zadný kryt. Sú hrubé 3/4 palca a dlhé asi 2 palce.

Krok 23: Vŕtajte diery pre výkon a snímač LDR

Vŕtacie otvory a otvory pre snímač LDR
Vŕtacie otvory a otvory pre snímač LDR

V spodnej časti hodín vyvŕtajte napájací otvor pre napájaciu zástrčku a v hornej časti otvor pre snímač odporu závislého od svetla (LDR).

Krok 24: Nainštalujte držiak elektroniky

Nainštalujte držiak elektroniky
Nainštalujte držiak elektroniky
Nainštalujte držiak elektroniky
Nainštalujte držiak elektroniky

Nainštalujte 3D tlačený držiak pre RTC a Arduino Nano. Pripojte všetku elektroniku podľa schémy.

Krok 25: Zadný kryt

Zadný kryt
Zadný kryt
Zadný kryt
Zadný kryt
Zadný kryt
Zadný kryt
Zadný kryt
Zadný kryt

Vystrihnite zadný kryt z tenkej preglejky, ktorá je menšia ako vonkajšia strana hodín. Do kotviacich bodov vyvŕtajte otvory. Nájdite stred chrbta a odmerajte 8 palcov v oboch smeroch, aby ste vyrezali kľúčové dierky (štandardne 16 v stredoch pre cvoky v USA). Vyvŕtal som hlavný otvor, ktorý bol väčší ako hlava skrutiek, ktoré použijem, a otvor som zaplnil jedným smerom. Maľujte čiernou farbou a pripevnite kryt na miesto.

Krok 26: Kód a súbory

Opäť som celkom nový v používaní mnohých tu používaných knižníc Arduino, takže som si istý, že existujú lepšie spôsoby, ako ich využiť.

Napísal som kód, ktorý sa má ľahko aktualizovať podľa toho, koľko LED diód používate, ak je projekt zmenšený alebo zmenšený. Všetko, čo musíte urobiť, je aktualizovať počiatočné a koncové polohy LED a počet LED diód je súčasťou každej číslice.

Pridal som niekoľko animácií, ktoré sa prehrávajú pri spustení aj počas hodiny. Sú sudo náhodné na základe generátora náhodných čísel, ktorý má na palube.

Hodiny môžete nastaviť tak, aby prechádzali farbami alebo zostali pri jednej statické. Môžete dokonca zvýrazniť číslicu indikátora, aby ste pomohli odčítať čas, ako je uvedené v úvode.

Neváhajte kód upraviť a zmeniť podľa potreby.

#include "RTClib.h"

#include #define NUM_LEDS 96 #define DATA_PIN 3 #define LDR A0 RTC_DS1307 rtc; boolean timeChange = false; boolean printTime = false; // Nastavte na true, ak chcete vidieť výstup v konzole. Užitočné pri ladení. boolean redDown = true; boolean greenDown = false; boolean blueDown = false; booleovský cyklus = nepravda; // Nastavte true, ak chcete, aby farby hodín cyklovali booleovský melír = true; // Nastavením hodnoty true zvýrazníte „poslednú číslicu“. // Miesta začiatku a konca každej skupiny časových úsekov int SECOND_1_LOCATION = 0; const int HOUR_2_START_LOCATION = 1; const int HOUR_2_END_LOCATION = 8; const int HOUR_1_START_LOCATION = 9; const int HOUR_1_END_LOCATION = 20; const int MINUTE_2_START_LOCATION = 21; const int MINUTE_2_END_LOCATION = 42; const int MINUTE_1_START_LOCATION = 43; const int MINUTE_1_END_LOCATION = 66; const int SECOND_2_START_LOCATION = 67; const int SECOND_2_END_LOCATION = 95; const int LEDS_PER_HOUR_1 = 3; const int LEDS_PER_HOUR_2 = 2; const int LEDS_PER_MINUTE_1 = 6; const int LEDS_PER_MINUTE_2 = 2; // Multiplikátory používané na rozdelenie času const int MULTIPLIER_FIVE = 5; const int MULTIPLIER_TWO = 2; const int START_UP_DELAY = 1; // Zmeňte to, aby ste urýchlili alebo spomalili animáciu pri spustení const int CYCLE_SPEED = 1; // Tu zmeňte rýchlosť cyklu zmeny farby (musí byť nad 1) // Deklarujte premenné int lastSecond = 0; int currentHour = 0; int currentMinute = 0; int currentSecond = 0; int hodina1 = 0; int hodina2 = 0; int minúta1 = 0; int minúta2 = 0; int druhý1 = 0; int druhý2 = 0; int cycleCount = 1; float fadeValue = 255; float fadeCheck = 255; uint8_t jasný = 255; int numberOfAnimations = 5; int náhodnosť = 0; // Nastaviť farby uint8_t červená = 0; uint8_t zelená = 0; uint8_t modrá = 255; uint8_t highlight_red = 60; uint8_t highlight_green = 60; uint8_t highligh_blue = 255; // Definujte pole LED diód CRGB [NUM_LEDS]; void setup () {Serial.begin (19200); FastLED.addLeds (LED diódy, NUM_LEDS); LEDS.setBrightness (jasný); FastLED.clear (); rtc.begin (); // Nastavením času odkomentujte riadok nižšie. // rtc.adjust (DateTime (2020, 2, 19, 23, 59, 50)); // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // Animácia pri spustení animate (náhodnosť); } void loop () {// Získanie času DateTime now = rtc.now (); currentHour = now.hour (); currentMinute = now.minute (); currentSecond = now.second (); timeChange = false; // Použite ich na manuálne nastavenie času bez RTC. Užitočné pre ladenie // currentHour = 5; // currentMinute = 30; // currentSecond = 30; // Reset všetkých bitov na nulu pre (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB:: Black; } // Nastaviť hodinu // Nastaviť hodinu 1 hodinu1 = (currentHour % MULTIPLIER_FIVE) * LEDS_PER_HOUR_1; // Toto bude počítať celkový počet LED diódy časovej jednotky, ktorá sa má rozsvietiť (int i = HOUR_1_START_LOCATION; i 0) // && hour1 <12) {for (int i = (HOUR_1_START_LOCATION + hour1 - 1); i> = (HOUR_1_START_LOCATION + hodina1-LEDS_PER_HOUR_1); i--) {leds = CRGB (highlight_red, highligh_green, highligh_blue); }} // Nastaviť hodinu 2 hodiny2 = (currentHour / MULTIPLIER_FIVE) * LEDS_PER_HOUR_2; // Toto bude počítať celkový počet diód LED časovej jednotky, ktorá sa má rozsvietiť (int i = HOUR_2_START_LOCATION; i 0) // && hour2 <8) {for (int i = (HOUR_2_START_LOCATION + hour2 - 1); i> = (HOUR_2_START_LOCATION + hodina2-LEDS_PER_HOUR_2); i--) {leds = CRGB (highlight_red, highligh_green, highligh_blue); }} // Nastaviť minútu // Nastaviť minútu 1 minútu1 = (currentMinute % MULTIPLIER_FIVE) * LEDS_PER_MINUTE_1; // Toto bude počítať celkový počet diód LED časovej jednotky, ktorá sa má rozsvietiť (int i = MINUTE_1_START_LOCATION; i 0) // && minute1 <24) {for (int i = (MINUTE_1_START_LOCATION + minúta1 - 1); i> = (MINUTE_1_START_LOCATION + minúta1-LEDS_PER_MINUTE_1); i--) {leds = CRGB (zvýraznenie_červené, zvýraznenie_zelené, zvýraznenie_modrej); }} // Nastaviť minútu 2 minúty2 = (currentMinute / MULTIPLIER_FIVE) * LEDS_PER_MINUTE_2; // Toto bude počítať celkové diódy LED jednotky času, ktorá sa má rozsvietiť (int i = MINUTE_2_START_LOCATION; i 0) // && minute2 <22) {for (int i = (MINUTE_2_START_LOCATION + minúta2 - 1); i> = (MINUTE_2_START_LOCATION + minúta2-LEDS_PER_MINUTE_2); i--) {leds = CRGB (zvýraznenie_červené, zvýraznenie_zelené, zvýraznenie_modrej); }} // Nastaviť ako druhé if (currentSecond! = LastSecond) {timeChange = true; } // Nastaviť sekundu 1 sekunda1 = aktuálnaSekunda % MULTIPLIER_TWO; if (second1 == 1) {leds [SECOND_1_LOCATION] = CRGB (červená, zelená, modrá); } // Nastaviť sekundu 2 sekundy2 = currentSecond / MULTIPLIER_TWO; for (int i = SECOND_2_START_LOCATION; i 0) // && second2 <29) {for (int i = (SECOND_2_START_LOCATION + second2 - 1); i> = (SECOND_2_START_LOCATION + second2 - 1); i--) {leds = CRGB (zvýraznenie_červené, zvýraznenie_zelené, zvýraznenie_modré); }} lastSecond = currentSecond; // Spočítajte cykly programu a zavolajte funkciu setColor, aby ste zmenili farbu LED diód niekedy na CYCLE_SPEED cykly. if (cycleCount jasný) // {// fadeValue = jasný; //} // else if (fadeValue <150) // {// fadeValue = 150; //} // LEDS.setBrightness (fadeValue); FastLED.show (); // Vytlačí aktuálny čas do konzoly if (timeChange == true && printTime == true) {printToConsole (); }} // Funkcia animácie sem môžete pridať ďalšie animácie, ako chcete, neplatné animácie (int select) {if (select == 0) {for (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (červená, zelená, modrá); FastLED.show (); oneskorenie (START_UP_DELAY); } for (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Black; FastLED.show (); oneskorenie (START_UP_DELAY); }} else if (select == 1) {for (int i = 0; i <250; i ++) {int light = random (95); LED diódy [svetlo] = CRGB (červená, zelená, modrá); FastLED.show (); }} else if (select == 2) {leds [0] = CRGB (red, green, blue); pre (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {leds [SECOND_2_START_LOCATION+i] = CRGB (červená, zelená, modrá); if (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {leds [MINUTE_1_START_LOCATION + i] = CRGB (červená, zelená, modrá); } if (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {leds [MINUTE_2_START_LOCATION + i] = CRGB (červená, zelená, modrá); } if (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {leds [HOUR_1_START_LOCATION + i] = CRGB (červená, zelená, modrá); } if (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {leds [HOUR_2_START_LOCATION + i] = CRGB (červená, zelená, modrá); } oneskorenie (34); FastLED.show (); }} else if (select == 3) {leds [0] = CRGB (red, green, blue); pre (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {leds [SECOND_2_END_LOCATION - i] = CRGB (červená, zelená, modrá); if (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {leds [MINUTE_1_END_LOCATION - i] = CRGB (červená, zelená, modrá); } if (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {leds [MINUTE_2_END_LOCATION - i] = CRGB (červená, zelená, modrá); } if (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {leds [HOUR_1_END_LOCATION - i] = CRGB (červená, zelená, modrá); } if (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {leds [HOUR_2_END_LOCATION - i] = CRGB (červená, zelená,Modrá); } oneskorenie (34); FastLED.show (); }} else if (select == 4) {for (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Black; } FastLED.show (); oneskorenie (200); pre (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (červená, zelená, modrá); } FastLED.show (); oneskorenie (200); pre (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Black; } FastLED.show (); oneskorenie (200); pre (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (červená, zelená, modrá); } FastLED.show (); oneskorenie (200); pre (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Black; } FastLED.show (); oneskorenie (200); }} // Funkcia farebného cyklovania neplatí setColor (boolean cycleColors) {if (cycleColors == true) {if (redDown == true && greenDown == false) {red ++; zelená--; if (zelená <= 0) {červená = 255; redDown = false; greenDown = true; }} else if (greenDown == true && blueDown == false) {green ++; Modrá--; if (modrá <= 0) {zelená = 255; greenDown = false; blueDown = true; }} else if (blueDown == true && redDown == false) {blue ++; červená--; if (červená <= 0) {modrá = 255; blueDown = false; redDown = true; }}} else {red = 0; zelená = 0; modrá = 255; }} // Funkcia tlače na sériový monitor void printToConsole () {Serial.print ("Aktuálny čas:"); Serial.print (currentHour); Serial.print (":"); Serial.print (currentMinute); Serial.print (":"); Serial.println (currentSecond); Serial.println (""); pre (int i = HOUR_2_START_LOCATION; i <= HOUR_2_END_LOCATION; i ++) {Serial.print (leds ); if (i % 2 == 0) {Serial.print (""); }} Serial.println (""); pre (int i = HOUR_1_START_LOCATION; i <= HOUR_1_END_LOCATION; i ++) {Serial.print (leds ); if (((i - HOUR_1_START_LOCATION + 1) % 3) == 0) {Serial.print (""); }} Serial.println (""); pre (int i = MINUTE_2_START_LOCATION; i <= MINUTE_2_END_LOCATION; i ++) {Serial.print (leds ); if ((((i - MINUTE_2_START_LOCATION) + 1) % 2 == 0) {Serial.print (""); }} Serial.println (""); pre (int i = MINUTE_1_START_LOCATION; i <= MINUTE_1_END_LOCATION; i ++) {Serial.print (leds ); if ((((i - MINUTE_1_START_LOCATION) + 1) % 6 == 0) {Serial.print (""); }} Serial.println (""); for (int i = SECOND_2_START_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {Serial.print (leds ); Serial.print (""); } Serial.println (""); Serial.println (leds [SECOND_1_LOCATION]); Serial.println (); pre (int i = 0; i <NUM_LEDS; i ++) {Serial.print (leds ); } Serial.println (); Serial.println (); }

Krok 27: Užite si to

Obrázok
Obrázok

Na záver, tieto hodiny je úžasné sledovať a akonáhle sa v nich zorientujete, dajú sa relatívne ľahko čítať. Ak robíte svoj vlastný projekt hodín, dajte mi vedieť!

Odporúča: