Kazalo:

Kriptična stenska ura: 27 korakov (s slikami)
Kriptična stenska ura: 27 korakov (s slikami)

Video: Kriptična stenska ura: 27 korakov (s slikami)

Video: Kriptična stenska ura: 27 korakov (s slikami)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Julij
Anonim
Kriptična stenska ura
Kriptična stenska ura

Čas ne moremo nadzorovati. Z enako hitrostjo se zgodi, če spimo, budni, dolgčas ali zaročeni. Pri trenutnih dogodkih se morate spomniti, da bo čas minil. Medtem ko čakamo, da mine čas, zakaj ne bi naredili nekaj, zaradi česar je čas bolj privlačen za gledanje.

To uro je navdihnil Mengenlehreuhr v Berlinu v Nemčiji in jo je mogoče brati na enak način. Tako kot izvirnik čas prikazuje s pomočjo osvetljenih, barvnih polj.

Ima 96 LED, ki osvetljujejo 52 -mestna območja. Za razliko od izvirnika ima krožno obliko, ki namesto vodoravne postavitve vključuje sekundni obroč. Zunanji pas označuje sekunde v povezavi s srednjo piko, naslednja dva pasu pa minute, zadnji notranje pasove pa ure.

Če imate pri roki nekaj odpadnega materiala in dodaten čas, zakaj ne bi izkoristili tega časa, da naredite nekaj, kar bo to pokazalo!

Nekaj sprememb bi v tem projektu naredil, če bi ga ponovil. Najprej bi okvir in LED ploščo pobarval v belo, namesto v črno. To bi odsevalo več svetlobe skozi veliko lečo spredaj. Prav tako bi počakal do konca, da vstavim LED. Tabelo sem potreboval za dokončanje prej, da mi je lahko pomagala pri pisanju kode. Najprej se naučimo, kako to prebrati!

Slika
Slika

1. korak: Kako prebrati uro

Ura se bere od notranjih krogov do zunanjih. Notranji obroč štirih polj označuje vsako po pet polnih ur, poleg drugega obroča pa tudi štiri polja, ki označujejo eno polno uro, pri čemer vrednost ur prikazuje v 24-urnem formatu. Tretji obroč je sestavljen iz enajstih polj, ki označujejo po pet polnih minut, naslednji obroč ima še štiri polja, ki označujejo vsako polno minuto. Nazadnje zunanji obroč 29 polj označuje parne sekunde, lučka na sredini utripa, da označuje lihe (ko sveti) ali sodo oštevilčene (ko ne sveti) sekunde.

Slika
Slika

Na zgornji sliki je na primer prižgana 1 od petih urnih številk, 3 enomestnih številk, 8 od petminutnih številk, 4 enomestnih številk ter 23 od dveh drugih številk in srednja druga številka.

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

Slika
Slika

Zgoraj prikazani čas je: 3x5 + 0x1: 3x5 + 2x1: 5x2 + 1x1 = 15:17:11 = 15:17:11 PM

Slika
Slika

Zgoraj prikazani čas je: 3x5 + 2x1: 3x5 + 3x1: 16x2 + 1x1 = 17:18:33 = 17:18:33 PM

2. korak: Orodja in materiali

Orodja in materiali
Orodja in materiali
Orodja in materiali
Orodja in materiali
Orodja in materiali
Orodja in materiali

Materiali za elektroniko:

  • Arduino Nano
  • Ura v realnem času
  • Naslovljive LED diode
  • Napajalni vtič
  • Napajalni kabel
  • USB napajalni vtič
  • Odvisno od svetlobe upor in uravnotežen upor (če želite, da se ponoči zatemni)
  • Žica

Materiali za obdelavo lesa:

  • 3/4 palca. Vezan les
  • Tanka vezana plošča
  • Odpadni les (uporabil sem 2x4s, vendar bi deloval tudi trdi les)
  • Barvanje
  • Akrilna folija 30 x 36 palcev
  • Zatemnitev oken (poskusite ustvariti lokalno. Če ni na voljo, lahko tukaj najdete dovolj velik list)
  • Tekočina za nanašanje barv na okna (v steklenički z razpršilcem sem uporabila vodo, pomešano z otroškim šamponom)
  • Windex
  • Mesarski papir
  • Vijaki
  • Lepilo v spreju
  • Lepilo
  • Lepilo

Orodja:

  • Vladar
  • Xacto nož
  • Trak
  • Dvostranski trak
  • Kompas
  • Kolo za rezanje kroga
  • Sestavljanka
  • Tračna žaga
  • Brusilni brusilnik
  • Palm Sander
  • Brusilnik diskov
  • Tabela usmerjevalnika
  • Awl
  • Vrtalnik in svedri/gonilniki
  • Sponke
  • Spajkalnik
  • Spajkanje
  • Odstranjevalci žice

3. korak: Sestavite predloge

Sestavite predloge
Sestavite predloge
Sestavite predloge
Sestavite predloge

Za veliko predlogo jo natisnite z nastavitvijo plakata v programu Adobe Reader. Odrežite robove za vsak papir in ga skupaj lepite. Navpične, vodoravne in diagonalne črte bodo pomagale pri postavitvi predloge. Vse strani imajo majhne številke, ki jim pomagajo, da so organizirane, če izpadejo.

Vse potrebne predloge in datoteke najdete v koraku 26.

4. korak: Grobo rezani krogi

Grobo rezani krogi
Grobo rezani krogi
Grobo rezani krogi
Grobo rezani krogi

Če postavite dve predlogi na list vezanega lesa 3/4 palca, s kompasom narišite nekoliko večje kroge, kot je potrebno. Z vbodno žago izrežite grobo obliko.

5. korak: Izrežite na velikost

Izrežite na velikost
Izrežite na velikost
Izrežite na velikost
Izrežite na velikost

S krožno žago na tračni žagi izrežite kroge do končne velikosti.

6. korak: Uporabi predlogo

Uporabi predlogo
Uporabi predlogo
Uporabi predlogo
Uporabi predlogo
Uporabi predlogo
Uporabi predlogo

Z lepilom za brizganje vsako šablono nanesite na krog. V sredino predloge vstavite žebelj, da ga postavite na krog.

7. korak: Izrežite predlogo

Izreži predlogo
Izreži predlogo
Izreži predlogo
Izreži predlogo
Izreži predlogo
Izreži predlogo

Z vbodno žago izrežite vsako posamezno okno predloge. Če imate dostop do CNC, bi bil ta korak veliko lažji! V vsakem oknu sem izvrtal luknjo, da bi pomagal pri tem postopku. Ko začnete z rezanjem, se predloga lahko začne odlepiti. Če se to zgodi, ga lahko pritrdite z majhnimi koščki traku.

8. korak: Brušenje

Brušenje
Brušenje
Brušenje
Brušenje
Brušenje
Brušenje

Z brusnim papirjem, nanešenim na palico, vreteno brusilko in brusilko za dlani, pobrusite in zgladite grob rez, ki ga pušča sestavljanka.

9. korak: Drill držite za LED

Drill držal za LED
Drill držal za LED
Drill držal za LED
Drill držal za LED
Drill držal za LED
Drill držal za LED
Držala za svedre za LED
Držala za svedre za LED

Sredino vsake luknje označite s šilom in izvrtajte zračne luknje za LED. Uporabil sem vodnik, ki je pomagal, da je vrtalnik pravokoten na moj obdelovanec, in zadnjo ploščo, da ne bi razstrelil lesa na hrbtu.

10. korak: Združite plošče

Združite plošče
Združite plošče
Združite plošče
Združite plošče
Združite plošče
Združite plošče

Zamenjajte sprednjo in zadnjo ploščo ter sledite delom okvirja na zadnji strani LED plošče. Okvir premaknite nazaj na sprednjo stran LED plošče in izvrtajte luknje ter kose privijte skupaj.

Za več informacij glejte slikovne opombe.

Korak: Vstavite LED

Vstavite LED
Vstavite LED
Vstavite LED
Vstavite LED

Potisnite LED skozi zadnji del LED plošče. Luknje morajo biti razporejene ravno toliko, da vam ne bo treba odrezati žic, razen premikanja iz enega kroga v drugega.

Od zadaj se LED začnejo v sredini in nato tečejo v nasprotni smeri urinega kazalca, nato pa do naslednjega obroča.

12. korak: Pripnite segment 1

Pripni segment 1
Pripni segment 1
Pripni segment 1
Pripni segment 1
Pripni segment 1
Pripni segment 1

Iz predloge "Segment 1", izrezane na 3/4 palčne vezane plošče, izrežite 9 segmentov (najdeno v koraku 26). Pritrdite na LED ploščo z lepilom in sponkami. Če ste nestrpni, ga lahko pritrdite tudi z žeblji.

Ko se posuši, rob obrusite z brusilnikom.

13. korak: Barvanje

Barvanje
Barvanje
Barvanje
Barvanje
Barvanje
Barvanje
Barvanje
Barvanje

Razpršite tako LED ploščo kot okvir. Če bi to spet delal, bi se odločil, da bom namesto črne uporabil belo barvo, saj bi ta bolj odsevala skozi lečo.

14. korak: 2. segment

2. segment
2. segment
2. segment
2. segment
2. segment
2. segment

Iz predloge "Segment 2", pritrjene iz lesa, debelega 2 3/8 palca, izrežite 9 segmentov (najdeno v koraku 26). Uporabil sem nekaj ostankov 2x4 iz trgovine. Segmente suho prilegajte in zagotovite, da se dobro prilegajo s sponko za trak. Če je vse v redu, zunanjost prekrijte s slikarskim trakom, da se lepilo ne zlepi in pustite, da se posuši vsaj eno uro, preden nadaljujete na naslednji korak.

Korak 15: Segment 3

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

Iz predloge "Segment 3", izrezane iz debeline 3/8 palca, izrežite 9 segmentov (najdeno v koraku 26). Lepite jih tako, da so šivi iz segmenta 2 na sredini vsakega segmenta 3. To bo okrepilo obroč.

Korak 16: Gladki obroč in barva

Gladki obroč in barva
Gladki obroč in barva
Gladki obroč in barva
Gladki obroč in barva

Iz izrezanega kosa velikega obroča sem naredil brusni blok po meri. Obrusite notranjo in zunanjo stran obroča ter zapolnite vse razpoke, ki so se morda pojavile med postopkom lepljenja.

Ko je gladka, nanesite nekaj slojev črne barve in prozorno plast.

Korak 17: Izrežite akril

Izrežite akril
Izrežite akril
Izrežite akril
Izrežite akril
Izrežite akril
Izrežite akril
Izrežite akril
Izrežite akril

Izrežite akril na kvadrat velikosti 30 x 30 palcev in označite sredino. Akril pritrdite z dvostranskim trakom. Odstranite odvečni akril z usmerjevalnikom za izravnavo

Korak 18: Uporabi niansiranje oken

Uporabi zatemnitev oken
Uporabi zatemnitev oken
Uporabi zatemnitev oken
Uporabi zatemnitev oken
Uporabi zatemnitev oken
Uporabi zatemnitev oken

V okolju brez prahu odstranite zaščitno folijo z akrila. Nanesite pršilo in odstranite podlago s senčila. Barvo oken nanesite z lepljivo stranjo navzdol. Z otiralnikom ali kreditno kartico iztisnite vso tekočino izpod okenca. Ko odstranite vse mehurčke in gube, z ostrim nožem obrežite odvečno zatemnitev oken.

19. korak: pritrdite defuser

Pritrdite defuzor
Pritrdite defuzor
Priključite defuzor
Priključite defuzor

Uporabil sem velik kos mesarskega papirja, da sem deloval kot razpršilec. Papir položite na ravno površino. Pokrijte stran okvirja z lepilom iz lepilne palice. Preden se lepilo posuši, položite sprednjo stran ure z licem navzdol na papir in presek grobo odrežite. Ko se posuši, z ostrim nožem obrežite vodo.

20. korak: nanesite izolacijo

Nanesite izolacijo
Nanesite izolacijo

Za ločitev napajalnih in podatkovnih vodov sem uporabil električni trak.

21. korak: Sestavite

Sestavite
Sestavite
Sestavite
Sestavite
Sestavite
Sestavite

Odstranite drugo zaščitno plast z akrila. Akril postavite v obroč tako, da bo okno obrnjeno navzgor. Preostanek ure potisnite v obroč. S pomočjo objemke pritiskajte rahlo, medtem ko se skozi obroč in v LED ploščo izvrta luknja. To bi moralo biti približno 1 1/8 palca od zadaj. Pazite, da ne vrtate v LED. V luknjo privijte vijak s špirovcem. Ponovite skupaj osem vijakov po obodu ure.

22. korak: pritrdite sidrne točke

Pritrdite sidrne točke
Pritrdite sidrne točke

Lepilne sidrne točke na zadnji strani ure, na katere se pritrdi zadnji pokrov. Ti so debeli 3/4 palca in dolgi približno 2 palca.

23. korak: Luknje za vrtalno moč in senzor LDR

Luknje za vrtalno moč in senzor LDR
Luknje za vrtalno moč in senzor LDR

Skozi spodnji del ure izvrtajte luknjo za napajanje za vtič in na vrhu luknjo za senzor svetlobno odvisnega upora (LDR).

Korak: Namestite držalo za elektroniko

Namestite držalo za elektroniko
Namestite držalo za elektroniko
Namestite držalo za elektroniko
Namestite držalo za elektroniko

Namestite držalo za 3D tiskanje za RTC in Arduino Nano. Priključite vso elektroniko, kot je prikazano na shemi.

Korak: Zadnji pokrov

Zadnji pokrov
Zadnji pokrov
Zadnji pokrov
Zadnji pokrov
Zadnji pokrov
Zadnji pokrov
Zadnji pokrov
Zadnji pokrov

Izrežite zadnji pokrov iz tankega vezanega lesa, ki je manjši od zunanje ure. V sidrne točke izvrtajte luknje. Poiščite sredino hrbta in izmerite 8 palcev v obe smeri, da izrežete luknje za ključe (standard 16 v centrih za čepe v ZDA). Izvrtal sem glavno luknjo, ki je le večja od glave vijakov, ki jih bom uporabil, in luknjo večjo v eno smer. Pobarvajte črno in pritrdite pokrov na svoje mesto.

Korak 26: Koda in datoteke

Spet sem precej nov pri uporabi številnih tukaj uporabljenih knjižnic Arduino, zato sem prepričan, da obstajajo boljši načini za njihovo uporabo.

Kodo sem napisal tako, da jo je mogoče enostavno posodobiti glede na to, koliko LED diod uporabljate, če je projekt povečan ali znižan. Vse, kar morate storiti, je, da posodobite začetni in končni položaj LED in koliko LED diod je del vsake številke.

Dodal sem nekaj animacij, ki se predvajajo ob zagonu in ob uri. So sudo naključni, ki temeljijo na generatorju naključnih števil, ki jih ima na krovu.

Uro lahko nastavite tako, da se pomika po barvah ali ostane enaka. Lahko celo označite številko indikatorja za lažje branje časa, kot je prikazano v uvodu.

Kodo lahko poljubno uredite in spremenite.

#include "RTClib.h"

#include #define NUM_LEDS 96 #define DATA_PIN 3 #define LDR A0 RTC_DS1307 rtc; logični časChange = false; boolean printTime = false; // Nastavite na true, če želite videti izhod v konzoli. Koristno za odpravljanje napak. boolean redDown = res; boolean greenDown = false; boolean blueDown = false; logični cikel = false; // Nastavite true, če želite, da barve ure krožijo boolean highlight = true; // Nastavi true, da označi 'zadnjo številko'. // Lokacije začetka in konca vsake skupine časa const 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; // Množitelji, ki se uporabljajo za razdelitev časa const int MULTIPLIER_FIVE = 5; const int MULTIPLIER_TWO = 2; const int START_UP_DELAY = 1; // To spremenite tako, da pospešite ali upočasnite zagonsko animacijo const int CYCLE_SPEED = 1; // Tukaj spremenite hitrost za cikel spreminjanja barve (mora biti nad 1) // Razglasite spremenljivke int lastSecond = 0; int currentHour = 0; int currentMinute = 0; int currentSecond = 0; int ura1 = 0; int ura2 = 0; int minute1 = 0; int minute2 = 0; int sekunda1 = 0; int sekunda2 = 0; int cycleCount = 1; fload fadeValue = 255; float fadeCheck = 255; uint8_t svetel = 255; int numberOfAnimations = 5; int naključnost = 0; // Nastavi barve uint8_t rdeče = 0; uint8_t zelena = 0; uint8_t modra = 255; uint8_t highlight_red = 60; uint8_t highlight_green = 60; uint8_t highlight_blue = 255; // Določimo niz LED diod CRGB LED [NUM_LEDS]; void setup () {Serial.begin (19200); FastLED.addLeds (LED, NUM_LEDS); LEDS.setBrightness (svetlo); FastLED.clear (); rtc.begin (); // Spodaj odkomentirajte vrstico za nastavitev časa. // rtc.adjust (DateTime (2020, 2, 19, 23, 59, 50)); // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Animacija zagonske animacije (naključnost); } void loop () {// Get time DateTime now = rtc.now (); currentHour = now.hour (); currentMinute = zdaj.minute (); currentSecond = now.second (); timeChange = false; // Uporabite jih za ročno nastavitev časa brez RTC. Koristno za odpravljanje napak // currentHour = 5; // trenutna minuta = 30; // currentSecond = 30; // Ponastavi vse bite na nič za (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB:: Črna; } // Nastavi uro // Nastavi uro 1 uro1 = (currentHour % MULTIPLIER_FIVE) * LEDS_PER_HOUR_1; // To bo štelo skupno število LED časovne enote, ki zasveti (int i = HOUR_1_START_LOCATION; i 0) // && ura1 <12) {for (int i = (HOUR_1_START_LOCATION + ura1 - 1); i> = (HOUR_1_START_LOCATION + ura1-LEDS_PER_HOUR_1); i--) {leds = CRGB (highlight_red, highlight_green, highlight_blue); }} // Nastavi uro 2 uri2 = (currentHour / MULTIPLIER_FIVE) * LEDS_PER_HOUR_2; // To bo štelo skupno število LED za časovno enoto, ki bo zasvetila (int i = HOUR_2_START_LOCATION; i 0) // && ura2 <8) {for (int i = (HOUR_2_START_LOCATION + ura2 - 1); i> = (HOUR_2_START_LOCATION + ura2-LEDS_PER_HOUR_2); i--) {leds = CRGB (highlight_red, highlight_green, highlight_blue); }} // Nastavi minuto // Nastavi minuto 1 minuto1 = (trenutna minuta % MULTIPLIER_FIVE) * LEDS_PER_MINUTE_1; // To bo štelo skupno število LED za časovno enoto, ki bo zasvetila (int i = MINUTE_1_START_LOCATION; i 0) // && minute1 <24) {for (int i = (MINUTE_1_START_LOCATION + minuta1 - 1); i> = (MINUTE_1_START_LOCATION + minuta1-LEDS_PER_MINUTE_1); i--) {leds = CRGB (highlight_red, highlight_green, highlight_blue); }} // Nastavi minuto 2 minuti2 = (trenutna minuta / MULTIPLIER_FIVE) * LEDS_PER_MINUTE_2; // To bo štelo skupno število LED za časovno enoto, ki zasveti (int i = MINUTE_2_START_LOCATION; i 0) // && minute2 <22) {for (int i = (MINUTE_2_START_LOCATION + minuta2 - 1); i> = (MINUTE_2_START_LOCATION + minuta2-LEDS_PER_MINUTE_2); i--) {leds = CRGB (highlight_red, highlight_green, highlight_blue); }} // Nastavi drugo if (currentSecond! = LastSecond) {timeChange = true; } // Nastavi drugo 1 sekundo1 = currentSecond % MULTIPLIER_TWO; if (second1 == 1) {leds [SECOND_1_LOCATION] = CRGB (rdeča, zelena, modra); } // Nastavi drugo 2 sekundo2 = currentSecond / MULTIPLIER_TWO; za (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 (highlight_red, highlight_green, highlight_blue); }} lastSecond = currentSecond; // Štejemo cikle programa in pokličemo funkcijo setColor, da spremenimo barvo LED -jev v ciklu CYCLE_SPEED. if (cikelCount svetel) // {// fadeValue = svetel; //} // else if (fadeValue <150) // {// fadeValue = 150; //} // LEDS.setBrightness (fadeValue); FastLED.show (); // Natisni trenutni čas na konzolo if (timeChange == true && printTime == true) {printToConsole (); }} // Funkcija animacije tukaj dodaja več animacij, kot želite. Void animate (int select) {if (select == 0) {for (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (rdeča, zelena, modra); FastLED.show (); zamuda (START_UP_DELAY); } za (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: črna; FastLED.show (); zamuda (START_UP_DELAY); }} else if (select == 1) {for (int i = 0; i <250; i ++) {int light = naključno (95); LED diode [luč] = CRGB (rdeča, zelena, modra); FastLED.show (); }} else if (select == 2) {leds [0] = CRGB (rdeča, zelena, modra); za (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {LED [SECOND_2_START_LOCATION+i] = CRGB (rdeča, zelena, modra); če (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {LED [MINUTE_1_START_LOCATION + i] = CRGB (rdeča, zelena, modra); } če (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {LED [MINUTE_2_START_LOCATION + i] = CRGB (rdeča, zelena, modra); } če (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {LED [HOUR_1_START_LOCATION + i] = CRGB (rdeča, zelena, modra); } če (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {LED [HOUR_2_START_LOCATION + i] = CRGB (rdeča, zelena, modra); } zamuda (34); FastLED.show (); }} drugače če (izberite == 3) {leds [0] = CRGB (rdeča, zelena, modra); za (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {LED [SECOND_2_END_LOCATION - i] = CRGB (rdeča, zelena, modra); če (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {LED [MINUTE_1_END_LOCATION - i] = CRGB (rdeča, zelena, modra); } če (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {LED [MINUTE_2_END_LOCATION - i] = CRGB (rdeča, zelena, modra); } če (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {LED [HOUR_1_END_LOCATION - i] = CRGB (rdeča, zelena, modra); } če (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {leds [HOUR_2_END_LOCATION - i] = CRGB (rdeča, zelena,modra); } zamuda (34); FastLED.show (); }} drugače če (izberite == 4) {for (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Black; } FastLED.show (); zamuda (200); za (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (rdeča, zelena, modra); } FastLED.show (); zamuda (200); za (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: črna; } FastLED.show (); zamuda (200); za (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (rdeča, zelena, modra); } FastLED.show (); zamuda (200); za (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: črna; } FastLED.show (); zamuda (200); }} // Barvna ciklična funkcija void setColor (boolean cycleColors) {if (cycleColors == true) {if (redDown == true && greenDown == false) {rdeč ++; zelena--; če (zelena <= 0) {rdeča = 255; redDown = napačno; greenDown = res; }} else if (greenDown == true && blueDown == false) {green ++; modra-; če (modra <= 0) {zelena = 255; greenDown = napačno; blueDown = res; }} else if (blueDown == true && redDown == false) {blue ++; rdeča--; če (rdeča <= 0) {modra = 255; blueDown = false; redDown = res; }}} else {rdeča = 0; zelena = 0; modra = 255; }} // Natisni v serijski monitor funkcija void printToConsole () {Serial.print ("Trenutni čas:"); Serial.print (currentHour); Serial.print (":"); Serial.print (currentMinute); Serial.print (":"); Serial.println (currentSecond); Serial.println (""); za (int i = HOUR_2_START_LOCATION; i <= HOUR_2_END_LOCATION; i ++) {Serial.print (LED ); if (i % 2 == 0) {Serial.print (""); }} Serial.println (""); za (int i = HOUR_1_START_LOCATION; i <= HOUR_1_END_LOCATION; i ++) {Serial.print (LED ); if (((i - HOUR_1_START_LOCATION + 1) % 3) == 0) {Serial.print (""); }} Serial.println (""); za (int i = MINUTE_2_START_LOCATION; i <= MINUTE_2_END_LOCATION; i ++) {Serial.print (LED ); if (((i - MINUTE_2_START_LOCATION) + 1) % 2 == 0) {Serial.print (""); }} Serial.println (""); za (int i = MINUTE_1_START_LOCATION; i <= MINUTE_1_END_LOCATION; i ++) {Serial.print (LED ); if (((i - MINUTE_1_START_LOCATION) + 1) % 6 == 0) {Serial.print (""); }} Serial.println (""); za (int i = SECOND_2_START_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {Serial.print (LED ); Serial.print (""); } Serial.println (""); Serial.println (LED diode [SECOND_1_LOCATION]); Serial.println (); for (int i = 0; i <NUM_LEDS; i ++) {Serial.print (LED ); } Serial.println (); Serial.println (); }

Korak 27: Uživajte

Slika
Slika

Skratka, to uro je čudovito opazovati in ko se navadite nanjo, jo je razmeroma enostavno prebrati. Če izdelate svoj projekt ure, mi to sporočite!

Priporočena: