Taula de continguts:

Rellotge de paret críptic: 27 passos (amb imatges)
Rellotge de paret críptic: 27 passos (amb imatges)

Vídeo: Rellotge de paret críptic: 27 passos (amb imatges)

Vídeo: Rellotge de paret críptic: 27 passos (amb imatges)
Vídeo: Я ОДЕРЖИМЫЙ ДЕМОНАМИ 2024, Desembre
Anonim
Rellotge de paret críptic
Rellotge de paret críptic

El pas del temps és una cosa que no podem controlar. Passa al mateix ritme si estem dormint, desperts, avorrits o compromesos. Amb l’actualitat, és important recordar que passarà el temps. Mentre esperem que passi el temps, per què no fer alguna cosa que faci el pas del temps més atractiu per veure.

Aquest rellotge es va inspirar en el Mengenlehreuhr trobat a Berlín (Alemanya) i es pot llegir de la mateixa manera. Igual que l'original, explica l'hora mitjançant camps il·luminats i de colors.

Inclou 96 LED que il·luminen regions de "dígits" de 52. A diferència de l'original, presenta un disseny circular que inclou un anell de segons, en lloc d'un disseny de barres horitzontals. La banda exterior indica segons junt amb el punt central, les dues bandes següents indiquen minuts, i les bandes interiors finals indiquen hores.

Si teniu material de rebuig i temps extra a les mans, per què no aprofiteu aquest temps per fer alguna cosa que el mostri?

Hi ha alguns canvis que faria en aquest projecte si el tornés a fer. En primer lloc, pintaria el marc i el tauler LED de blanc en lloc de negre. Això reflectiria més llum a través de la gran lent de la part frontal. També esperaria al final per inserir els LED. Necessitava que el tauler estigués acabat abans perquè em pogués ajudar a escriure el codi. Sense això, primer aprenem a llegir-lo.

Imatge
Imatge

Pas 1: Com llegir el rellotge

El rellotge es llegeix des dels cercles interiors cap a l’exterior. L'anell interior de quatre camps indica cinc hores completes cadascun, al costat del segon anell, també de quatre camps, que denoten una hora completa cadascun, mostrant el valor de l'hora en format de 24 hores. El tercer anell consta d’onze camps, que denoten cinc minuts complets cadascun, el següent anell té quatre camps més, que marquen un minut complet cadascun. Finalment, l'anell exterior de 29 camps indica segons parells amb la llum del centre parpellejant per indicar segons senars (quan s'encén) o parells (quan no s'encén).

Imatge
Imatge

Per exemple, la imatge anterior conté 1 dels cinc dígits d'una hora, 3 dels dígits d'una hora, 8 dels cinc minuts, 4 dels dígits d'un minut i 23 dels dos segons dígits i el segon dígit central il·luminat.

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

Imatge
Imatge

El temps que es mostra anteriorment és: 3x5 + 0x1: 3x5 + 2x1: 5x2 + 1x1 = 15:17:11 = 15:17:11

Imatge
Imatge

El temps que es mostra anteriorment és: 3x5 + 2x1: 3x5 + 3x1: 16x2 + 1x1 = 17:18:33 = 17:18:33

Pas 2: eines i materials

Eines i materials
Eines i materials
Eines i materials
Eines i materials
Eines i materials
Eines i materials

Materials electrònics:

  • Arduino Nano
  • Rellotge en temps real
  • LED adreçables
  • Endoll
  • Cable de corrent
  • Endoll USB
  • Resistència dependent de la llum i resistència equilibrada (si voleu que es vagi de nit)
  • Filferro

Materials per treballar la fusta:

  • Fusta contraxapada de 3/4 polzades
  • Fusta contraxapada fina
  • Fusta de ferralla (he utilitzat 2x4, però la fusta també funcionaria)
  • Pintura
  • Full acrílic de 30 x 36 polzades (es troba a la botiga local de millores per a la llar)
  • Tint de la finestra (proveu d’orientar-lo localment. Si no n’hi ha cap disponible, podeu trobar un full prou gran aquí)
  • Fluid d'aplicació de tint de finestra (he utilitzat aigua barrejada amb xampú per a nadons en un biberó)
  • Windex
  • Paper de carnisser
  • Cargols
  • Adhesiu per esprai
  • Cola
  • Barra d'enganxar

Eines:

  • Regle
  • Ganivet Xacto
  • Cinta
  • Cinta de doble cara
  • Brúixola
  • Plantilla de tall circular
  • Trencaclosques
  • Serra de cinta
  • Lijadora de cargols
  • Palm Sander
  • Disc Sander
  • Taula d’encaminadors
  • Alna
  • Trepants i broques / controladors
  • Pinces
  • Soldador
  • Soldar
  • Decapants de filferro

Pas 3: muntar plantilles

Muntar plantilles
Muntar plantilles
Muntar plantilles
Muntar plantilles

Per a la plantilla gran, imprimiu-la mitjançant la configuració del pòster a Adobe Reader. Retalleu els marges de cada paper i cinta junts. Les línies verticals, horitzontals i diagonals ajudaran a alinear la plantilla. Totes les pàgines contenen petits números per ajudar-les a mantenir-les organitzades si no funcionen.

Totes les plantilles i fitxers necessaris es troben al pas 26.

Pas 4: cercles tallats en brut

Cercles de tall rugós
Cercles de tall rugós
Cercles de tall rugós
Cercles de tall rugós

Col·locant les dues plantilles en un full de fusta contraxapada de 3/4 polzades, dibuixeu cercles una mica més grans del necessari amb una brúixola. Amb una serra trencaclosques, retalleu la forma rugosa.

Pas 5: tallar a mida

Tallat a mida
Tallat a mida
Tallat a mida
Tallat a mida

Amb una plantilla de tall circular sobre la serra de banda, talleu els cercles a la mida final.

Pas 6: apliqueu la plantilla

Aplica la plantilla
Aplica la plantilla
Aplica la plantilla
Aplica la plantilla
Aplica la plantilla
Aplica la plantilla

Amb l’adhesiu per esprai, apliqueu cada plantilla a un cercle. Introduïu un clau al centre de la plantilla per centrar-lo al cercle.

Pas 7: tallar plantilla

Tallar plantilla
Tallar plantilla
Tallar plantilla
Tallar plantilla
Tallar plantilla
Tallar plantilla

Amb una serra de trencaclosques, retalleu cada finestra individual de la plantilla. Si teniu accés a un CNC, aquest pas seria molt més senzill. He perforat un forat a cada finestra per ajudar-me en aquest procés. A mesura que comenceu a tallar, la plantilla pot començar a sortir. Si això passa, podeu assegurar-lo al seu lloc amb petits trossos de cinta.

Pas 8: polit

Lixat
Lixat
Lixat
Lixat
Lixat
Lixat

Utilitzant paper de vidre aplicat a un pal, una polidora de cargol i una polidora de palma, politeu i suavitzeu el tall rugós que deixa la trencaclosques.

Pas 9: Suports de trepant per als LED

Suports de trepant per a LEDs
Suports de trepant per a LEDs
Suports de trepant per a LEDs
Suports de trepant per a LEDs
Suports de trepant per a LEDs
Suports de trepant per a LEDs
Suports de trepant per a LEDs
Suports de trepant per a LEDs

Marqueu el centre de cada forat amb un punxó i taladreu els forats dels LED. Vaig utilitzar una guia per ajudar a mantenir el trepant perpendicular a la meva peça de treball i un tauler per evitar que bufés la fusta a la part posterior.

Pas 10: Combineu taulers

Combineu taulers
Combineu taulers
Combineu taulers
Combineu taulers
Combineu taulers
Combineu taulers

Canvieu els taulers frontal i posterior i traça parts del marc a la part posterior del tauler LED. Torneu a moure el marc cap a la part frontal de la placa LED i foradeu els forats i torneu les peces juntes.

Consulteu les notes de la imatge per obtenir més informació.

Pas 11: Inseriu LEDs

Inseriu LEDs
Inseriu LEDs
Inseriu LEDs
Inseriu LEDs

Premeu els LED per la part posterior de la placa LED. Els forats haurien d’estar espaiats suficientment per no haver de tallar cap cable excepte passar d’un cercle al següent.

Des de la part posterior, els LEDs comencen al centre i després funcionen en sentit contrari a les agulles del rellotge i, fins al següent anell.

Pas 12: adjunteu el segment 1

Adjunta el segment 1
Adjunta el segment 1
Adjunta el segment 1
Adjunta el segment 1
Adjunta el segment 1
Adjunta el segment 1

Retalleu 9 segments de la plantilla "Segment 1" adjunta a la fusta contraxapada de 3/4 polzades (es troba al pas 26). Connecteu-la al tauler LED amb cola i pinces. Si esteu impacient, també podeu utilitzar les ungles per fixar-les al seu lloc.

Un cop sec, liureu la vora amb una esmoladora de discs.

Pas 13: Pinteu

Pintura
Pintura
Pintura
Pintura
Pintura
Pintura
Pintura
Pintura

Pintar en aerosol tant el tauler LED com el marc. Si tornés a fer això, hauria seleccionat utilitzar pintura blanca en lloc de negre, ja que seria més reflectant a través de l’objectiu.

Pas 14: segment 2

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

Retalleu 9 segments de la plantilla "Segment 2" adjunta de fusta de 2 3/8 polzades de gruix (es troba al pas 26). He utilitzat alguns residus 2x4 de la botiga. Col·loqueu els segments en sec i assegureu-vos que encaixi bé amb una pinça de banda. Si tot es revisa, cobreix l’exterior amb cinta adhesiva per evitar que s’enganxi la cola i deixa-la assecar almenys una hora abans de passar al següent pas.

Pas 15: segment 3

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

Retalleu 9 segments de la plantilla "Segment 3" adjunta de ferralla de 3/8 polzades de gruix (es troba al pas 26). Enganxeu-los perquè les costures del segment 2 quedin al centre de cada segment 3. Això reforçarà l'anell.

Pas 16: anell suau i pintura

Anell i pintura llisos
Anell i pintura llisos
Anell i pintura llisos
Anell i pintura llisos

Vaig fer un bloc de poliment personalitzat amb la peça tallada de l'anell gran. Liureu l'interior i l'exterior de l'anell i ompliu les esquerdes que poguessin haver aparegut durant el procés de cola.

Un cop llisos, apliqueu unes quantes capes de pintura negra i una capa clara.

Pas 17: tallar acrílic

Tall acrílic
Tall acrílic
Tall acrílic
Tall acrílic
Tall acrílic
Tall acrílic
Tall acrílic
Tall acrílic

Talla l’acrílic a un quadrat de 30 x 30 polzades i marca el centre. Col·loqueu l’acrílic amb cinta adhesiva de doble cara. Utilitzeu una punta d’encaminador de retallada, traieu l’excés d’acrílic

Pas 18: apliqueu el tint de la finestra

Aplica el color de la finestra
Aplica el color de la finestra
Aplica el color de la finestra
Aplica el color de la finestra
Aplica el color de la finestra
Aplica el color de la finestra

En un entorn lliure de pols, traieu la pel·lícula protectora de l’acrílic. Apliqueu esprai i elimineu la part posterior del tint de la finestra. Apliqueu el tint de la finestra amb un costat enganxós cap avall. Utilitzant una escombreta o una targeta de crèdit, extreu tot el líquid de sota el tint de la finestra. Un cop eliminades totes les bombolles i les arrugues, retalleu l’excés de tint de la finestra amb un ganivet afilat.

Pas 19: Adjunta el Defuser

Adjunta el Defuser
Adjunta el Defuser
Adjunta el Defuser
Adjunta el Defuser

Vaig fer servir un gran tros de paper de carnisseria per fer de difusor. Col·loqueu el paper sobre una superfície plana. Cobriu la cara del marc amb cola d’un pal de cola. Abans que s’assequi la cola, col·loqueu la part frontal del rellotge cap avall sobre el paper i talleu en brut l’excés. Un cop sec, utilitzeu un ganivet afilat per retallar la superfície.

Pas 20: apliqueu aïllament

Apliqueu aïllament
Apliqueu aïllament

Vaig utilitzar cinta elèctrica per mantenir separades les línies d’alimentació i dades.

Pas 21: Muntatge

Muntar
Muntar
Muntar
Muntar
Muntar
Muntar

Traieu l’altra capa protectora de l’acrílic. Col·loqueu l’acrílic dins de l’anell amb el tint de la finestra cap amunt. Feu lliscar la resta del rellotge al ring. Utilitzeu una pinça per aplicar pressió lleugera mentre es perfora un forat a través de l’anell i a la placa LED. Hauria de ser aproximadament 1 1/8 polzada de la part posterior. Aneu amb compte de no perforar cap LED. Cargoleu un cargol de capçal en el forat. Repetiu-ho per un total de vuit cargols al voltant del perímetre del rellotge.

Pas 22: connecteu punts d'ancoratge

Adjunteu punts d’ancoratge
Adjunteu punts d’ancoratge

Punts d'ancoratge de cola a la part posterior del rellotge per fixar-se a la tapa posterior. Aquests són de 3/4 polzades de gruix i aproximadament 2 polzades de llarg.

Pas 23: perforació de forats del sensor de potència i LDR

Forada del forat del sensor de potència i LDR
Forada del forat del sensor de potència i LDR

Practicar un forat d’alimentació per la part inferior del rellotge per endollar-lo i un forat a la part superior per al sensor de resistència dependent de la llum (LDR).

Pas 24: instal·leu el suport electrònic

Instal·leu el suport electrònic
Instal·leu el suport electrònic
Instal·leu el suport electrònic
Instal·leu el suport electrònic

Instal·leu el suport imprès en 3D per a RTC i Arduino Nano. Connecteu tots els aparells electrònics tal com es mostra a l’esquema.

Pas 25: contraportada

Contraportada
Contraportada
Contraportada
Contraportada
Contraportada
Contraportada
Contraportada
Contraportada

Talla una tapa posterior de fusta contraxapada fina més petita que la part exterior del rellotge. Practicar forats als punts d’ancoratge. Cerqueu el centre de la part posterior i mesureu 8 polzades en qualsevol direcció per tallar els forats de la clau (estàndard 16 en centres per a tacs als EUA). He forat el forat principal més gran que el cap dels cargols que faré servir i he introduït el forat més gran en una direcció. Pinteu de negre i fixeu la tapa al seu lloc.

Pas 26: Codi i fitxers

Una vegada més, sóc bastant nou en utilitzar moltes de les biblioteques Arduino que s’utilitzen aquí, així que estic segur que hi ha millors maneres d’utilitzar-les.

Vaig escriure el codi per actualitzar-lo fàcilment segons el nombre de LEDs que utilitzeu si el projecte s’amplia o baixa. Tot el que heu de fer és actualitzar les posicions inicials i finals del LED, així com quants LED formen part de cada dígit.

He afegit algunes animacions que es reprodueixen a l'inici i a l'hora. Són aleatoris basats en el generador de números aleatoris que té a bord.

Podeu configurar el rellotge per circular pels colors o mantenir-se estàtic. Fins i tot podeu ressaltar el dígit de l’indicador per ajudar a llegir el temps tal com es mostra a la introducció.

No dubteu a editar i canviar el codi com vulgueu.

#include "RTClib.h"

#include #define NUM_LEDS 96 #define DATA_PIN 3 #define LDR A0 RTC_DS1307 rtc; timeChange booleà = fals; boolean printTime = false; // Estableix a true si vols veure la sortida a la consola. Útil per a la depuració. boolean redDown = true; boolean greenDown = fals; blau baix booleà = fals; cicle booleà = fals; // Estableix true si voleu que els colors del rellotge cicle ressaltat booleà = true; // Estableix true per ressaltar "l'últim dígit". // Ubicacions de l'inici i del final de cada grup de temps 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; // Multiplicadors que s’utilitzen per dividir el temps const int MULTIPLIER_CINC = 5; const int MULTIPLIER_TWO = 2; const int START_UP_DELAY = 1; // Canvieu-lo per accelerar o frenar l’animació d’inici const int CYCLE_SPEED = 1; // Canvieu aquí la velocitat del cicle de canvi de color (ha de ser superior a 1) // Declareu les variables int lastSecond = 0; int CurrentHour = 0; int CurrentMinute = 0; int currentSecond = 0; int hora1 = 0; int hour2 = 0; int minut1 = 0; int minut2 = 0; int segon1 = 0; int segon2 = 0; int cycleCount = 1; float fadeValue = 255; float fadeCheck = 255; uint8_t brillant = 255; int numberOfAnimations = 5; int randomness = 0; // Estableix els colors uint8_t vermell = 0; uint8_t verd = 0; uint8_t blau = 255; uint8_t highlight_red = 60; uint8_t highlight_green = 60; uint8_t highlight_blue = 255; // Definiu la matriu de leds leds CRGB [NUM_LEDS]; configuració nul·la () {Serial.begin (19200); FastLED.addLeds (leds, NUM_LEDS); LEDS.setBrightness (brillant); FastLED.clear (); rtc.begin (); // Feu un comentari a la línia següent per definir l'hora. // rtc.adjust (DateTime (2020, 2, 19, 23, 59, 50)); // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // Animació d’inici animat (aleatorietat); } void loop () {// Obtenir hora DateTime ara = rtc.now (); Hora actual = ara.hora (); currentMinute = now.minute (); actualSegon = ara.segon (); timeChange = fals; // Utilitzeu-les per definir manualment el temps sense RTC. Útil per a la depuració // currentHour = 5; // actualMinut = 30; // Segon actual = 30; // Restableix tots els bits a zero per a (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB:: Negre; } // Establir hora // Establir hora 1 hora1 = (currentHour% MULTIPLIER_FIVE) * LEDS_PER_HOUR_1; // Es comptarà el LED total de la unitat de temps per il·luminar (int i = HOUR_1_START_LOCATION; i 0) // && hour1 <12) {for (int i = (HOUR_1_START_LOCATION + hour1 - 1); i> = (HOUR_1_START_LOCATION + hora1 - LEDS_PER_HOUR_1); i--) {leds = CRGB (highlight_red, highlight_verde, highlight_blue); }} // Estableix l’hora 2 hora2 = (CurrentHour / MULTIPLIER_FIVE) * LEDS_PER_HOUR_2; // Es comptarà el LED total de la unitat de temps per il·luminar (int i = HOUR_2_START_LOCATION; i 0) // && hour2 <8) {for (int i = (HOUR_2_START_LOCATION + hour2 - 1); i> = (HOUR_2_START_LOCATION + hour2 - LEDS_PER_HOUR_2); i--) {leds = CRGB (highlight_red, highlight_verde, highlight_blue); }} // Estableix minut // Estableix minut 1 minut1 = (currentMinute% MULTIPLIER_FIVE) * LEDS_PER_MINUTE_1; // Es comptarà el LED total de la unitat de temps per il·luminar (int i = MINUTE_1_START_LOCATION; i 0) // && minute1 <24) {for (int i = (MINUTE_1_START_LOCATION + minute1 - 1); i> = (MINUTE_1_START_LOCATION + minut1 - LEDS_PER_MINUTE_1); i--) {leds = CRGB (highlight_red, highlight_verde, highlight_blue); }} // Estableix el minut 2 minut2 = (currentMinute / MULTIPLIER_FIVE) * LEDS_PER_MINUTE_2; // Es comptarà el LED total de la unitat de temps per il·luminar (int i = MINUTE_2_START_LOCATION; i 0) // && minute2 <22) {for (int i = (MINUTE_2_START_LOCATION + minute2 - 1); i> = (MINUTE_2_START_LOCATION + minut2 - LEDS_PER_MINUTE_2); i--) {leds = CRGB (highlight_red, highlight_verde, highlight_blue); }} // Estableix el segon si (currentSecond! = LastSecond) {timeChange = true; } // Estableix segon 1 segon1 = currentSecond% MULTIPLIER_TWO; if (segon1 == 1) {leds [SECOND_1_LOCATION] = CRGB (vermell, verd, blau); } // Estableix segon 2 segon2 = currentSecond / MULTIPLIER_TWO; for (int i = SECOND_2_START_LOCATION; i 0) // && second2 <29) {for (int i = (SECOND_2_START_LOCATION + second2 - 1); i> = (SECOND_2_START_LOCATION + second2 - 1); i--) {leds = CRGB (highlight_red, highlight_verde, highlight_blue); }} lastSecond = currentSecond; // Compteu els cicles del programa i truqueu a la funció setColor per canviar el color dels LED que hi ha CICLES_SPEED. if (cycleCount brillant) // {// fadeValue = brillant; //} // else if (fadeValue <150) // {// fadeValue = 150; //} // LEDS.setBrightness (fadeValue); FastLED.show (); // Imprimiu l'hora actual a la consola si (timeChange == true && printTime == true) {printToConsole (); }} // La funció d'animació afegeix més animacions aquí com vulgueu animar (int select) {if (select == 0) {for (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (vermell, verd, blau); FastLED.show (); retard (START_UP_DELAY); } per a (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Negre; FastLED.show (); retard (START_UP_DELAY); }} else if (select == 1) {for (int i = 0; i <250; i ++) {int light = random (95); leds [llum] = CRGB (vermell, verd, blau); FastLED.show (); }} else if (seleccioneu == 2) {leds [0] = CRGB (vermell, verd, blau); for (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {leds [SECOND_2_START_LOCATION + i] = CRGB (vermell, verd, blau); if (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {leds [MINUTE_1_START_LOCATION + i] = CRGB (vermell, verd, blau); } if (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {leds [MINUTE_2_START_LOCATION + i] = CRGB (vermell, verd, blau); } if (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {leds [HOUR_1_START_LOCATION + i] = CRGB (vermell, verd, blau); } if (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {leds [HOUR_2_START_LOCATION + i] = CRGB (vermell, verd, blau); } retard (34); FastLED.show (); }} else if (seleccioneu == 3) {leds [0] = CRGB (vermell, verd, blau); for (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {leds [SECOND_2_END_LOCATION - i] = CRGB (vermell, verd, blau); if (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {leds [MINUTE_1_END_LOCATION - i] = CRGB (vermell, verd, blau); } if (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {leds [MINUTE_2_END_LOCATION - i] = CRGB (vermell, verd, blau); } if (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {leds [HOUR_1_END_LOCATION - i] = CRGB (vermell, verd, blau); } if (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {leds [HOUR_2_END_LOCATION - i] = CRGB (vermell, verd,blau); } retard (34); FastLED.show (); }} else if (select == 4) {for (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Black; } FastLED.show (); retard (200); for (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (vermell, verd, blau); } FastLED.show (); retard (200); for (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Negre; } FastLED.show (); retard (200); for (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (vermell, verd, blau); } FastLED.show (); retard (200); for (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Negre; } FastLED.show (); retard (200); }} // Funció de ciclisme del color void setColor (boolean cycleColors) {if (cycleColors == true) {if (redDown == true && greenDown == false) {red ++; verd--; if (verd <= 0) {vermell = 255; redDown = fals; greenDown = cert; }} else if (greenDown == true && blueDown == false) {green ++; blau--; if (blau <= 0) {verd = 255; greenDown = fals; blueDown = veritable; }} else if (blueDown == true && redDown == false) {blue ++; vermell--; if (vermell <= 0) {blau = 255; blueDown = fals; redDown = true; }}} else {red = 0; verd = 0; blau = 255; }} // Funció Print to Serial Monitor void printToConsole () {Serial.print ("Hora actual:"); Serial.print (currentHour); Serial.print (":"); Serial.print (currentMinute); Serial.print (":"); Serial.println (currentSecond); Serial.println (""); for (int i = HOUR_2_START_LOCATION; i <= HOUR_2_END_LOCATION; i ++) {Serial.print (leds ); if (i% 2 == 0) {Serial.print (""); }} Serial.println (""); per a (int i = HOUR_1_START_LOCATION; i <= HOUR_1_END_LOCATION; i ++) {Serial.print (leds ); if (((i - HOUR_1_START_LOCATION + 1)% 3) == 0) {Serial.print (""); }} Serial.println (""); for (int i = MINUTE_2_START_LOCATION; i <= MINUTE_2_END_LOCATION; i ++) {Serial.print (leds ); if (((i - MINUTE_2_START_LOCATION) + 1)% 2 == 0) {Serial.print (""); }} Serial.println (""); for (int i = MINUTE_1_START_LOCATION; i <= MINUTE_1_END_LOCATION; i ++) {Serial.print (leds ); if (((i - MINUTE_1_START_LOCATION) + 1)% 6 == 0) {Serial.print (""); }} Serial.println (""); for (int i = SECOND_2_START_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {Serial.print (leds ); Serial.print (""); } Serial.println (""); Serial.println (leds [SECOND_1_LOCATION]); Serial.println (); for (int i = 0; i <NUM_LEDS; i ++) {Serial.print (leds ); } Serial.println (); Serial.println (); }

Pas 27: gaudiu

Imatge
Imatge

En conclusió, aquest rellotge és meravellós de veure i, un cop aconseguit, és relativament fàcil de llegir. Si fas el teu propi projecte de rellotge, avisa’m!

Recomanat: