Sisukord:

Krüptiline seinakell: 27 sammu (piltidega)
Krüptiline seinakell: 27 sammu (piltidega)

Video: Krüptiline seinakell: 27 sammu (piltidega)

Video: Krüptiline seinakell: 27 sammu (piltidega)
Video: Наливной пол по маякам. Ровная и красивая стяжка. #27 2024, November
Anonim
Krüptiline seinakell
Krüptiline seinakell

Aja möödumine on midagi, mida me ei saa kontrollida. See juhtub sama kiirusega, kui me magame, oleme ärkvel, igavleme või oleme kihlatud. Praeguste sündmuste puhul on oluline meeles pidada, et aeg läheb. Kui me ootame aja möödumist, siis miks mitte teha midagi, mis muudab aja möödumise vaatamiseks atraktiivsemaks.

See kell on inspireeritud Saksamaalt Berliinist leitud Mengenlehreuhrist ja seda saab lugeda samal viisil. Nii nagu originaal, näitab see aega valgustatud värviliste väljade abil.

Sellel on 96 LED -i, mis süttivad 52 „numbrilist” piirkonda. Erinevalt originaalist on sellel ümmargune kujundus, mis sisaldab horisontaalse riba paigutuse asemel sekundi rõngast. Välimine riba tähistab sekundeid koos keskmise täpiga, kaks järgmist riba tähistavad minuteid, viimased sisemised ribad aga tunde.

Kui teil on käepärast materjalijääke ja lisaaega, siis miks mitte kasutada seda aega millegi valmistamiseks, mis seda näitab!

Kui teeksin selle projekti uuesti, teeksin selles projektis mõned muudatused. Esiteks värviksin raami ja LED -plaadi musta asemel valgeks. See peegeldaks rohkem valgust läbi esiosa suure läätse. Samuti ootan LED -ide sisestamist lõpuni. Mul oli vaja, et tahvel oleks varem valmis, et see aitaks mind koodi kirjutamisel. Kui see on välistatud, õpime kõigepealt seda lugema!

Pilt
Pilt

Samm: kuidas kella lugeda

Kella loetakse siseringidest välisesse. Nelja välja sisemine rõngas tähistab igaühte viit täistundi, teise rõnga kõrval ka nelja välja, mis tähistavad ühte täistundi, näidates tunni väärtust 24-tunnises vormingus. Kolmas rõngas koosneb üheteistkümnest väljast, mis tähistavad kumbki viis täispikka minutit, järgmises rõngas on veel neli välja, mis tähistavad igaüks ühe minuti. Lõpuks tähistab 29 välja välimine rõngas paarisekundeid, mille keskel olev tuli vilgub, tähistamaks paarituid (kui põleb) või paarisarvulisi (kui ei põle) sekundeid.

Pilt
Pilt

Näiteks on ülaltoodud pildil üks viiest tunnist, 3 ühe tunni numbrist, 8 viiest minutist, 4 ühe minuti numbrist ja 23 kahe sekundi numbrist ning keskmine teine number.

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

Pilt
Pilt

Ülaltoodud aeg on: 3x5 + 0x1: 3x5 + 2x1: 5x2 + 1x1 = 15:17:11 = 15:17:11 PM

Pilt
Pilt

Ülaltoodud aeg on: 3x5 + 2x1: 3x5 + 3x1: 16x2 + 1x1 = 17:18:33 = 5:18:33 PM

Samm: tööriistad ja materjalid

Tööriistad ja materjalid
Tööriistad ja materjalid
Tööriistad ja materjalid
Tööriistad ja materjalid
Tööriistad ja materjalid
Tööriistad ja materjalid

Elektroonika materjalid:

  • Arduino Nano
  • Reaalajas kell
  • Aadressitavad LED -id
  • Toitepistik
  • Toitekaabel
  • USB toitepistik
  • Valgusõltuv takisti ja tasakaalustatud takisti (kui soovite, et see öösel hämarduks)
  • Traat

Puidutöötlemismaterjalid:

  • 3/4 tolli Vineer
  • Õhuke vineer
  • Vanapuit (kasutasin 2x4, kuid lehtpuu sobiks ka)
  • Värv
  • Akrüül 30 x 36 tolli leht (leitud kohalikust kodukauplusest)
  • Akna toon (proovige hankida kohalikku allikat. Kui ükski pole saadaval, leiate siit piisavalt suure lehe)
  • Aknavärvi pealekandmisvedelik (kasutasin pihustuspudelis vett, mis oli segatud beebi šampooniga)
  • Windex
  • Lihapaber
  • Kruvid
  • Pihustusliim
  • Liim
  • Liimipulk

Tööriistad:

  • Joonlaud
  • Xacto nuga
  • Lint
  • Kahepoolne teip
  • Kompass
  • Ringjoone lõikamisseade
  • Pusle
  • Lintsaag
  • Spindli lihvija
  • Palm Sander
  • Ketta Sander
  • Ruuteri tabel
  • Awl
  • Puurid ja puurid/Drivers
  • Klambrid
  • Jootekolb
  • Jootma
  • Traadi eemaldajad

3. samm: mallide kokkupanek

Pange mallid kokku
Pange mallid kokku
Pange mallid kokku
Pange mallid kokku

Suure malli puhul printige see Adobe Readeri plakatiseade abil välja. Katkestage iga paberi veerised ja kleepige kokku. Vertikaalsed, horisontaalsed ja diagonaalsed jooned aitavad malli joondada. Kõikidel lehtedel on väikesed numbrid, mis aitavad neid korrastatuna hoida.

Kõik vajalikud mallid ja failid leiate sammust 26.

4. samm: jämedalt lõigatud ringid

Jämedalt lõigatud ringid
Jämedalt lõigatud ringid
Jämedalt lõigatud ringid
Jämedalt lõigatud ringid

Asetades kaks malli 3/4 tolli vineerilehele, joonistage kompassiga ringid, mis on pisut suuremad kui vaja. Lõika mosaiigi abil välja kare kuju.

Samm: lõigake suuruseks

Lõika suuruseks
Lõika suuruseks
Lõika suuruseks
Lõika suuruseks

Lõika ringid lintsaega ringlõikamisseadme abil lõpliku suurusega.

Samm: rakendage mall

Rakenda mall
Rakenda mall
Rakenda mall
Rakenda mall
Rakenda mall
Rakenda mall

Pihustusliimi abil kandke iga mall ringile. Sisestage nael malli keskele, et see tsentreerida ringile.

Samm: lõigake mall

Lõika mall
Lõika mall
Lõika mall
Lõika mall
Lõika mall
Lõika mall

Lõika mosaiigi abil välja malli iga üksikaken. Kui teil on juurdepääs CNC -le, oleks see samm palju lihtsam! Selle protsessi hõlbustamiseks puurisin igasse aknasse augu. Lõikamisega alustades võib mall hakata maha tulema. Kui see juhtub, saate selle oma kohale kinnitada väikeste teibitükkidega.

8. samm: lihvimine

Lihvimine
Lihvimine
Lihvimine
Lihvimine
Lihvimine
Lihvimine

Pulga, spindllihvija ja peopesa lihvimispaberi abil lihvige ja siluge mosaiigi jämedaid lõikeid.

9. samm: LED -ide puurimine

Puurhoidikud LED -ide jaoks
Puurhoidikud LED -ide jaoks
Puurhoidikud LED -ide jaoks
Puurhoidikud LED -ide jaoks
Puurhoidikud LED -ide jaoks
Puurhoidikud LED -ide jaoks
Puurhoidikud LED -ide jaoks
Puurhoidikud LED -ide jaoks

Märkige iga augu keskosa tiitliga ja puurige valgusdioodide jaoks avad. Kasutasin juhendit, mis aitas hoida külvikut risti oma toorikuga, ja tagaplaati, et vältida puidu väljapuhumist tagaküljel.

Samm: ühendage lauad

Ühendage lauad
Ühendage lauad
Ühendage lauad
Ühendage lauad
Ühendage lauad
Ühendage lauad

Vahetage esi- ja tagaplaat ning jälgige raami osi LED -plaadi tagaküljel. Liigutage raam tagasi LED -plaadi esiküljele ja puurige augud ning keerake tükid kokku.

Lisateabe saamiseks vaadake pildi märkmeid.

Samm: sisestage valgusdioodid

Sisestage valgusdioodid
Sisestage valgusdioodid
Sisestage valgusdioodid
Sisestage valgusdioodid

Lükake LED -id läbi LED -plaadi tagakülje. Aukude vahekaugus peaks olema piisavalt suur, nii et te ei pea juhtmeid katkestama, välja arvatud liikumine ühelt ringilt teisele.

Tagantpoolt algavad valgusdioodid keskelt ja seejärel töötavad vastupäeva, seejärel järgmise rõngani.

12. toiming: kinnitage segment 1

Lisa segment 1
Lisa segment 1
Lisa segment 1
Lisa segment 1
Lisa segment 1
Lisa segment 1

Lõigake 3/4 tolli vineerile kinnitatud šabloonist "Segment 1" välja 9 segmenti (leiate sammust 26). Kinnitage LED -plaadi külge liimi ja klambritega. Kui olete kannatamatu, võite selle kinnitamiseks kasutada ka naelu.

Kui serv on kuiv, lihvige serv ketaslihvimismasinaga.

13. samm: värvige

Värv
Värv
Värv
Värv
Värv
Värv
Värv
Värv

Pihustage värvi nii LED -plaadile kui ka raamile. Kui ma seda uuesti teeksin, oleksin valinud musta värvi asemel valge värvi, kuna see peegeldaks objektiivi paremini.

14. samm: 2. segment

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

Lõigake "Segmendi 2" mallist välja 9 segmenti, mis on kinnitatud puidust, mille paksus on 2 3/8 tolli (leitud punktis 26). Kasutasin poest 2x4 jääke. Paigaldage segmendid kuivaks ja veenduge, et see sobiks hästi bändiklambriga. Kui kõik on korras, katke väljastpoolt maalriteibiga, et liim ei kleepuks, ja laske enne järgmise sammu juurde liikumist vähemalt tund aega kuivada.

15. samm: 3. segment

3. segment
3. segment
3. segment
3. segment
3. segment
3. segment

Lõika mallist "Segment 3" 3/8 tolli paksusest vanarauast välja (lõige 26). Liimige need nii, et 2. segmendi õmblused oleksid iga 3. segmendi keskel. See tugevdab rõngast.

16. samm: sile rõngas ja värv

Sile rõngas ja värv
Sile rõngas ja värv
Sile rõngas ja värv
Sile rõngas ja värv

Ma tegin suure rõnga väljalõigatud tükist kohandatud lihvimisploki. Lihvige rõngas seest ja väljast ning täitke kõik liimimisprotsessi käigus tekkinud praod.

Kui see on sile, kandke paar kihti musta värvi ja läbipaistvat kihti.

Samm: lõigake akrüül

Lõika akrüül
Lõika akrüül
Lõika akrüül
Lõika akrüül
Lõika akrüül
Lõika akrüül
Lõika akrüül
Lõika akrüül

Lõika akrüül ruuduks, mille mõõtmed on 30 x 30 tolli, ja märgi selle keskosa. Kinnitage akrüül kahepoolse teibiga. Eemaldage üleliigne akrüül, kasutades loputusrežiimi otsikut

Samm: rakendage akna tooni

Rakenda akna toon
Rakenda akna toon
Rakenda akna toon
Rakenda akna toon
Rakenda akna toon
Rakenda akna toon

Tolmuvabas keskkonnas eemaldage akrüülilt kaitsekile. Kandke pihusti ja eemaldage akna tooni alus. Kandke aknaklaas kleepuv pool alla. Pigistage kaabitsa või krediitkaardiga akna tooni alt välja kogu vedelik. Kui kõik mullid ja kortsud on eemaldatud, lõigake akna liigne toon terava noaga ära.

19. samm: kinnitage defuser

Kinnitage defuser
Kinnitage defuser
Kinnitage defuser
Kinnitage defuser

Ma kasutasin suurt lihunikupaberit, et toimida lahustina. Asetage paber tasasele pinnale. Katke raami nägu liimipulgaga liimiga. Enne liimi kuivamist asetage kella esikülg paberiga allapoole ja lõigake üleliigne jämedalt. Pärast kuivamist kasutage loputamiseks teravat nuga.

Samm: paigaldage isolatsioon

Rakenda isolatsioon
Rakenda isolatsioon

Ma kasutasin elektrilinti, et hoida toite- ja andmesideühendused lahus.

21. samm: kokkupanek

Pange kokku
Pange kokku
Pange kokku
Pange kokku
Pange kokku
Pange kokku

Eemaldage teine kaitsekiht akrüülist. Asetage akrüül rõnga sisse nii, et akna varjund on ülespoole. Lükake ülejäänud kell rõngasse. Kasutage klambrit kerge surve avaldamiseks, kui auk on läbi rõnga ja LED -tahvli sisse puuritud. See peaks olema umbes 1 1/8 tolli tagant. Olge ettevaatlik ja ärge puurige LED -i. Keerake sõrestikupea kruvi auku. Korda kokku kaheksa kruvi kella ümbermõõdul.

22. samm: kinnituspunktide kinnitamine

Kinnitage kinnituspunktid
Kinnitage kinnituspunktid

Liimiankur osutab kella tagaküljele tagakaane kinnitamiseks. Need on 3/4 tolli paksused ja umbes 2 tolli pikad.

Samm 23: puurimisvõimsus ja LDR -anduri augud

Puurimisvõimsus ja LDR anduri augud
Puurimisvõimsus ja LDR anduri augud

Puurige toitepistiku jaoks läbi kella põhja põhja toiteava ja ülaosas valgust sõltuv takisti (LDR) andur.

Samm: paigaldage elektroonikahoidik

Paigaldage elektroonikahoidik
Paigaldage elektroonikahoidik
Paigaldage elektroonikahoidik
Paigaldage elektroonikahoidik

Paigaldage 3D -prinditud hoidik RTC ja Arduino Nano jaoks. Ühendage kogu elektroonika skeemil näidatud viisil.

25. samm: tagakaas

Tagakaas
Tagakaas
Tagakaas
Tagakaas
Tagakaas
Tagakaas
Tagakaas
Tagakaas

Lõika õhukese vineerist tagakaas, mis on pisut väiksem kui kella väliskülg. Puurige kinnituskohtadesse augud. Leidke selja keskosa ja mõõtke võtmeaukude lõikamiseks 8 tolli mõlemas suunas (USA -s naastude keskustes standardne 16). Puurisin põhiaugu veidi suuremaks kui kruvide ots, mida kavatsen kasutada, ja viilisin augu ühes suunas suuremaks. Värvige mustaks ja kinnitage kate oma kohale.

26. samm: kood ja failid

Jällegi olen paljude siin kasutatavate Arduino raamatukogude kasutamisel üsna uus, nii et olen kindel, et nende kasutamiseks on paremaid viise.

Kirjutasin koodi hõlpsasti värskendatavaks, lähtudes sellest, kui palju LED -e kasutate, kui projekti suurendatakse või vähendatakse. Kõik, mida pead tegema, on värskendada LED -i algus- ja lõpppositsiooni ning seda, kui palju LED -e on iga numbri osa.

Olen lisanud mõned animatsioonid, mis mängivad nii käivitamisel kui ka tunnis. Need on sudo juhuslikud, tuginedes juhusliku arvu generaatorile, mis sellel on.

Saate kella seada värvide vahel liikumiseks või ühele staatiliseks. Sissejuhatuses näidatud aja lugemiseks saate isegi indikaatori numbri esile tõsta.

Muutke ja muutke koodi vastavalt soovile.

#include "RTClib.h"

#include #define NUM_LEDS 96 #define DATA_PIN 3 #define LDR A0 RTC_DS1307 rtc; boolean timeChange = vale; boolean printTime = false; // Seadistage tõene, kui soovite konsoolis väljundit näha. Abiks silumiseks. boolean redDown = tõsi; boolean greenDown = vale; boolean blueDown = vale; loogikatsükkel = vale; // Määra tõene, kui soovid, et kella värvid muudaksid boole'i esiletõstmist = true; // Määra tõene, et tõsta esile viimane number. // Iga ajakonstide rühma alguse ja lõpu asukohad 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; // Kordajad, mida kasutatakse ajakonstendi jagamiseks int MULTIPLIER_FIVE = 5; const int MULTIPLIER_TWO = 2; const int START_UP_DELAY = 1; // Muuda seda, et kiirendada või aeglustada käivitamise animatsiooni const int CYCLE_SPEED = 1; // Muuda siin värvi muutmise tsükli määra (peab olema üle 1) // Muutujate deklareerimine int lastSecond = 0; int currentHour = 0; int currentMinute = 0; int currentSecond = 0; int tund1 = 0; int tund2 = 0; int minut1 = 0; int minut2 = 0; int teine1 = 0; int teine2 = 0; int cycleCount = 1; float fadeValue = 255; float fadeCheck = 255; uint8_t hele = 255; int numberOfAnimations = 5; int juhuslikkus = 0; // Määra värvid uint8_t red = 0; uint8_t roheline = 0; uint8_t sinine = 255; uint8_t highlight_red = 60; uint8_t highlight_green = 60; uint8_t highlight_blue = 255; // Määra ledide massiiv CRGB LEDid [NUM_LEDS]; void setup () {Serial.begin (19200); FastLED.addLeds (ledid, NUM_LEDS); LEDS.setBrightness (hele); FastLED.clear (); rtc.begin (); // Aja määramiseks tühistage allolev rida. // rtc.adjust (DateTime (2020, 2, 19, 23, 59, 50)); // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Startup animation animate (juhuslikkus); } void loop () {// Hangi aeg DateTime now = rtc.now (); praeguneTund = praegu.tund (); currentMinute = now.minute (); currentSecond = now.second (); timeChange = vale; // Kasutage neid aega käsitsi seadistamiseks ilma RTC -ta. Abiks silumiseks // currentHour = 5; // praeguneMinute = 30; // praeguneTeise = 30; // Lähtesta kõik bitid nulli (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB:: Black; } // Määra tund // Määra tund 1 tund1 = (currentHour % MULTIPLIER_FIVE) * LEDS_PER_HOUR_1; // See loeb kokku ajaühiku valgusdioodid, mis süttivad (int i = HOUR_1_START_LOCATION; i 0) // && tund1 <12) {jaoks (int i = (HOUR_1_START_LOCATION + tund1 - 1); i> = (HOUR_1_START_LOCATION + tund1-LEDS_PER_HOUR_1); i--) {ledid = CRGB (esiletõstetud_punane, esiletõstetud_roheline, esiletõstetud_sinine); }} // Määra tund 2 tund2 = (currentHour / MULTIPLIER_FIVE) * LEDS_PER_HOUR_2; // See loeb kokku ajaühiku valgusdioodid, mis süttivad (int i = HOUR_2_START_LOCATION; i 0) // && hour2 <8) {jaoks (int i = (HOUR_2_START_LOCATION + tund2 - 1); i> = (HOUR_2_START_LOCATION + tund2-LEDS_PER_HOUR_2); i--) {ledid = CRGB (esiletõstetud_punane, esiletõstetud_roheline, esiletõstetud_sinine); }} // Määra minut // Määra minut 1 minut1 = (currentMinute % MULTIPLIER_FIVE) * LEDS_PER_MINUTE_1; // See loeb kokku ajaühiku valgusdioodid, mis süttivad (int i = MINUTE_1_START_LOCATION; i 0) // && minute1 <24) {jaoks (int i = (MINUTE_1_START_LOCATION + minut1 - 1); i> = (MINUTE_1_START_LOCATION + minut1-LEDS_PER_MINUTE_1); i--) {ledid = CRGB (esiletõstetud_punane, esiletõstetud_roheline, esiletõstetud_sinine); }} // Määra minut 2 minut2 = (currentMinute / MULTIPLIER_FIVE) * LEDS_PER_MINUTE_2; // See loeb kokku ajaühiku valgusdioodid, mis süttivad (int i = MINUTE_2_START_LOCATION; i 0) // && minute2 <22) {jaoks (int i = (MINUTE_2_START_LOCATION + minut2 - 1); i> = (MINUTE_2_START_LOCATION + minut2-LEDS_PER_MINUTE_2); i--) {ledid = CRGB (esiletõstetud_punane, esiletõstetud_roheline, esiletõstetud_sinine); }} // Määra teiseks if (currentSecond! = LastSecond) {timeChange = true; } // Määra teine 1 sekund1 = currentSecond % MULTIPLIER_TWO; if (second1 == 1) {ledid [SECOND_1_LOCATION] = CRGB (punane, roheline, sinine); } // Määra teine 2 sekund2 = currentSecond / MULTIPLIER_TWO; jaoks (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 (esiletõstetud_punane, esiletõstetud_roheline, esiletõstetud_sinine); }} lastSecond = currentSecond; // Loendage programmi tsüklid ja helistage funktsioonile setColor, et muuta CYCLE_SPEED tsüklite LED -ide värvi. if (cycleCount hele) // {// fadeValue = hele; //} // muidu if (fadeValue <150) // {// fadeValue = 150; //} // LEDS.setBrightness (fadeValue); FastLED.show (); // Praeguse aja printimine konsooli if (timeChange == true && printTime == true) {printToConsole (); }} // Animatsioonifunktsioon lisab siia rohkem animatsioone, kui soovite void animate (int select) {if (select == 0) {for (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (punane, roheline, sinine); FastLED.show (); viivitus (START_UP_DELAY); } jaoks (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {ledid = CRGB:: must; FastLED.show (); viivitus (START_UP_DELAY); }} muu kui (vali == 1) {jaoks (int i = 0; i <250; i ++) {int light = juhuslik (95); LEDid [valgus] = CRGB (punane, roheline, sinine); FastLED.show (); }} else if (select == 2) {leds [0] = CRGB (punane, roheline, sinine); jaoks (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {ledid [SECOND_2_START_LOCATION+i] = CRGB (punane, roheline, sinine); kui (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {viib [MINUTE_1_START_LOCATION + i] = CRGB (punane, roheline, sinine); } kui (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {ledid [MINUTE_2_START_LOCATION + i] = CRGB (punane, roheline, sinine); } kui (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {viib [HOUR_1_START_LOCATION + i] = CRGB (punane, roheline, sinine); } kui (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {ledid [HOUR_2_START_LOCATION + i] = CRGB (punane, roheline, sinine); } viivitus (34); FastLED.show (); }} else if (select == 3) {leds [0] = CRGB (punane, roheline, sinine); jaoks (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {ledid [SECOND_2_END_LOCATION - i] = CRGB (punane, roheline, sinine); kui (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {viib [MINUTE_1_END_LOCATION - i] = CRGB (punane, roheline, sinine); } kui (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {viib [MINUTE_2_END_LOCATION - i] = CRGB (punane, roheline, sinine); } kui (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {viib [HOUR_1_END_LOCATION - i] = CRGB (punane, roheline, sinine); } kui (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {viib [HOUR_2_END_LOCATION - i] = CRGB (punane, roheline,sinine); } viivitus (34); FastLED.show (); }} muidu, kui (valige == 4) {jaoks (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Black; } FastLED.show (); viivitus (200); jaoks (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {ledid = CRGB (punane, roheline, sinine); } FastLED.show (); viivitus (200); jaoks (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {ledid = CRGB:: must; } FastLED.show (); viivitus (200); jaoks (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {ledid = CRGB (punane, roheline, sinine); } FastLED.show (); viivitus (200); jaoks (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {ledid = CRGB:: must; } FastLED.show (); viivitus (200); }} // Värvitsüklifunktsioon void setColor (boolean cycleColors) {if (cycleColors == true) {if (redDown == true && greenDown == false) {red ++; roheline-; kui (roheline <= 0) {punane = 255; redDown = vale; greenDown = tõsi; }} muidu kui (rohelineDown == tõene && blueDown == vale) {roheline ++; sinine-; kui (sinine <= 0) {roheline = 255; greenDown = vale; blueDown = tõsi; }} muu, kui (sinine alla == tõene && punane alla == vale) {sinine ++; punane-; kui (punane <= 0) {sinine = 255; blueDown = vale; redDown = tõsi; }}} muu {punane = 0; roheline = 0; sinine = 255; }} // Funktsioon Print to Serial Monitor void printToConsole () {Serial.print ("Current Time:"); Serial.print (currentHour); Serial.print (":"); Serial.print (currentMinute); Serial.print (":"); Serial.println (currentSecond); Serial.println (""); jaoks (int i = HOUR_2_START_LOCATION; i <= HOUR_2_END_LOCATION; i ++) {Serial.print (leds ); if (i % 2 == 0) {Serial.print (""); }} Serial.println (""); jaoks (int i = HOUR_1_START_LOCATION; i <= HOUR_1_END_LOCATION; i ++) {Serial.print (ledid ); kui ((((i - HOUR_1_START_LOCATION + 1) % 3) == 0) {Serial.print (""); }} Serial.println (""); jaoks (int i = MINUTE_2_START_LOCATION; i <= MINUTE_2_END_LOCATION; i ++) {Serial.print (ledid ); kui ((((i - MINUTE_2_START_LOCATION) + 1) % 2 == 0) {Serial.print (""); }} Serial.println (""); jaoks (int i = MINUTE_1_START_LOCATION; i <= MINUTE_1_END_LOCATION; i ++) {Serial.print (ledid ); kui ((((i - MINUTE_1_START_LOCATION) + 1) % 6 == 0) {Serial.print (""); }} Serial.println (""); jaoks (int i = SECOND_2_START_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {Serial.print (ledid ); Serial.print (""); } Serial.println (""); Serial.println (ledid [SECOND_1_LOCATION]); Serial.println (); for (int i = 0; i <NUM_LEDS; i ++) {Serial.print (ledid ); } Serial.println (); Serial.println (); }

Samm: nautige

Pilt
Pilt

Kokkuvõtteks võib öelda, et seda kella on imeline vaadata ja kui sellest aru saada, on seda suhteliselt lihtne lugeda. Kui teete oma kellaprojekti, andke mulle sellest teada!

Soovitan: