Përmbajtje:

Ora kriptike e murit: 27 hapa (me fotografi)
Ora kriptike e murit: 27 hapa (me fotografi)

Video: Ora kriptike e murit: 27 hapa (me fotografi)

Video: Ora kriptike e murit: 27 hapa (me fotografi)
Video: ЗА ПОРТАЛАМИ (Шокирующие исчезновения) - паранормальная тайна? 2024, Korrik
Anonim
Ora kriptike e murit
Ora kriptike e murit

Kalimi i kohës është diçka që ne nuk mund ta kontrollojmë. Ndodh me të njëjtën ritëm nëse jemi duke fjetur, zgjuar, të mërzitur ose të fejuar. Me ngjarjet aktuale, është e rëndësishme të mbani mend se koha do të kalojë. Ndërsa presim që koha të kalojë, pse të mos bëjmë diçka që e bën kalimin e kohës më tërheqës për tu parë.

Kjo orë është frymëzuar nga Mengenlehreuhr e gjetur në Berlin, Gjermani dhe mund të lexohet në të njëjtën mënyrë. Ashtu si origjinali, ai tregon kohën me anë të fushave të ndriçuara, me ngjyra.

Ajo përmban 96 LED që ndriçojnë zonat 52 'shifrore'. Ndryshe nga origjinali, ai përmban një dizajn rrethor që përfshin një unazë sekondash, në vend të një paraqitjeje të shiritit horizontal. Brezi i jashtëm tregon sekonda në lidhje me pikën e mesme, dy brezat e ardhshëm tregojnë minuta, me brezat e brendshëm përfundimtar që tregojnë orët.

Nëse keni pak mbeturina dhe kohë shtesë në duar, pse të mos e përdorni këtë kohë për të bërë diçka që do ta tregojë!

Ka disa ndryshime që do të bëja në këtë projekt nëse do ta bëja përsëri. Së pari, unë do të pikturoja kornizën dhe tabelën LED të bardhë në vend të zi. Kjo do të reflektonte më shumë dritë përmes lenteve të mëdha në pjesën e përparme. Unë gjithashtu do të prisja deri në fund për të futur LED -të. Kisha nevojë që tabela të përfundonte më herët, kështu që mund të më ndihmonte me shkrimin e kodit. Me këtë jashtë rrugës, le të mësojmë së pari si ta lexojmë!

Imazhi
Imazhi

Hapi 1: Si të lexoni orën

Ora lexohet nga rrathët e brendshëm në të jashtëm. Unaza e brendshme e katër fushave tregon pesë orë të plota secila, krahas unazës së dytë, gjithashtu të katër fushave, të cilat tregojnë një orë të plotë secila, duke shfaqur vlerën e orës në formatin 24-orësh. Unaza e tretë përbëhet nga njëmbëdhjetë fusha, të cilat tregojnë pesë minuta të plota secila, unaza tjetër ka katër fusha të tjera, të cilat shënojnë nga një minutë të plotë secila. Së fundi, unaza e jashtme e 29 fushave shënon çift sekondash me dritën në qendër që pulson për të treguar sekonda tek (kur ndizet) ose numër çift (kur nuk ndriçon).

Imazhi
Imazhi

Për shembull, imazhi i mësipërm ka 1 nga shifrat prej pesë orësh, 3 nga shifrat e një ore, 8 nga shifrat me pesë minuta, 4 nga shifrat e një minute, dhe 23 nga dy shifrat e dyta dhe shifra e dytë e mesme ndriçohet.

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

Imazhi
Imazhi

Koha e treguar më sipër është: 3x5 + 0x1: 3x5 + 2x1: 5x2 + 1x1 = 15:17:11 = 3:17:11 pasdite

Imazhi
Imazhi

Koha e treguar më sipër është: 3x5 + 2x1: 3x5 + 3x1: 16x2 + 1x1 = 17:18:33 = 5:18:33 PM

Hapi 2: Mjetet dhe materialet

Mjetet dhe materialet
Mjetet dhe materialet
Mjetet dhe materialet
Mjetet dhe materialet
Mjetet dhe materialet
Mjetet dhe materialet

Materialet elektronike:

  • Arduino Nano
  • Ora në kohë reale
  • LED të adresueshëm
  • Priza e energjisë
  • Kabllo të energjisë
  • Prizë USB për rrymë
  • Rezistencë e varur nga drita dhe rezistencë e ekuilibruar (nëse dëshironi që ajo të errësohet gjatë natës)
  • Tela

Materialet e përpunimit të drurit:

  • 3/4 in. Kompensatë
  • Kompensatë e hollë
  • Skrap druri (kam përdorur 2x4 por druri i fortë do të funksiononte gjithashtu)
  • Bojë
  • Akrilik 30 x 36 in. Fletë (gjendet në dyqanin lokal të përmirësimit të shtëpisë)
  • Ngjyra e dritares (përpiquni të buroni në vend. Nëse asnjë nuk është në dispozicion, mund të gjeni një fletë mjaft të madhe këtu)
  • Lëngu i aplikimit të nuancës së dritares (kam përdorur ujë të përzier me shampon për fëmijë në një shishe llak)
  • Windex
  • Letër kasapi
  • Vida
  • Ngjitës spërkatës
  • Zam
  • Ngjitese

Mjetet:

  • Sundimtar
  • Thikë Xacto
  • Kasetë
  • Shirit Dyfishtë
  • Busull
  • Jig Prerja e Rrethit
  • Jigsaw
  • Sharrë brezi
  • Gërmues gishti
  • Palm Sander
  • Disk Sander
  • Tabela e ruterit
  • Fyell
  • Stërvitje dhe stërvitje Bits/Drivers
  • Kapëse
  • Makine per ngjitjen e metalit
  • Saldator
  • Zhveshëset me tela

Hapi 3: Mblidhni modele

Mblidhni modele
Mblidhni modele
Mblidhni modele
Mblidhni modele

Për shabllonin e madh, printojeni duke përdorur cilësimin e posterit në Adobe Reader. Shkurtoni kufijtë për secilën letër dhe kasetë së bashku. Linjat vertikale, horizontale dhe diagonale do të ndihmojnë në rreshtimin e modelit. Të gjitha faqet kanë numra të vegjël në to për t'i mbajtur ato të organizuara nëse bien jashtë funksionit.

Të gjithë modelet dhe skedarët e nevojshëm gjenden në Hapin 26.

Hapi 4: Rrathët e Prerë të Përafërt

Rrathët e Prerë të Përafërt
Rrathët e Prerë të Përafërt
Rrathët e Prerë të Përafërt
Rrathët e Prerë të Përafërt

Duke i vendosur të dy shabllonet në një fletë kompensatë 3/4 in, vizatoni rrathë pak më të mëdhenj seç duhet me një busull. Duke përdorur një bashkim pjesësh figure, prerë formën e përafërt.

Hapi 5: Pritini në Madhësi

Pritini në Madhësi
Pritini në Madhësi
Pritini në Madhësi
Pritini në Madhësi

Duke përdorur një bashkim pjesësh prerëse rrethore në sharrë, prerë rrathët në madhësinë përfundimtare.

Hapi 6: Aplikoni modelin

Aplikoni modelin
Aplikoni modelin
Aplikoni modelin
Aplikoni modelin
Aplikoni modelin
Aplikoni modelin

Duke përdorur ngjitësin me llak, aplikoni çdo shabllon në një rreth. Vendosni një gozhdë në qendër të shabllonit për ta përqendruar atë në rreth.

Hapi 7: Prerë modelin

Shabllon i prerë
Shabllon i prerë
Shabllon i prerë
Shabllon i prerë
Shabllon i prerë
Shabllon i prerë

Duke përdorur një bashkim pjesësh figure, prerë çdo dritare individuale të shabllonit. Nëse keni qasje në një CNC, ky hap do të ishte shumë më i lehtë! Unë shpova një vrimë në secilën dritare për të ndihmuar me këtë proces. Ndërsa filloni të prerë, shablloni mund të fillojë të dalë. Nëse kjo ndodh, mund ta siguroni në vend me copa të vogla shiriti.

Hapi 8: Lustrim

Lëmues
Lëmues
Lëmues
Lëmues
Lëmues
Lëmues

Përdorimi i letrës zmerile të aplikuar në një shkop, një gërryes gishtash dhe rërës së palmës, rëroni dhe zbutni prerjen e përafërt të lënë nga bashkim pjesësh figure.

Hapi 9: Mbaj stërvitje për LED

Stërvitja mban për LED
Stërvitja mban për LED
Stërvitja mban për LED
Stërvitja mban për LED
Stërvitja mban për LED
Stërvitja mban për LED
Stërvitja mban për LED
Stërvitja mban për LED

Shënoni qendrën e secilës vrimë me një fëndyell dhe shponi vrima për LED. Kam përdorur një udhëzues për të mbajtur stërvitjen pingul me pjesën time të punës dhe një tabelë të pasme për të mos fryrë drurin në anën e pasme.

Hapi 10: Kombinoni bordet

Bordet e Kombinimit
Bordet e Kombinimit
Bordet e Kombinimit
Bordet e Kombinimit
Bordet e Kombinimit
Bordet e Kombinimit

Ndërroni bordet e përparme dhe të pasme dhe gjurmoni pjesë të kornizës në pjesën e pasme të tabelës LED. Zhvendoseni kornizën përsëri në pjesën e përparme të tabelës LED dhe shponi vrima dhe vidhosini pjesët së bashku.

Shih shënimet e imazhit për më shumë informacion.

Hapi 11: Fut LEDs

Fut LEDs
Fut LEDs
Fut LEDs
Fut LEDs

Shtyjini LED -et në pjesën e pasme të tabelës LED. Vrimat duhet të jenë të hapura aq sa të mos keni nevojë të prisni tela përveçse të lëvizni nga një rreth në tjetrin.

Nga pjesa e pasme, LED -të fillojnë në qendër dhe pastaj funksionojnë në drejtim të kundërt të akrepave të orës dhe deri në unazën tjetër.

Hapi 12: Bashkangjitni segmentin 1

Bashkangjitni segmentin 1
Bashkangjitni segmentin 1
Bashkangjitni segmentin 1
Bashkangjitni segmentin 1
Bashkangjitni segmentin 1
Bashkangjitni segmentin 1

Pritini 9 segmente nga shablloni "Segmenti 1" i bashkangjitur në kompensatë 3/4 in. (Gjendet në hapin 26). Bashkangjiteni në tabelën LED me zam dhe kapëset. Nëse jeni të paduruar, ju gjithashtu mund të përdorni thonjtë për ta kapur atë në vend.

Pasi të jetë tharë, lyejeni skajin me një shpues disk.

Hapi 13: Ngjyrosni

Bojë
Bojë
Bojë
Bojë
Bojë
Bojë
Bojë
Bojë

Spërkatni bojën si bordin LED ashtu edhe kornizën. Nëse do ta bëja përsëri, do të kisha zgjedhur të përdor bojë të bardhë në vend të zezë pasi do të ishte më reflektuese përmes lenteve.

Hapi 14: Segmenti 2

Segmenti 2
Segmenti 2
Segmenti 2
Segmenti 2
Segmenti 2
Segmenti 2

Pritini 9 segmente nga shablloni "Segmenti 2" i bashkangjitur nga druri i trashë 2 3/8 inç (gjendet në hapin 26). Kam përdorur disa copa 2x4 nga rreth dyqani. Përshtateni në mënyrë të thatë segmentet dhe sigurohuni që të përshtatet mirë me një kapëse brezi. Nëse gjithçka del jashtë, mbulojeni pjesën e jashtme me shirit ngjyrues për të mos ngjitur ngjitësin dhe lëreni të thahet për të paktën një orë para se të kaloni në hapin tjetër.

Hapi 15: Segmenti 3

Segmenti 3
Segmenti 3
Segmenti 3
Segmenti 3
Segmenti 3
Segmenti 3

Pritini 9 segmente nga shablloni "Segmenti 3" i bashkangjitur nga druri i plehut të trashë 3/8 in. (Gjendet në hapin 26). Ngjitini ato në mënyrë që qepjet nga segmenti 2 të jenë në mes të secilit segment 3. Kjo do të forcojë unazën.

Hapi 16: Unaza e lëmuar dhe bojë

Unazë dhe bojë e lëmuar
Unazë dhe bojë e lëmuar
Unazë dhe bojë e lëmuar
Unazë dhe bojë e lëmuar

Kam bërë një bllok zmerilimi me porosi nga pjesa e prerë e unazës së madhe. Lëreni pjesën e brendshme dhe të jashtme të unazës dhe mbushni çdo të çarë që mund të jetë shfaqur gjatë procesit të ngjitjes.

Pasi të jetë e qetë, aplikoni disa shtresa bojë të zezë dhe shtresë të qartë.

Hapi 17: Pritini akrilik

Pritini akrilik
Pritini akrilik
Pritini akrilik
Pritini akrilik
Pritini akrilik
Pritini akrilik
Pritini akrilik
Pritini akrilik

Pritini akrilikun në një shesh me përmasa 30 x 30 inç dhe shënoni qendrën. Bashkangjitni akrilikun me shirit të dyanshëm. Duke përdorur një bit të ruterit, hiqni akrilikun e tepërt

Hapi 18: Aplikoni nuancën e dritares

Aplikoni nuancën e dritares
Aplikoni nuancën e dritares
Aplikoni nuancën e dritares
Aplikoni nuancën e dritares
Aplikoni nuancën e dritares
Aplikoni nuancën e dritares

Në një mjedis pa pluhur, hiqni filmin mbrojtës nga akriliku. Aplikoni llak dhe hiqni bazën nga nuanca e dritares. Aplikoni ngjyrën e dritares ngjitëse anash poshtë. Duke përdorur një kruajtës ose kartë krediti, nxirrni të gjithë lëngun nga nuanca e dritares. Pasi të jenë hequr të gjitha flluskat dhe rrudhat, shkurtoni ngjyrën e tepërt të dritares duke përdorur një thikë të mprehtë.

Hapi 19: Bashkojeni Defuserin

Bashkangjit Defuser
Bashkangjit Defuser
Bashkangjit Defuser
Bashkangjit Defuser

Kam përdorur një copë të madhe letre kasapi për të vepruar si një defuser. Shtrojeni letrën në një sipërfaqe të sheshtë. Mbuloni faqen e kornizës me zam nga një shkop zam. Para se zamja të thahet, vendoseni pjesën e përparme të orës me fytyrë poshtë në letër dhe prerë vrazhdë tepricën. Sapo të jetë tharë, përdorni një thikë të mprehtë për të pastruar flokët.

Hapi 20: Aplikoni izolimin

Aplikoni izolim
Aplikoni izolim

Kam përdorur shirit elektrik për të mbajtur linjat e energjisë dhe të dhënave të ndara.

Hapi 21: Mblidhni

Mbledh
Mbledh
Mbledh
Mbledh
Mbledh
Mbledh

Hiqni shtresën tjetër mbrojtëse nga akriliku. Vendoseni akrilikun brenda unazës me ngjyrën e dritares lart. Rrëshqitni pjesën e mbetur të orës në unazë. Përdorni një pirg për të ushtruar presion të lehtë ndërsa një vrimë është shpuar përmes unazës dhe në tabelën LED. Kjo duhet të jetë afërsisht 1 1/8 inç nga mbrapa. Kini kujdes të mos futeni në një LED. Vidhosni një vidë të kokës së trungut në vrimë. Përsëriteni për gjithsej tetë vida rreth perimetrit të orës.

Hapi 22: Bashkëngjitni Pikat e Spirancës

Bashkangjit Pikat e Spirancës
Bashkangjit Pikat e Spirancës

Ngjitëset e pikave të spirancës në pjesën e pasme të orës që kapësja e pasme të ngjitet. Këto janë 3/4 inç të trasha dhe rreth 2 in të gjata.

Hapi 23: Fuqitë e stërvitjes dhe vrimat e sensorit LDR

Fuqitë e Stërvitjes dhe Vrimat e Sensorit LDR
Fuqitë e Stërvitjes dhe Vrimat e Sensorit LDR

Shponi një vrimë energjie në pjesën e poshtme të orës për prizën e energjisë dhe një vrimë në pjesën e sipërme për sensorin e rezistencës së varur nga drita (LDR).

Hapi 24: Instaloni Mbajtësin e Elektronikës

Instaloni Mbajtësin e Elektronikës
Instaloni Mbajtësin e Elektronikës
Instaloni Mbajtësin e Elektronikës
Instaloni Mbajtësin e Elektronikës

Instaloni mbajtësen e printuar 3D për RTC dhe Arduino Nano. Lidhni të gjitha pajisjet elektronike siç tregohet në skemë.

Hapi 25: Kopertina e pasme

Mbulesa e pasme
Mbulesa e pasme
Mbulesa e pasme
Mbulesa e pasme
Mbulesa e pasme
Mbulesa e pasme
Mbulesa e pasme
Mbulesa e pasme

Pritini një mbulesë të pasme nga kompensatë e hollë pak më e vogël se pjesa e jashtme e orës. Stërvitni vrima në pikat e ankorimit. Gjeni qendrën e shpinës dhe matni 8 inç në secilin drejtim për të prerë vrimat e çelësit (standardi 16 në qendrat për kunjat në SHBA). Unë shpova vrimën kryesore pak më të madhe se koka e vidhave që do të përdor dhe e futa vrimën më të madhe në një drejtim. Ngjyrosni ngjyrën e zezë dhe ngjiteni kapakun në vend.

Hapi 26: Kodi dhe Skedarët

Përsëri, unë jam mjaft i ri në përdorimin e shumë bibliotekave Arduino të përdorura këtu, kështu që jam i sigurt se ka mënyra më të mira për t'i përdorur ato.

Shkrova kodin që do të përditësohet lehtësisht bazuar në sa LED që përdorni nëse projekti zvogëlohet lart ose poshtë. E tëra çfarë ju duhet të bëni është të azhurnoni pozicionet e fillimit dhe përfundimit të LED si dhe sa LED janë pjesë e secilës shifër.

Unë kam shtuar disa animacione që luajnë në fillimin e punës, si dhe në orë. Ato janë sudo të rastësishme bazuar në gjeneratorin e numrave të rastit që ka në bord.

Mund ta vendosni orën që të qarkullojë nëpër ngjyra ose të qëndroni statike në një. Ju madje mund të nënvizoni shifrën treguese për të ndihmuar në leximin e kohës siç tregohet në hyrje.

Mos ngurroni të redaktoni dhe ndryshoni kodin sipas dëshirës tuaj.

#përfshi "RTClib.h"

#përfshi #përcakto NUM_LEDS 96 #përcakto DATA_PIN 3 #përcakto LDR A0 RTC_DS1307 rtc; koha booleanChange = false; boolean printTime = false; // Vendoseni në të vërtetë nëse doni të shihni daljen në tastierë. Ndihmon për korrigjimin. boolean redDown = e vërtetë; boolean greenDown = false; boolean blueDown = false; cikli boolean = i rremë; // Vendosni të vërtetën nëse doni që ngjyrat e orës të ciklojnë theksimin boolean = true; // Vendosni true për të nënvizuar 'shifrën e fundit'. // Vendndodhjet e fillimit dhe mbarimit të secilit grup të kohës 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; // Shumëzuesit e përdorur për të ndarë kohën konstante MULTIPLIER_FIVE = 5; const int MULTIPLIER_TWO = 2; const int START_UP_DELAY = 1; // Ndryshoni këtë për të shpejtuar ose ngadalësuar fillimin e animacionit në int CYCLE_SPEED = 1; // Ndryshoni normën këtu për ciklin e ndryshimit të ngjyrës (duhet të jetë mbi 1) // Shpallni ndryshoret int lastSecond = 0; int currentHour = 0; int currentMinute = 0; int currentSecond = 0; int orë1 = 0; int orë2 = 0; int minutë1 = 0; int minutë2 = 0; int e dyta1 = 0; int e dyta2 = 0; cikli intCount = 1; noton fadeValue = 255; float fadeCheck = 255; uint8_t e ndritshme = 255; int numriOfAnimations = 5; int rastësia = 0; // Set Colors uint8_t red = 0; uint8_t jeshile = 0; uint8_t blu = 255; uint8_t nxjerr në pah_red = 60; uint8_t nxjerr në pah_green = 60; uint8_t nxjerr në pah_blu = 255; // Përcaktoni grupin e leds CRGB leds [NUM_LEDS]; void setup () {Serial.begin (19200); FastLED.addLeds (leds, NUM_LEDS); LEDS.setBritness (ndritshme); FastLED.qartë (); rtc.filloj (); // Linja e komentit më poshtë për të caktuar kohën. // rtc.adjust (DataTime (2020, 2, 19, 23, 59, 50)); // rtc.adjust (DataTime (F (_ DATE_), F (_ TIME_))); // Animimi i fillimit të animuar (rastësia); } void loop () {// Merr kohë DataTime tani = rtc.now (); currentHour = tani. orë (); currentMinute = tani.minute (); currentSecond = tani.second (); timeChange = false; // Përdorni këto për të vendosur manualisht kohën pa RTC. Ndihmues për korrigjimin // currentHour = 5; // currentMinute = 30; // currentSecond = 30; // Rivendosni të gjitha bitët në zero për (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB:: E zezë; } // Set Hour // Cakto orën 1 orë1 = (ora aktuale % MULTIPLIER_FIVE) * LEDS_PER_HOUR_1; // Kjo do të numërojë LED -të e përgjithshme të njësisë së kohës për t'u ndezur për (int i = HOUR_1_START_LOCATION; i 0) // && orë1 <12) {për (int i = (HOUR_1_START_LOCATION + orë1 - 1); i> = (HOUR_1_START_LOCATION + orë1-LEDS_PER_HOUR_1); i--) {leds = CRGB (highlight_red, highlight_green, highlight_blue); }} // Cakto orën 2 orë2 = (aktualeHour / MULTIPLIER_FIVE) * LEDS_PER_HOUR_2; // Kjo do të numërojë LED -të e përgjithshme të njësisë së kohës për t'u ndezur për (int i = HOUR_2_START_LOCATION; i 0) // && orë2 <8) {për (int i = (HOUR_2_START_LOCATION + orë2 - 1); i> = (HOUR_2_START_LOCATION + orë2-LEDS_PER_HOUR_2); i--) {leds = CRGB (highlight_red, highlight_green, highlight_blue); }} // Set Minute // Cakto minutë 1 minutë1 = (aktualMinute % MULTIPLIER_FIVE) * LEDS_PER_MINUTE_1; // Kjo do të numërojë LED -të e përgjithshme të njësisë së kohës për t'u ndezur për (int i = MINUTE_1_START_LOCATION; i 0) // && minute1 <24) {për (int i = (MINUTE_1_START_LOCATION + minutë 1 - 1); i> = (MINUTE_1_START_LOCATION + minute1-LEDS_PER_MINUTE_1); i--) {leds = CRGB (highlight_red, highlight_green, highlight_blue); }} // Cakto minutën 2 minuta2 = (aktualMinute / MULTIPLIER_FIVE) * LEDS_PER_MINUTE_2; // Kjo do të numërojë LED -të e përgjithshme të njësisë së kohës për t'u ndezur për (int i = MINUTE_2_START_LOCATION; i 0) // && minute2 <22) {për (int i = (MINUTE_2_START_LOCATION + minutë2 - 1); i> = (MINUTE_2_START_LOCATION + minutë2-LEDS_PER_MINUTE_2); i--) {leds = CRGB (nxjerr në pah të kuqe, nxjerr në pah_e gjelbër, nxjerr në pah blu); }} // Set Second if (currentSecond! = LastSecond) {timeChange = true; } // Vendos sekondën 1 sekondë1 = aktualeSecond % MULTIPLIER_TWO; if (second1 == 1) {leds [SECOND_1_LOCATION] = CRGB (e kuqe, jeshile, blu); } // Vendos sekondën 2 sekonda2 = aktualeSecond / MULTIPLIER_TWO; për (int i = SECOND_2_START_LOCATION; i 0) // && second2 <29) {për (int i = (SECOND_2_START_LOCATION + second2 - 1); i> = (SECOND_2_START_LOCATION + second2 - 1); i--) {leds = CRGB (e kuqe_ e theksuar, e theksuar_e gjelbër, e theksuar_blu); }} lastSecond = aktualeSecond; // Numëroni ciklet e programit dhe thërrisni funksionin setColor për të ndryshuar ngjyrën e LED -ve ndonjëherë të cikleve CYCLE_SPEED. nëse (cikliCount e ndritshme) // {// fadeValue = e ndritshme; //} // tjetër nëse (fadeValue <150) // {// fadeValue = 150; //} // LEDS.setBrightness (fadeValue); FastLED.shfaq (); // Shtyp kohën aktuale në tastierë nëse (timeChange == true && printTime == true) {printToConsole (); }} // Funksioni i animacionit shtoni më shumë animacione ashtu siç dëshironi animate të pavlefshme (int select) {if (select == 0) {për (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (e kuqe, jeshile, blu); FastLED.shfaq (); vonesë (START_UP_DELAY); } për (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: E zezë; FastLED.shfaq (); vonesë (START_UP_DELAY); }} tjetër nëse (zgjidhni == 1) {për (int i = 0; i <250; i ++) {int dritë = rastësore (95); leds [drita] = CRGB (e kuqe, jeshile, blu); FastLED.shfaq (); }} tjetër nëse (zgjidhni == 2) {leds [0] = CRGB (e kuqe, jeshile, blu); për (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {leds [SECOND_2_START_LOCATION+i] = CRGB (e kuqe, jeshile, blu); nëse (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {leds [MINUTE_1_START_LOCATION + i] = CRGB (e kuqe, jeshile, blu); } nëse (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {leds [MINUTE_2_START_LOCATION + i] = CRGB (e kuqe, jeshile, blu); } nëse (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {leds [HOUR_1_START_LOCATION + i] = CRGB (e kuqe, jeshile, blu); } nëse (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {leds [HOUR_2_START_LOCATION + i] = CRGB (e kuqe, jeshile, blu); } vonesë (34); FastLED.shfaq (); }} tjetër nëse (zgjidhni == 3) {leds [0] = CRGB (e kuqe, jeshile, blu); për (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {leds [SECOND_2_END_LOCATION - i] = CRGB (e kuqe, jeshile, blu); nëse (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {leds [MINUTE_1_END_LOCATION - i] = CRGB (e kuqe, jeshile, blu); } nëse (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {leds [MINUTE_2_END_LOCATION - i] = CRGB (e kuqe, jeshile, blu); } nëse (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {leds [HOUR_1_END_LOCATION - i] = CRGB (e kuqe, jeshile, blu); } nëse (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {leds [HOUR_2_END_LOCATION - i] = CRGB (e kuqe, jeshile,blu); } vonesë (34); FastLED.shfaq (); }} tjetër nëse (zgjidhni == 4) {për (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: E zezë; } FastLED.shfaq (); vonesë (200); për (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (e kuqe, jeshile, blu); } FastLED.shfaq (); vonesë (200); për (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: E zezë; } FastLED.shfaq (); vonesë (200); për (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (e kuqe, jeshile, blu); } FastLED.shfaq (); vonesë (200); për (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: E zezë; } FastLED.shfaq (); vonesë (200); }} // Funksioni i çiklizmit të ngjyrave void setColor (cycleColors boolean) {if (cycleColors == true) {if (redDown == true && greenDown == false) {red ++; jeshile--; nëse (jeshile <= 0) {e kuqe = 255; redDown = false; greenDown = e vërtetë; }} tjetër nëse (greenDown == true && blueDown == false) {green ++; blu-; nëse (blu <= 0) {jeshile = 255; greenDown = false; bluDown = e vërtetë; }} tjetër nëse (blueDown == true && redDown == false) {blu ++; e kuqe--; nëse (e kuqe <= 0) {blu = 255; bluDown = false; redDown = e vërtetë; }}} tjetër {red = 0; jeshile = 0; blu = 255; }} // Funksioni Print në Serial Monitor void printToConsole () {Serial.print ("Koha aktuale:"); Serial.print (aktualeHour); Serial.print (":"); Serial.print (currentMinute); Serial.print (":"); Serial.println (currentSecond); Serial.println (""); për (int i = HOUR_2_START_LOCATION; i <= HOUR_2_END_LOCATION; i ++) {Serial.print (leds ); nëse (i % 2 == 0) {Serial.print (""); }} Serial.println (""); për (int i = HOUR_1_START_LOCATION; i <= HOUR_1_END_LOCATION; i ++) {Serial.print (leds ); nëse (((i - HOUR_1_START_LOCATION + 1) % 3) == 0) {Serial.print (""); }} Serial.println (""); për (int i = MINUTE_2_START_LOCATION; i <= MINUTE_2_END_LOCATION; i ++) {Serial.print (leds ); nëse (((i - MINUTE_2_START_LOCATION) + 1) % 2 == 0) {Serial.print (""); }} Serial.println (""); për (int i = MINUTE_1_START_LOCATION; i <= MINUTE_1_END_LOCATION; i ++) {Serial.print (leds ); nëse (((i - MINUTE_1_START_LOCATION) + 1) % 6 == 0) {Serial.print (""); }} Serial.println (""); për (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 (); për (int i = 0; i <NUM_LEDS; i ++) {Serial.print (leds ); } Serial.println (); Serial.println (); }

Hapi 27: Shijoni

Imazhi
Imazhi

Si përfundim, kjo orë është e mrekullueshme për tu parë dhe sapo ta mësoni, është relativisht e lehtë për tu lexuar. Nëse bëni projektin tuaj të orës, më tregoni!

Recommended: