Talaan ng mga Nilalaman:

Cryptic Wall Clock: 27 Hakbang (na may Mga Larawan)
Cryptic Wall Clock: 27 Hakbang (na may Mga Larawan)

Video: Cryptic Wall Clock: 27 Hakbang (na may Mga Larawan)

Video: Cryptic Wall Clock: 27 Hakbang (na may Mga Larawan)
Video: DR. VICKI BELO's TRANSFORMATION💖🤩#vickibelo #doctor #transformation #viral #trending 2024, Hulyo
Anonim
Cryptic Wall Clock
Cryptic Wall Clock

Ang pagdaan ng oras ay isang bagay na hindi natin makontrol. Nangyayari ito sa parehong rate kung natutulog tayo, gising, inip, o kasintahan. Sa mga kasalukuyang kaganapan, mahalagang tandaan na lilipas ang oras. Habang naghihintay kami para sa oras na lumipas, bakit hindi gumawa ng isang bagay na ginagawang mas kaakit-akit na panoorin ang paglipas ng panahon.

Ang orasan na ito ay inspirasyon ng Mengenlehreuhr na matatagpuan sa Berlin, Alemanya at mababasa sa parehong pamamaraan. Tulad ng orihinal, sinasabi nito ang oras sa pamamagitan ng iluminasyon, kulay na mga patlang.

Nagtatampok ito ng 96 LED's na nagpapagaan ng 52 'digit' na mga rehiyon. Hindi tulad ng orihinal, nagtatampok ito ng isang pabilog na disenyo na may kasamang singsing na segundo, sa halip na isang pahalang na layout ng bar. Ang panlabas na banda ay nagpapahiwatig ng mga segundo kasabay ng gitnang tuldok, ang susunod na dalawang banda ay nagpapahiwatig ng minuto, kasama ang pangwakas na panloob na mga banda na nagpapahiwatig ng oras.

Kung mayroon kang ilang mga scrap material at sobrang oras sa iyong mga kamay, bakit hindi mo gamitin ang oras na ito upang gumawa ng isang bagay na magpapakita nito!

Mayroong ilang mga pagbabago na gagawin ko sa proyektong ito kung gagawin ko itong muli. Una, pipinturahan ko ang frame at LED board na puti sa halip na itim. Masasalamin ito ng higit na ilaw sa pamamagitan ng malaking lens sa harap. Maghihintay din ako hanggang sa katapusan upang maipasok ang mga LED. Kailangan ko ang board upang matapos nang mas maaga upang matulungan ako sa pagsulat ng code. Sa labas ng paraan, alamin muna natin kung paano ito basahin!

Larawan
Larawan

Hakbang 1: Paano Basahin ang Orasan

Ang orasan ay binabasa mula sa panloob na mga bilog hanggang sa panlabas. Ang panloob na singsing ng apat na patlang ay nagpapahiwatig ng limang buong oras bawat isa, sa tabi ng pangalawang singsing, din ng apat na patlang, na nangangahulugang isang buong oras bawat isa, na ipinapakita ang halaga ng oras sa format na 24 na oras. Ang pangatlong singsing ay binubuo ng labing-isang mga patlang, na nagsasaad ng limang buong minuto bawat isa, ang susunod na singsing ay may isa pang apat na mga patlang, na markahan ang isang buong minuto bawat isa. Sa wakas ang panlabas na singsing ng 29 na patlang ay nagpapahiwatig kahit na mga segundo na may ilaw sa gitna na kumikislap upang tukuyin ang kakaiba (kapag naiilawan) o kahit na may bilang (kapag hindi naiilawan) segundo.

Larawan
Larawan

Halimbawa, ang imahe sa itaas ay may 1 sa limang oras na digit, 3 ng isang oras na digit, 8 ng limang minutong digit, 4 ng isang minutong digit, at 23 ng dalawang segundo na digit at ang gitna ng pangalawang digit at nag-ilaw.

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

Larawan
Larawan

Ang oras na ipinakita sa itaas ay: 3x5 + 0x1: 3x5 + 2x1: 5x2 + 1x1 = 15:17:11 = 3:17:11 PM

Larawan
Larawan

Ang oras na ipinakita sa itaas ay: 3x5 + 2x1: 3x5 + 3x1: 16x2 + 1x1 = 17:18:33 = 5:18:33 PM

Hakbang 2: Mga Tool at Materyales

Mga Kasangkapan at Kagamitan
Mga Kasangkapan at Kagamitan
Mga Kasangkapan at Kagamitan
Mga Kasangkapan at Kagamitan
Mga Kasangkapan at Kagamitan
Mga Kasangkapan at Kagamitan

Mga Kagamitan sa Elektronikong:

  • Arduino Nano
  • Oras ng Tunay na Oras
  • Mga address na LED
  • Saksakan
  • Power Cable
  • USB Power Plug
  • Light Dependent Resistor at balanseng risistor (kung nais mong lumabo ito sa gabi)
  • Kawad

Mga Kagamitan sa Paggawa ng kahoy:

  • 3/4 in. Plywood
  • Manipis na Plywood
  • Scrap Wood (Gumamit ako ng 2x4s ngunit gagana rin ang hardwood)
  • Pintura
  • Acrylic 30 x 36 in. Sheet (matatagpuan sa lokal na tindahan ng pagpapabuti ng bahay)
  • Window Tint (subukang maghanap ng lokal. Kung walang magagamit, maaari kang makahanap ng isang sheet na sapat na malaki dito)
  • Fluid ng Application ng Window Tint (Gumamit ako ng tubig na may halong shampoo ng sanggol sa isang bote ng spray)
  • Windex
  • Butcher Paper
  • Mga tornilyo
  • Pagwilig ng Adhesive
  • Pandikit
  • Pandikit

Mga tool:

  • Pinuno
  • Xacto Knife
  • Tape
  • Double Sided Tape
  • Compass
  • Circle Cutting Jig
  • Itinaas ng Jigsaw
  • Bandsaw
  • Spindle Sander
  • Palm Sander
  • Disc Sander
  • Talaan ng Router
  • Awl
  • Mga Drill at Drill Bits / Driver
  • Mga clamp
  • Panghinang
  • Panghinang
  • Mga Striper ng Wire

Hakbang 3: Magtipon ng Mga Template

Magtipon ng Mga Template
Magtipon ng Mga Template
Magtipon ng Mga Template
Magtipon ng Mga Template

Para sa malaking template, i-print ito gamit ang setting ng poster sa Adobe Reader. I-cut off ang mga margin para sa bawat papel at i-tape nang magkasama. Ang mga linya ng patayo, pahalang, at dayagonal ay makakatulong sa paglalagay ng linya sa template. Ang lahat ng mga pahina ay may maliit na mga numero sa mga ito upang matulungan silang panatilihing organisado kung hindi sila naaayos.

Ang lahat ng mga template at file na kinakailangan ay matatagpuan sa Hakbang 26.

Hakbang 4: Mga Magaspang na Gupit na Lupon

Magaspang na Gupit na Lupon
Magaspang na Gupit na Lupon
Magaspang na Gupit na Lupon
Magaspang na Gupit na Lupon

Ang paglalagay ng dalawang mga template sa isang sheet ng 3/4 in. Playwud, gumuhit ng mga bilog nang medyo mas malaki kaysa sa kinakailangan sa isang compass. Gamit ang isang lagari, gupitin ang magaspang na hugis.

Hakbang 5: Gupitin sa Laki

Gupitin sa Laki
Gupitin sa Laki
Gupitin sa Laki
Gupitin sa Laki

Gamit ang isang bilog na paggupit ng jig sa bandaw, gupitin ang mga bilog sa huling laki.

Hakbang 6: Mag-apply ng Template

Ilapat ang Template
Ilapat ang Template
Ilapat ang Template
Ilapat ang Template
Ilapat ang Template
Ilapat ang Template

Gamit ang spray adhesive, ilapat ang bawat template sa isang bilog. Magpasok ng isang kuko sa gitna ng template upang isentro ito sa bilog.

Hakbang 7: Gupitin ang Template

Gupit na Template
Gupit na Template
Gupit na Template
Gupit na Template
Gupit na Template
Gupit na Template

Gamit ang isang lagari, gupitin ang bawat indibidwal na window ng template. Kung mayroon kang access sa isang CNC, ang hakbang na ito ay magiging mas madali! Nag-drill ako ng butas sa bawat window upang makatulong sa prosesong ito. Sa pagsisimula mo ng paggupit, ang template ay maaaring magsimulang mag-off. Kung nangyari ito, maa-secure mo ito sa lugar na may maliliit na piraso ng tape.

Hakbang 8: Sanding

Sanding
Sanding
Sanding
Sanding
Sanding
Sanding

Ang paggamit ng papel de liha na inilapat sa isang stick, isang spindle sander, at palm sander, buhangin at ilinis ang magaspang na hiwa na naiwan ng jigsaw.

Hakbang 9: Hawak ng Drill para sa mga LED

Ang Drill Holds para sa LEDs
Ang Drill Holds para sa LEDs
Ang Drill Holds para sa LEDs
Ang Drill Holds para sa LEDs
Ang Drill Holds para sa LEDs
Ang Drill Holds para sa LEDs
Ang Drill Holds para sa LEDs
Ang Drill Holds para sa LEDs

Markahan ang gitna ng bawat butas ng isang awl at drill clearance hole para sa mga LED. Gumamit ako ng isang gabay upang makatulong na mapanatili ang drill patayo sa aking workpiece at isang backerboard upang hindi maihipan ang kahoy sa likod.

Hakbang 10: Pagsamahin ang mga Lupon

Pagsamahin ang mga Lupon
Pagsamahin ang mga Lupon
Pagsamahin ang mga Lupon
Pagsamahin ang mga Lupon
Pagsamahin ang mga Lupon
Pagsamahin ang mga Lupon

Ipagpalit ang mga board sa harap at likod at subaybayan ang mga bahagi ng frame sa likod ng LED board. Ilipat ang frame pabalik sa harap ng LED board at mag-drill ng mga butas at i-tornilyo ang mga piraso nang magkasama.

Tingnan ang mga tala ng imahe para sa karagdagang impormasyon.

Hakbang 11: Ipasok ang mga LED

Ipasok ang mga LED
Ipasok ang mga LED
Ipasok ang mga LED
Ipasok ang mga LED

Itulak ang mga LED sa likuran ng LED board. Ang mga butas ay dapat na may puwang na sapat na hindi mo na kailangang i-cut ang anumang mga wire maliban sa paglipat mula sa isang bilog patungo sa susunod.

Mula sa likuran, ang mga LED ay nagsisimula sa gitna at pagkatapos ay tatakbo sa counter na pakaliwa pagkatapos ay hanggang sa susunod na singsing.

Hakbang 12: Ikabit ang Bahagi 1

Ikabit ang Segment 1
Ikabit ang Segment 1
Ikabit ang Segment 1
Ikabit ang Segment 1
Ikabit ang Segment 1
Ikabit ang Segment 1

Gupitin ang 9 na mga segment mula sa template na "Segment 1" na nakakabit sa 3/4 in. Playwud (matatagpuan sa hakbang 26). Maglakip sa LED board na may pandikit at clamp. Kung ikaw ay walang pasensya maaari mo ring gamitin ang mga kuko upang i-clamp ito sa lugar.

Kapag tuyo, buhangin ang gilid na mapula gamit ang isang disc sander.

Hakbang 13: Kulayan

Pintura
Pintura
Pintura
Pintura
Pintura
Pintura
Pintura
Pintura

Pagwilig ng pintura kapwa ang LED board at ang frame. Kung gagawin ko ito ulit, pipiliin kong gumamit ng puting pintura sa halip na itim dahil mas masasalamin ito sa pamamagitan ng lens.

Hakbang 14: Segment 2

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

Gupitin ang 9 na mga segment mula sa template na "Segment 2" na nakakabit sa kahoy na 2 3/8 pulgada ang kapal (matatagpuan sa hakbang 26). Gumamit ako ng ilang scrap 2x4s mula sa paligid ng shop. Patuyuin ang mga segment at tiyaking umaangkop ito nang maayos sa isang band clamp. Kung ang lahat ay nag-check out, takpan ang labas ng mga painter tape upang hindi malagkit ang pandikit at matuyo ng kahit isang oras bago lumipat sa susunod na hakbang.

Hakbang 15: Segment 3

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

Gupitin ang 9 na mga segment mula sa template na "Segment 3" na nakalakip sa 3/8 in na makapal na scrapwood (matatagpuan sa hakbang 26). Kola ang mga ito upang ang mga tahi mula sa Segment 2 ay nasa gitna ng bawat Segment 3. Palakasin nito ang singsing.

Hakbang 16: Makinis na singsing at Kulayan

Makinis na singsing at Kulayan
Makinis na singsing at Kulayan
Makinis na singsing at Kulayan
Makinis na singsing at Kulayan

Gumawa ako ng isang pasadyang bloke ng sanding mula sa offcut na piraso ng malaking singsing. Buhangin ang loob at labas ng singsing at punan ang anumang mga bitak na maaaring lumitaw sa proseso ng pandikit.

Kapag makinis, maglagay ng ilang mga coats ng itim na pintura at malinaw na amerikana.

Hakbang 17: Gupitin ang Acrylic

Gupitin ang Acrylic
Gupitin ang Acrylic
Gupitin ang Acrylic
Gupitin ang Acrylic
Gupitin ang Acrylic
Gupitin ang Acrylic
Gupitin ang Acrylic
Gupitin ang Acrylic

Gupitin ang acrylic sa isang parisukat na may sukat na 30 x 30 in. At markahan ang gitna. Ikabit ang acrylic na may double sided tape. Gamit ang isang flush trim router bit, alisin ang labis na acrylic

Hakbang 18: Mag-apply ng Window Tint

Ilapat ang Window Tint
Ilapat ang Window Tint
Ilapat ang Window Tint
Ilapat ang Window Tint
Ilapat ang Window Tint
Ilapat ang Window Tint

Sa isang dust na kapaligiran, alisin ang proteksiyon na pelikula mula sa acrylic. Mag-apply ng spray at alisin ang pag-back sa window ng tint. Ilapat ang window tint sticky side pababa. Gamit ang isang squeegee o credit card, pisilin ang lahat ng likido mula sa ilalim ng window ng tint. Kapag naalis na ang lahat ng mga bula at kunot, gupitin ang labis na window tint gamit ang isang matalim na kutsilyo.

Hakbang 19: I-attach ang Defuser

Maglakip ng Defuser
Maglakip ng Defuser
Maglakip ng Defuser
Maglakip ng Defuser

Gumamit ako ng isang malaking piraso ng butcher paper upang kumilos bilang isang defuser. Ilatag ang papel sa isang patag na ibabaw. Takpan ang mukha ng frame ng kola mula sa isang pandikit. Bago matuyo ang pandikit, ihiga ang harapan ng relo sa papel at gupitin ang sobra. Kapag tuyo, gumamit ng isang matalim na kutsilyo upang i-trim ang flush.

Hakbang 20: Mag-apply ng pagkakabukod

Ilapat ang pagkakabukod
Ilapat ang pagkakabukod

Gumamit ako ng electrical tape upang mapanatili ang hiwalay ng mga linya ng kuryente at data.

Hakbang 21: Magtipon

Magtipun-tipon
Magtipun-tipon
Magtipun-tipon
Magtipun-tipon
Magtipun-tipon
Magtipun-tipon

Alisin ang iba pang proteksiyon layer mula sa acrylic. Ilagay ang acrylic sa loob ng singsing na may gilid na bintana na hindi paitaas. I-slide ang natitirang orasan sa ring. Gumamit ng isang clamp upang maglapat ng light pressure habang ang isang butas ay na-drill sa pamamagitan ng singsing at sa LED board. Ito ay dapat na humigit-kumulang na 1 1/8 pulgada mula sa likuran. Mag-ingat na hindi mag-drill sa isang LED. I-tornilyo ang isang tornilyo ng truss head sa butas. Ulitin para sa isang kabuuang walong mga turnilyo sa paligid ng perimeter ng orasan.

Hakbang 22: Maglakip ng Mga Punto ng Anchor

Maglakip ng Mga Punto ng Anchor
Maglakip ng Mga Punto ng Anchor

Itinuturo ng pandikit ang anchor sa likod ng orasan para ikabit ng likod na takip. Ang mga ito ay 3/4 in. Makapal at halos 2 sa. Ang haba.

Hakbang 23: Lakas ng Drill at LDR Sensor Holes

Drill Power at LDR Sensor Holes
Drill Power at LDR Sensor Holes

Mag-drill ng butas ng kuryente sa ilalim ng orasan para sa power plug at isang butas sa itaas para sa light dependant resistor (LDR) sensor.

Hakbang 24: Mag-install ng Hawak ng Electronics

Mag-install ng Electronics Holder
Mag-install ng Electronics Holder
Mag-install ng Electronics Holder
Mag-install ng Electronics Holder

I-install ang 3D na naka-print na may-ari para sa RTC at Arduino Nano. Ikonekta ang lahat ng electronics tulad ng ipinakita sa eskematiko.

Hakbang 25: Balik-Takip

Takip sa likod
Takip sa likod
Takip sa likod
Takip sa likod
Takip sa likod
Takip sa likod
Takip sa likod
Takip sa likod

Gupitin ang isang takip sa likod mula sa manipis na playwud na mas maliit kaysa sa labas ng orasan. Mag-drill ng mga butas sa mga anchor point. Hanapin ang gitna ng likod at sukatin ang 8 pulgada sa alinmang direksyon upang i-cut ang mga keyhole (karaniwang 16 sa mga center para sa studs sa US). Nag-drill ako ng pangunahing butas na mas malaki lamang sa ulo ng mga turnilyo na gagamitin ko at isinampa ang butas na mas malaki sa isang direksyon. Kulayan ng itim at ilakip ang takip sa lugar.

Hakbang 26: Code at Mga File

Muli, medyo bago ako sa paggamit ng maraming mga silid-aklatan ng Arduino na ginamit dito kaya't sigurado akong may mas mahusay na mga paraan upang magamit ang mga ito.

Sinulat ko ang code upang madaling ma-update batay sa kung gaano karaming mga LED ang iyong ginagamit kung ang proyekto ay na-scale pataas o pababa. Ang kailangan mo lang gawin ay i-update ang mga posisyon ng pagsisimula at pagtatapos ng LED pati na rin kung gaano karaming mga LED ang bahagi ng bawat digit.

Nagdagdag ako ng ilang mga animasyon na nagpe-play sa pagsisimula pati na rin sa oras. Ang mga ito ay random na sudo batay sa random number generator na mayroon ito sa board.

Maaari mong itakda ang orasan upang mag-ikot sa mga kulay o manatiling static sa isa. Maaari mo ring i-highlight ang digit ng tagapagpahiwatig upang matulungan ang oras ng pagbabasa tulad ng ipinakita sa panimula.

Huwag mag-atubiling i-edit at baguhin ang code ayon sa gusto mo.

# isama ang "RTClib.h"

#include #define NUM_LEDS 96 #define DATA_PIN 3 #define LDR A0 RTC_DS1307 rtc; boolean timeChange = false; boolean printTime = false; // Itakda sa totoo kung nais mong makita ang output sa console. Nakatutulong para sa pag-debug. boolean redDown = totoo; boolean greenDown = false; boolean blueDown = false; ikot ng boolean = false; // Itakda ang totoo kung nais mo ang mga kulay ng orasan upang ikot ang boolean highlight = totoo; // Itakda ang totoo upang i-highlight ang 'huling digit'. // Mga lokasyon ng pagsisimula at pagtatapos ng bawat pangkat ng oras 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; // Multipliers used to split up time const int MULTIPLIER_FIVE = 5; Const int MULTIPLIER_TWO = 2; const int START_UP_DELAY = 1; // Baguhin ito upang pabilisin o pabagalin ang startup na animasyon na nasa int CYCLE_SPEED = 1; // Baguhin ang rate dito para sa siklo ng pagbabago ng kulay (dapat nasa itaas ng 1) // Ideklara ang mga variable na int lastSecond = 0; int kasalukuyangHour = 0; int currentMinute = 0; int currentSecond = 0; int oras1 = 0; int oras2 = 0; int minuto1 = 0; int minuto2 = 0; int segundo1 = 0; int segundo2 = 0; int cycleCount = 1; float fadeValue = 255; float fadeCheck = 255; uint8_t bright = 255; int numberOfAnimations = 5; int randomness = 0; // Set Colors uint8_t red = 0; uint8_t berde = 0; uint8_t blue = 255; uint8_t highlight_red = 60; uint8_t highlight_green = 60; uint8_t highlight_blue = 255; // Tukuyin ang hanay ng mga leds CRGB leds [NUM_LEDS]; void setup () {Serial.begin (19200); FastLED.addLeds (leds, NUM_LEDS); LEDS.setBightness (maliwanag); FastLED.clear (); rtc.begin (); // Uncomment line sa ibaba upang magtakda ng oras. // rtc.adjust (DateTime (2020, 2, 19, 23, 59, 50)); // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Startup animation animate (randomness); } void loop () {// Kumuha ng oras DateTime ngayon = rtc.now (); kasalukuyangHour = ngayon.hour (); currentMinute = now.minute (); currentSecond = now.second (); timeChange = false; // Gamitin ang mga ito upang manu-manong magtakda ng oras nang walang RTC. Nakatutulong para sa pag-debug // kasalukuyangHour = 5; // currentMinute = 30; // currentSecond = 30; // Reset all bits to zero for (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB:: Itim; } // Itakda ang Oras // Itakda ang oras 1 oras1 = (kasalukuyangHour% MULTIPLIER_FIVE) * LEDS_PER_HOUR_1; // Bibilangin nito ang kabuuang LEDs ng unit ng oras upang magaan para sa (int i = HOUR_1_START_LOCATION; i 0) // && hour1 <12) {para (int i = (HOUR_1_START_LOCATION + hour1 - 1); i> = (HOUR_1_START_LOCATION + hour1 - LEDS_PER_HOUR_1); i--) {leds = CRGB (highlight_red, highlight_green, highlight_blue); }} // Itakda ang oras 2 oras2 = (kasalukuyangHour / MULTIPLIER_FIVE) * LEDS_PER_HOUR_2; // Bibilangin nito ang kabuuang LEDs ng unit ng oras upang magaan para sa (int i = HOUR_2_START_LOCATION; i 0) // && hour2 <8) {para (int i = (HOUR_2_START_LOCATION + hour2 - 1); i> = (HOUR_2_START_LOCATION + hour2 - LEDS_PER_HOUR_2); i--) {leds = CRGB (highlight_red, highlight_green, highlight_blue); }} // Itakda ang Minuto // Itakda ang minuto 1 minuto1 = (kasalukuyangMinute% MULTIPLIER_FIVE) * LEDS_PER_MINUTE_1; // Bibilangin nito ang kabuuang LEDs ng unit ng oras upang magaan para sa (int i = MINUTE_1_START_LOCATION; i 0) // && minute1 <24) {para sa (int i = (MINUTE_1_START_LOCATION + minuto1 - 1); i> = (MINute_1_START_LOCATION + minuto1 - LEDS_PER_MINUTE_1); i--) {leds = CRGB (highlight_red, highlight_green, highlight_blue); }} // Itakda ang minuto 2 minuto2 = (kasalukuyangMinute / MULTIPLIER_FIVE) * LEDS_PER_MINUTE_2; // Bibilangin nito ang kabuuang LEDs ng unit ng oras upang magaan para sa (int i = MINUTE_2_START_LOCATION; i 0) // && minuto2 <22) {para (int i = (MINUTE_2_START_LOCATION + minuto2 - 1); i> = (MINute_2_START_LOCATION + minuto2 - LEDS_PER_MINUTE_2); i--) {leds = CRGB (highlight_red, highlight_green, highlight_blue); }} // Itakda ang Pangalawa kung (currentSecond! = LastSecond) {timeChange = true; } // Itakda ang pangalawang 1 segundo1 = kasalukuyangSecond% MULTIPLIER_TWO; kung (second1 == 1) {leds [SECOND_1_LOCATION] = CRGB (pula, berde, asul); } // Itakda ang pangalawang 2 segundo2 = kasalukuyangSecond / MULTIPLIER_TWO; para sa (int i = SECOND_2_START_LOCATION; i 0) // && pangalawa <29) {para (int i = (SECOND_2_START_LOCATION + segundo2 - 1); i> = (SECOND_2_START_LOCATION + segundo2 - 1); i--) {leds = CRGB (highlight_red, highlight_green, highlight_blue); }} lastSecond = currentSecond; // Bilangin ang mga pag-ikot ng programa at tawagan ang pag-andar ng setColor upang baguhin ang kulay ng mga LED na kailanman CYCLE_SPEED cycle. kung (cycleCount maliwanag) // {// fadeValue = maliwanag; //} // else kung (fadeValue <150) // {// fadeValue = 150; //} // LEDS.setBightness (fadeValue); FastLED.show (); // I-print ang kasalukuyang oras sa console kung (timeChange == true && printTime == true) {printToConsole (); }} // Animation function na magdagdag ng higit pang mga animasyon dito hangga't nais mong i-void ang animate (int select) {kung (select == 0) {para (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (pula, berde, asul); FastLED.show (); antala (START_UP_DELAY); } para sa (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Itim; FastLED.show (); antala (START_UP_DELAY); }} iba pa kung (piliin ang == 1) {para sa (int i = 0; i <250; i ++) {int light = random (95); leds [light] = CRGB (pula, berde, asul); FastLED.show (); }} iba pa kung (piliin ang == 2) {leds [0] = CRGB (pula, berde, asul); para sa (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {leds [SECOND_2_START_LOCATION + i] = CRGB (pula, berde, asul); kung (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {leds [MINUTE_1_START_LOCATION + i] = CRGB (pula, berde, asul); } kung (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {leds [MINUTE_2_START_LOCATION + i] = CRGB (pula, berde, asul); } kung (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {leds [HOUR_1_START_LOCATION + i] = CRGB (pula, berde, asul); } kung (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {leds [HOUR_2_START_LOCATION + i] = CRGB (pula, berde, asul); } pagkaantala (34); FastLED.show (); }} iba pa kung (piliin ang == 3) {leds [0] = CRGB (pula, berde, asul); para sa (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {leds [SECOND_2_END_LOCATION - i] = CRGB (pula, berde, asul); kung (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {leds [MINUTE_1_END_LOCATION - i] = CRGB (pula, berde, asul); } kung (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {leds [MINUTE_2_END_LOCATION - i] = CRGB (pula, berde, asul); } kung (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {leds [HOUR_1_END_LOCATION - i] = CRGB (pula, berde, asul); } kung (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {leds [HOUR_2_END_LOCATION - i] = CRGB (pula, berde,bughaw); } pagkaantala (34); FastLED.show (); }} iba pa kung (piliin ang == 4) {para sa (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Itim; } FastLED.show (); pagkaantala (200); para sa (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (pula, berde, asul); } FastLED.show (); pagkaantala (200); para sa (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Itim; } FastLED.show (); pagkaantala (200); para sa (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (pula, berde, asul); } FastLED.show (); pagkaantala (200); para sa (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Itim; } FastLED.show (); pagkaantala (200); }} // Kulay ng pag-andar sa pagbibisikleta void setColor (boolean cycleColors) {if (cycleColors == true) {if (redDown == true && greenDown == false) {red ++; berde--; kung (berde <= 0) {pula = 255; redDown = false; greenDown = totoo; }} iba pa kung (greenDown == true && blueDown == false) {green ++; bughaw--; kung (asul <= 0) {berde = 255; greenDown = false; blueDown = totoo; }} iba pa kung (blueDown == true && redDown == false) {blue ++; pula--; kung (pula <= 0) {asul = 255; blueDown = false; redDown = totoo; }}} iba pa {pula = 0; berde = 0; asul = 255; }} // I-print sa Serial Monitor function na walang bisa na printToConsole () {Serial.print ("Kasalukuyang Oras:"); Serial.print (kasalukuyangHour); Serial.print (":"); Serial.print (currentMinute); Serial.print (":"); Serial.println (kasalukuyangSecond); Serial.println (""); para sa (int i = HOUR_2_START_LOCATION; i <= HOUR_2_END_LOCATION; i ++) {Serial.print (leds ); kung (i% 2 == 0) {Serial.print (""); }} Serial.println (""); para sa (int i = HOUR_1_START_LOCATION; i <= HOUR_1_END_LOCATION; i ++) {Serial.print (leds ); kung (((i - HOUR_1_START_LOCATION + 1)% 3) == 0) {Serial.print (""); }} Serial.println (""); para sa (int i = MINUTE_2_START_LOCATION; i <= MINUTE_2_END_LOCATION; i ++) {Serial.print (leds ); kung (((i - MINUTE_2_START_LOCATION) + 1)% 2 == 0) {Serial.print (""); }} Serial.println (""); para sa (int i = MINUTE_1_START_LOCATION; i <= MINUTE_1_END_LOCATION; i ++) {Serial.print (leds ); kung (((i - MINUTE_1_START_LOCATION) + 1)% 6 == 0) {Serial.print (""); }} Serial.println (""); para sa (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 (); para sa (int i = 0; i <NUM_LEDS; i ++) {Serial.print (leds ); } Serial.println (); Serial.println (); }

Hakbang 27: Mag-enjoy

Larawan
Larawan

Sa konklusyon, ang orasan na ito ay napakagandang panoorin at sa sandaling makuha mo ito, medyo madali itong basahin. Kung gumawa ka ng iyong sariling proyekto sa orasan, ipaalam sa akin!

Inirerekumendang: