Inhoudsopgave:

Ish Clock: 5 stappen (met afbeeldingen)
Ish Clock: 5 stappen (met afbeeldingen)

Video: Ish Clock: 5 stappen (met afbeeldingen)

Video: Ish Clock: 5 stappen (met afbeeldingen)
Video: Jouw Perfecte Werkplaats in 5 Stappen 2024, November
Anonim
Image
Image
Onderdelen en houtwerk verzamelen
Onderdelen en houtwerk verzamelen

Ik merk vaak dat ik dingen koop waarvan ik geen idee heb wat ik ermee ga doen. Dit project is het resultaat van een aankoop van een ring met 12x WS2812b LED's. Ik had er geen plannen voor, maar het zag er online cool uit, dus stopte ik er een in mijn winkelwagentje, speelde er een tijdje mee toen het arriveerde en vergat het toen helemaal.

Een tijdje later dacht ik erover om een klok te maken en herinnerde me dat hij daar zat en niets deed. Ik dacht erover om een tweede ring met 60 LED's te kopen om de minuten in te halen, maar begon toen te bedenken hoe wij / ik de neiging hebben om naar de tijd te kijken en deze af te ronden naar de dichtstbijzijnde 5 minuten.

Met dit in de mijne ging ik op pad met mijn 12 LED-ring om de ish-klok te maken. Het geeft 1 LED tegelijk weer gedurende 1 seconde, om het uur (blauwe LED) aan te geven en vervolgens de minuten (rode LED) naar beneden afgerond

Stap 1: Onderdelen en houtwerk verzamelen

Onderdelen en houtwerk verzamelen
Onderdelen en houtwerk verzamelen
Onderdelen en houtwerk verzamelen
Onderdelen en houtwerk verzamelen
Onderdelen en houtwerk verzamelen
Onderdelen en houtwerk verzamelen

Ik had veel geluk dat ik op een dag op mijn werk aankwam en een pallet zag. Deze pallet viel me op omdat hij er niet uitzag als uw standaard, alledaagse pallet. Het was schoon, met warmte behandeld en zeer ongewoon massief eiken.

Dit project is gemaakt van een van de stukken van die pallet. (Ik vroeg de baas voordat ik het mee naar huis nam)

Ook gebruikt:

  • 12 pixel ws2812b LED-ring
  • Real Time Clock (RTC) module (ik gebruik een DS3231 met I2C)
  • Compatibel met Arduino Nano v3.0
  • Acrylplaat (5mm)
  • Gekleurde draad

Gereedschap

  • Boormachine
  • Router
  • Verstelbare platte houtbit
  • Krachtschuurmachine
  • Handzaag
  • Soldeerbout
  • Heet lijmpistool
  • schuurpapier
  • Deense olie

Schuren

Ik begon met het gebruik van de elektrische schuurmachine om het blok hout recht te trekken en schoon te maken totdat alle zijkanten schoon en glad waren. Ik heb enkele onvolkomenheden zichtbaar gelaten en het is niet perfect recht of vierkant omdat ik graag wat van de geschiedenis in het hout kan zien.

Markeren en snijden van de gaten

Na het schuren koos ik de kant die ik wilde, de wijzerplaat van de klok en markeerde het midden door vanuit elke hoek lijnen te trekken. Ik heb het verstelbare houten bit een beetje groter dan de led-ring gezet, zodat er een plank zou zijn voor het acryl om op te zitten en ongeveer 5 mm diep te snijden en vervolgens de snijder te verstellen, net iets groter dan de LED-ring en nog eens 5 mm of zo af te snijden.

Routering en kabelgaten

Met behulp van mijn router met het 12 mm-bit heb ik een uitsparing in de onderkant van het blok gerouteerd om de RTC en Arduino te verbergen. Het is ongeveer 15 mm diep en niet minder dan 5 mm van elke rand. Ik markeerde het midden (ish) vanaf de onderkant en boorde omhoog met een 10 mm-bit net voorbij de helft om de LED-draden mogelijk te maken. Vervolgens heb ik met een 5 mm bit geboord vanuit het midden van de LED-uitsparing om het gat van 10 mm vanaf de onderkant te bereiken.

Nog een gat van 4 mm aan de achterkant om stroom binnen te laten komen en met een kleinere frees een kanaal te maken voor de draden aan de achterkant van de LED-ring en het houtwerk is gedaan.

Stap 2: Acrylcirkels

Acryl Cirkels
Acryl Cirkels
Acryl Cirkels
Acryl Cirkels
Acryl Cirkels
Acryl Cirkels

Om het acryl voor de voorkant van de klok te maken, zei ik dat ik een vierkant stuk moest snijden dat net groter was dan het gat dat het moest vullen. Toen ik de schuurmachine gebruikte om te beginnen, begon ik de hoeken te verwijderen totdat het ongeveer de juiste vorm en maat had. Ik ging toen over op handschuren, zodat ik niet te veel schoot en opnieuw moest beginnen.

Het was een langzaam en vervelend proces van vallen en opstaan totdat het precies goed paste, maar ik denk dat het eindresultaat het waard was. Ik eindigde met het gebruik van een zeer fijn schuurpapier om de voorkant van het acryl een matte look te geven.

Stap 3: Solderen

Solderen
Solderen
Solderen
Solderen
Solderen
Solderen
Solderen
Solderen

Ik gebruik graag een kleursysteem voor mijn draden bij deze gelegenheid kies ik:

  • Rood voor vermogen (5v)
  • Wit voor grond
  • Geel voor gegevens
  • Groen voor klok

Ik begon met het solderen van de 3 benodigde draden op de LED-ring met behulp van het bovenstaande systeem en duwde de draden door het gat. Omdat het niet aan echt geweld mag worden blootgesteld, heb ik een klein beetje hete lijm gebruikt om de ring op zijn plaats te houden. (Misschien moet ik het ooit veranderen) en installeer het acryl met slechts een beetje hete lijm rond de rand.

Vervolgens heb ik de 4 draden op de RTC gesoldeerd met behulp van het bovenstaande systeem. Om de zaken een beetje netter te houden, besloot ik de stroom voor de RTC uit de Arduino te halen. Vervolgens alles op de Arduino aangesloten en 1 draad gesoldeerd voor stroom en een andere voor aarde naar de Arduino.

RTC

  • SCL (klok) naar analoge pin 5
  • SDA (gegevens) naar analoge pin 4
  • VCC naar 5V
  • GND naar elke GND op de Arduino

LED-ring

DIN naar digitale pin 6

Ik had een oude USB-kabel hangen, dus besloot ik die te gebruiken om de klok van stroom te voorzien. Ik sneed het uiteinde af dat normaal ergens op zou aansluiten en duwde het door het gat aan de achterkant. Vervolgens de uiteinden gestript en getint voordat de VCC aan de Arduino en de LED-ring aan de positieve kant wordt gesoldeerd en de aarde van de Arduino en LED naar aarde. Ik heb later wat krimpkous gedaan en het zag er goed uit, Het hete lijmpistool kwam terug naar buiten om alles tegen te houden. Ik besloot de Arduino met genoeg speling achter te laten zodat ik in de toekomst toegang zou kunnen krijgen tot de USB-poort om hem te programmeren, maar niet zozeer dat ik eruit zou kunnen vallen.

Stap 4: De code

U zou deze code nu naar de Arduino moeten kunnen uploaden.

Als de RTC niet draait, stelt deze code de tijd in op basis van wanneer de code is gecompileerd, dus zorg ervoor dat u gewoon op de uploadknop drukt en niet verifieert.

afwisselend werkt dit ook heel goed voor het instellen van de tijd.

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

Veel van deze code heb ik geleend van de Adafruit NeoPixel-bibliotheek en sommige van een RTC-bibliotheek die ik heb gevonden en sommige heb ik zelf verzonnen.

// voeg de bibliotheekcode toe: #include

#erbij betrekken

#erbij betrekken

// definieer pinnen

#definieer pincode 6

#define BRIGHTNESS 20 // max. helderheid instellen

#definieer r 5

#definieer g 5

#definieer b 5

RTC_DS3231 rtc; // Stel klokobject vast

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

ongeldige instelling () {

Draad.begin(); // Begin I2C

rtc.begin(); // begin klok

Serieel.begin(9600);

// stel pinmodes in

pinMode (PIN, UITGANG);

if (rtc.lostPower()) {

Serial.println("RTC heeft geen stroom meer, laten we de tijd instellen!");

// volgende regel stelt de RTC in op de datum en tijd waarop deze schets is gecompileerd

rtc.adjust(DateTime(F(_DATE_), F(_TIME_)));

// Deze regel stelt de RTC in met een expliciete datum en tijd, bijvoorbeeld om in te stellen

// 21 januari 2014 om 3 uur zou je bellen:

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

}

strip.begin();

strip.show(); // Initialiseer alle pixels op 'uit'

DateTime theTime = rtc.now(); // houdt rekening met DST

byte secondval = theTime.second(); // krijg seconden

byte minuteval = theTime.minute(); // krijg minuten

int hourval = theTime.hour();

punt(strip. Kleur(0, g, 0), 50);

}

lege lus () {

// krijg tijd

DateTime theTime = rtc.now(); // houdt rekening met DST

int minuteval = theTime.minute(); // krijg minuten

int hourval = theTime.hour(); // krijg uren

int secondval = theTime.second();

if (minuutwaarde 0) {

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

strip.show();}

anders als (minuutwaarde <= 9) {

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

strip.show();}

anders als (minuutwaarde <= 14) {

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

strip.show();}

anders if (minuutwaarde <= 19) {

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

strip.show();}

anders als (minuutwaarde <= 24) {

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

strip.show();}

anders als (minuutwaarde <= 29) {

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

strip.show();}

anders als (minuutwaarde <= 34) {

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

strip.show();}

anders if (minuutwaarde <= 39) {

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

strip.show();}

anders als (minuutwaarde <= 44) {

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

strip.show();}

anders als (minuutwaarde <= 49) {

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

strip.show();}

anders if (minuutwaarde <= 54) {

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

strip.show();}

anders if (minuutwaarde <=59) {

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

strip.show();}

vertraging (1000);

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

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

strip.show();

}

if (uurwaarde == 0) {

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

strip.show();}

anders if (uurwaarde == 1) {

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

strip.show();}

anders if (uurwaarde == 2) {

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

strip.show();}

anders if (uurwaarde == 3) {

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

strip.show();}

anders if (uurwaarde == 4) {

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

strip.show();}

anders if (uurwaarde == 5) {

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

strip.show();}

anders if (uurwaarde == 6) {

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

strip.show();}

anders if (uurwaarde == 7) {

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

strip.show();}

anders if (uurwaarde == 8) {

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

strip.show();}

anders if (uurwaarde == 9) {

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

strip.show();}

anders if (uurwaarde == 10) {

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

strip.show();}

anders if (uurwaarde == 11) {

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

strip.show();}

anders if (uurwaarde == 12) {

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

strip.show();}

anders if (uurwaarde == 13) {

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

strip.show();}

anders if (uurwaarde == 14) {

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

strip.show();}

anders if (uurwaarde == 15) {

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

strip.show();}

anders if (uurwaarde == 16) {

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

strip.show();}

anders if (uurwaarde == 17) {

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

strip.show();}

anders if (uurwaarde == 18) {

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

strip.show();}

anders if (uurwaarde == 19) {

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

strip.show();}

anders if (uurwaarde == 20) {

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

strip.show();}

anders if (uurwaarde == 21) {

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

strip.show();}

anders if (uurwaarde == 22) {

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

strip.show();}

anders als (uurwaarde == 23) {

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

strip.show();}

vertraging (1000);

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

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

strip.show();

}

// voor seriële foutopsporing

Serial.print (uurwaarde, DEC);

Serieel.print(':');

Serial.print (minutenwaarde, DEC);

Serieel.print(':');

Serial.println (tweede, DEC);

}

void dot (uint32_t c, uint8_t wacht) {

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

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

strip.setPixelColor(i, c);

strip.show();

vertraging (wacht);

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

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

strip.show();}

}

}

}

Stap 5: Deense olie

Deense olie
Deense olie
Deense olie
Deense olie
Deense olie
Deense olie
Deense olie
Deense olie

De laatste en optionele stap is om wat Deense olie op het hout aan te brengen. Ik hou echt van hoe het de korrel naar voren brengt en het biedt enige bescherming tegen vlekken en vocht. Dus ik raad het ten zeerste aan.

Je kunt het erop borstelen of ik gebruik gewoon een oude doek om het op te vegen.

Het enige dat u nu nog hoeft te doen, is de stekker in het stopcontact steken en genieten.

Aanbevolen: