Indholdsfortegnelse:

Ish Clock: 5 trin (med billeder)
Ish Clock: 5 trin (med billeder)

Video: Ish Clock: 5 trin (med billeder)

Video: Ish Clock: 5 trin (med billeder)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Juli
Anonim
Image
Image
Samling af dele og træarbejde
Samling af dele og træarbejde

Jeg finder ofte, at jeg selv køber ting, som jeg ikke aner, hvad jeg skal gøre med. Dette projekt er et resultat af et køb af en ring, der har 12x WS2812b lysdioder tændt. Jeg havde ingen planer om det, men det så fedt ud online, så jeg stak en i min vogn, legede med den et stykke tid, da den ankom og glemte alt om det.

Et stykke tid senere tænkte jeg på at lave et ur og huskede at det sad der og ikke gjorde noget. Jeg tænkte på at købe en anden ring med 60 lysdioder tændt for at udgøre minutterne, men begyndte så at tænke på, hvordan vi / jeg har en tendens til at se på tidspunktet og afrunde det til de nærmeste 5 minutter.

Med dette i min gik jeg ud med min 12 LED -ring for at lave det ish ur. Den viser 1 LED ad gangen i 1 sekund for at angive timen (blå LED) og derefter minutter (rød LED) afrundet

Trin 1: Indsamling af dele og træarbejde

Samling af dele og træarbejde
Samling af dele og træarbejde
Samling af dele og træarbejde
Samling af dele og træarbejde
Samling af dele og træarbejde
Samling af dele og træarbejde

Jeg var meget heldig at komme på arbejde en dag og få øje på en palle. Denne palle stak ud for mig, da den ikke lignede din standard, løb af møllepallen. Det var rent, varmebehandlet og mest usædvanligt massivt egetræ.

Dette projekt er lavet af et af stykkerne på den palle. (Jeg spurgte chefen, før jeg tog den med hjem)

Også brugt:

  • 12 pixel ws2812b LED -ring
  • Real Time Clock (RTC) modul (jeg bruger en DS3231 med I2C)
  • Arduino Nano v3.0 kompatibel
  • Akrylark (5 mm)
  • Farvet tråd

Værktøjer

  • El -boremaskine
  • Router
  • Justerbar flad træbit
  • Elektrisk slibemaskine
  • Håndsav
  • Loddekolbe
  • Varm limpistol
  • Sandpapir
  • Dansk olie

Slibning

Jeg startede med at bruge el -slibemaskinen til at rette og rense træblokken, indtil alle sider var rene og glatte. Jeg efterlod nogle ufuldkommenheder synlige, og den var ikke helt lige eller firkantet, da jeg gerne kunne se noget af historien i skoven.

Markering og afskæring af hullerne

Efter slibning valgte jeg den side, jeg ville have urets overflade og markerede midten ved at tegne linjer fra hvert hjørne. Jeg satte den justerbare træbit lidt større end ledringen, så der ville være en hylde, hvor akrylen kunne sidde på og skære ca. 5 mm dybt og derefter justere fræseren lige over størrelsen på LED -ringen og skære yderligere 5 mm ned.

Routing og kabelhuller

Ved hjælp af min router med 12 mm -biten ruttede jeg en fordybning ud i bunden af blokken for at skjule RTC og Arduino. Den er cirka 15 mm dyb og ikke mindre end 5 mm fra enhver kant. Jeg markerede midten (ish) fra bunden og borede op ved hjælp af en 10 mm bit lige over halvvejs for at tillade LED -ledninger. Derefter borede jeg med en 5 mm bit fra midten af LED -fordybningen for at imødekomme 10 mm -hullet fra bunden.

Endnu et 4 mm hul på bagsiden, så strømmen kan komme ind, og ved hjælp af en mindre router bit til at lave en kanal til ledningerne på bagsiden af LED -ringen og træarbejdet er udført.

Trin 2: Akrylcirkler

Akryl cirkler
Akryl cirkler
Akryl cirkler
Akryl cirkler
Akryl cirkler
Akryl cirkler

For at lave akryl til forsiden af uret angav jeg at skære et firkantet stykke, der bare var større end hullet, det skulle fylde. Derefter begyndte jeg at fjerne hjørnerne, indtil den var omkring den rigtige form og størrelse. Jeg flyttede derefter til håndslibning, så jeg ikke overskydede og skulle starte forfra.

Det var en langsom og kedelig proces med forsøg og fejl, indtil den passede helt rigtigt, men jeg synes, at slutresultatet var det værd. Jeg sluttede med at bruge et meget fint gruspapir til at give forsiden af akrylen et frostet look.

Trin 3: Lodning

Lodning
Lodning
Lodning
Lodning
Lodning
Lodning
Lodning
Lodning

Jeg kan godt lide at bruge et farvesystem til mine ledninger ved denne lejlighed, jeg vælger:

  • Rød til strøm (5v)
  • Hvid til jorden
  • Gul til data
  • Grøn til ur

Jeg begyndte med at lodde de 3 nødvendige ledninger på LED -ringen ved hjælp af systemet ovenfor og skubbe ledningerne ned i hullet. Da den ikke skulle udsættes for nogen form for tvang, brugte jeg en lille smule varm lim til at holde ringen på plads. (Jeg skal måske ændre det engang) og installere akrylen med bare lidt varm lim rundt om kanten.

Jeg lod derefter de 4 ledninger på RTC ved hjælp af systemet ovenfor. For at holde tingene lidt pænere besluttede jeg at trække strøm til RTC fra Arduino. Tilsluttede derefter alt til Arduino og lodde 1 ledning til strøm og en anden til jord til Arduino.

RTC

  • SCL (ur) til analog pin 5
  • SDA (data) til analog pin 4
  • VCC til 5V
  • GND til enhver GND på Arduino

LED ring

Din til digital pin 6

Jeg havde et gammelt USB -kabel hængende, så jeg besluttede at bruge det til at tænde uret. Jeg skar den ende af, der normalt ville forbinde til noget, og skubbede den gennem hullet i ryggen. Derefter strippes og tindes enderne før lodning af VCC til Arduino og LED -ringen til den positive side og jorden fra Arduino og LED til jord. Jeg krymper lidt senere, og det så godt ud, Den varme limpistol kom tilbage for at holde alt nede. Jeg besluttede at forlade Arduino med nok spil til, at jeg vil have adgang til USB -porten til at programmere den i fremtiden, men ikke så meget, at jeg kunne falde ud.

Trin 4: Koden

Du skulle nu kunne uploade denne kode til Arduino.

Hvis RTC ikke kører, vil denne kode indstille tiden baseret på, hvornår koden blev kompileret, så sørg for bare at trykke på upload -knappen og ikke bekræfte.

skiftevis fungerer dette også rigtig godt til at indstille tiden.

www.instructables.com/id/Setting-the-DS130…

Meget af denne kode lånte jeg fra Adafruit NeoPixel -biblioteket og nogle fra et RTC -bibliotek fandt jeg, og nogle fandt jeg på egen hånd.

// inkludere bibliotekskoden: #include

#omfatte

#omfatte

// definer pins

#definer PIN 6

#define BRIGHTNESS 20 // indstil maksimal lysstyrke

#define r 5

#define g 5

#define b 5

RTC_DS3231 rtc; // Etabler urobjekt

Adafruit_NeoPixel strip = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // strip objekt

ugyldig opsætning () {

Wire.begin (); // Start I2C

rtc.begin (); // startur

Serial.begin (9600);

// sæt pinmodes

pinMode (PIN, OUTPUT);

hvis (rtc.lostPower ()) {

Serial.println ("RTC mistede strøm, lad os indstille tiden!");

// følgende linje indstiller RTC til dato og klokkeslæt, hvor denne skitse blev udarbejdet

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)));

// Denne linje indstiller RTC med en eksplicit dato og tid, f.eks

// 21. januar 2014 kl. 03.00 vil du ringe til:

// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));

}

strip.begin ();

strip.show (); // Initialiser alle pixels til 'off'

DateTime theTime = rtc.now (); // tager hensyn til sommertid

byte secondval = theTime.second (); // få sekunder

byte minuteval = theTime.minute (); // få minutter

int hourval = theTime.hour ();

prik (strimmel. farve (0, g, 0), 50);

}

void loop () {

// få tid

DateTime theTime = rtc.now (); // tager hensyn til sommertid

int minuteval = theTime.minute (); // få minutter

int hourval = theTime.hour (); // få timer

int secondval = theTime.second ();

hvis (minuteval 0) {

strip.setPixelColor (0, r, 0, 0);

strip.show ();}

ellers hvis (minuteval <= 9) {

strip.setPixelColor (1, r, 0, 0);

strip.show ();}

ellers hvis (minuteval <= 14) {

strip.setPixelColor (2, r, 0, 0);

strip.show ();}

ellers hvis (minuteval <= 19) {

strip.setPixelColor (3, r, 0, 0);

strip.show ();}

ellers hvis (minuteval <= 24) {

strip.setPixelColor (4, r, 0, 0);

strip.show ();}

ellers hvis (minuteval <= 29) {

strip.setPixelColor (5, r, 0, 0);

strip.show ();}

ellers hvis (minuteval <= 34) {

strip.setPixelColor (6, r, 0, 0);

strip.show ();}

ellers hvis (minuteval <= 39) {

strip.setPixelColor (7, r, 0, 0);

strip.show ();}

ellers hvis (minuteval <= 44) {

strip.setPixelColor (8, r, 0, 0);

strip.show ();}

ellers hvis (minuteval <= 49) {

strip.setPixelColor (9, r, 0, 0);

strip.show ();}

ellers hvis (minuteval <= 54) {

strip.setPixelColor (10, r, 0, 0);

strip.show ();}

ellers hvis (minuteval <= 59) {

strip.setPixelColor (11, r, 0, 0);

strip.show ();}

forsinkelse (1000);

for (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

strip.show ();

}

hvis (hourval == 0) {

strip.setPixelColor (0, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 1) {

strip.setPixelColor (1, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 2) {

strip.setPixelColor (2, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 3) {

strip.setPixelColor (3, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 4) {

strip.setPixelColor (4, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 5) {

strip.setPixelColor (5, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 6) {

strip.setPixelColor (6, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 7) {

strip.setPixelColor (7, 0, 0, b);

strip.show ();}

ellers hvis (timeval == 8) {

strip.setPixelColor (8, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 9) {

strip.setPixelColor (9, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 10) {

strip.setPixelColor (10, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 11) {

strip.setPixelColor (11, 0, 0, b);

strip.show ();}

ellers hvis (timeval == 12) {

strip.setPixelColor (0, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 13) {

strip.setPixelColor (1, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 14) {

strip.setPixelColor (2, 0, 0, b);

strip.show ();}

ellers hvis (timeval == 15) {

strip.setPixelColor (3, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 16) {

strip.setPixelColor (4, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 17) {

strip.setPixelColor (5, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 18) {

strip.setPixelColor (6, 0, 0, b);

strip.show ();}

ellers hvis (timeval == 19) {

strip.setPixelColor (7, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 20) {

strip.setPixelColor (8, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 21) {

strip.setPixelColor (9, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 22) {

strip.setPixelColor (10, 0, 0, b);

strip.show ();}

ellers hvis (hourval == 23) {

strip.setPixelColor (11, 0, 0, b);

strip.show ();}

forsinkelse (1000);

for (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

strip.show ();

}

// til seriel fejlfinding

Serial.print (timeval, DEC);

Serial.print (':');

Serial.print (minuteval, DEC);

Serial.print (':');

Serial.println (secondval, DEC);

}

ugyldig prik (uint32_t c, uint8_t vent) {

for (int j = 0; j <3; j ++) {

for (int i = 0; i <12; i ++) {

strip.setPixelColor (i, c);

strip.show ();

forsinkelse (vent);

for (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

strip.show ();}

}

}

}

Trin 5: Dansk olie

Dansk olie
Dansk olie
Dansk olie
Dansk olie
Dansk olie
Dansk olie
Dansk olie
Dansk olie

Det sidste og valgfrie trin er at påføre lidt dansk olie på træet. Jeg kan virkelig godt lide, hvordan det får kornet frem, plus det giver en vis beskyttelse mod pletter og fugt. Så jeg kan varmt anbefale det.

Du kan børste den på, eller jeg bruger bare en gammel klud til at tørre den af.

Det eneste, der er tilbage nu, er at tilslutte det og nyde det.

Anbefalede: