Përmbajtje:

Ora Ish: 5 hapa (me fotografi)
Ora Ish: 5 hapa (me fotografi)

Video: Ora Ish: 5 hapa (me fotografi)

Video: Ora Ish: 5 hapa (me fotografi)
Video: Stealth - Mesnata 2024, Nëntor
Anonim
Image
Image
Mbledhja e Pjesëve dhe Punimet e Drurit
Mbledhja e Pjesëve dhe Punimet e Drurit

Shpesh e gjej veten duke blerë gjëra që nuk e kam idenë me çfarë do të bëj. Ky projekt është rezultat i blerjes së një unaze që ka 12x LED të ndezur WS2812b. Unë nuk kisha plane për të, por dukej mirë në internet, kështu që unë mbërtheva një në karrocën time, luajta me të për ca kohë kur mbërriti dhe pastaj harrova gjithçka.

Disa kohë më vonë po mendoja të bëja një orë dhe u kujtova që ishte ulur atje duke mos bërë asgjë. Po mendoja të blija një unazë të dytë me 60 LED të ndezur për të kompensuar minutat, por pastaj fillova të mendoj se si ne / unë priremi të shikojmë në atë kohë dhe ta rrumbullakosim atë në 5 minutat më të afërt.

Me këtë në timen unë u nisa me unazën time 12 LED për të bërë orën e dikurshme. Shfaq 1 LED në të njëjtën kohë për 1 sekondë, për të treguar orën (Blue LED) dhe më pas minutat (LED të kuqe) të rrumbullakosura

Hapi 1: Mbledhja e Pjesëve dhe Punimet e Drurit

Mbledhja e Pjesëve dhe Punimet e Drurit
Mbledhja e Pjesëve dhe Punimet e Drurit
Mbledhja e Pjesëve dhe Punimet e Drurit
Mbledhja e Pjesëve dhe Punimet e Drurit
Mbledhja e Pjesëve dhe Punimet e Drurit
Mbledhja e Pjesëve dhe Punimet e Drurit

Isha shumë me fat që arrita në punë një ditë dhe pashë një paletë. Kjo paletë më doli jashtë pasi nuk dukej si standardi juaj, drejtimi i paletës së mullirit. Ishte lisi, i trajtuar me nxehtësi dhe lisi më i pazakontë i fortë.

Ky projekt është bërë nga njëra nga pjesët e asaj paletë. (E pyeta shefin para se ta çoja në shtëpi)

Gjithashtu përdoret:

  • Unazë LED me 12 piksele ws2812b
  • Moduli i orës në kohë reale (RTC) (Unë jam duke përdorur një DS3231 me I2C)
  • Në përputhje me Arduino Nano v3.0
  • Fletë akrilike (5 mm)
  • Tela me ngjyra

Mjetet

  • Stërvitje me energji elektrike
  • Ruter
  • Pjesë druri e rregullueshme e sheshtë
  • Sander fuqie
  • Sharrë dore
  • Makine per ngjitjen e metalit
  • Armë me zam të nxehtë
  • Letër rëre
  • Vaj danez

Lëmues

Fillova duke përdorur sanderin e energjisë për të drejtuar dhe pastruar bllokun e drurit derisa të gjitha anët të jenë të pastra dhe të lëmuara. Kam lënë disa papërsosmëri të dukshme dhe nuk është krejtësisht e drejtë ose katrore pasi më pëlqen të jem në gjendje të shoh disa nga historia në pyll.

Shënimi dhe Prerja e vrimave

Pas lëmimit zgjodha anën që doja faqen e orës dhe shënova qendrën duke vizatuar linja nga secili cep. Unë e vendosa drurin e rregullueshëm pak më të madh se unaza e udhëhequr, kështu që do të kishte një raft për akrilikun që të ulej dhe të prerë rreth 5 mm thellësi, pastaj të rregullojë prestarin pak më shumë se madhësia e unazës LED dhe të shkurtojë një tjetër 5 mm ose më shumë Me

Vrimat e rrugëzimit dhe kabllove

Duke përdorur ruterin tim me bitin 12mm, nxorra një pushim në pjesën e poshtme të bllokut për të fshehur RTC dhe Arduino. Itsshtë rreth 15 mm e thellë dhe jo më pak se 5 mm nga çdo skaj. Unë shënova qendrën (ish) nga poshtë dhe u shpova duke përdorur një copë 10 mm vetëm në gjysmën e rrugës për të lejuar telat LED. Pastaj duke përdorur një copë 5 mm, unë shpova nga qendra e gropës LED për të takuar vrimën 10 mm nga fundi.

Një vrimë tjetër prej 4 mm e pjesës së pasme për të hyrë në energji dhe dhe duke përdorur një ruter të vogël për të bërë një kanal për telat në anën e pasme të unazës LED dhe puna e drurit është përfunduar.

Hapi 2: Rrathët akrilikë

Qarqet akrilike
Qarqet akrilike
Qarqet akrilike
Qarqet akrilike
Qarqet akrilike
Qarqet akrilike

Për të bërë akrilik për pjesën e përparme të orës, unë deklarova prerjen e një pjese katrore që ishte vetëm më e madhe se vrima që duhej të mbushte. Pastaj duke përdorur sanderin e energjisë për të filluar fillova të heq qoshet derisa të ishte në lidhje me formën dhe madhësinë e duhur. Pastaj kalova në lëmimin e dorës, kështu që nuk gjuaja më shumë dhe duhet të filloj nga e para.

Ishte një proces i ngadalshëm dhe i lodhshëm i provës dhe gabimit derisa u përshtat në rregull, por mendoj se rezultati përfundimtar ia vlente. Përfundova duke përdorur një letër zmerile shumë të hollë për t'i dhënë pjesës së përparme të akrilikut një pamje të mbuluar me brymë.

Hapi 3: Saldimi

Bashkim
Bashkim
Bashkim
Bashkim
Bashkim
Bashkim
Bashkim
Bashkim

Më pëlqen të përdor një sistem ngjyrash për telat e mi me këtë rast që zgjedh:

  • E kuqe për energji (5v)
  • E bardhë për tokë
  • E verdhë për të dhënat
  • E gjelbër për orën

Fillova duke bashkuar 3 telat e nevojshëm në unazën LED duke përdorur sistemin e mësipërm dhe duke i shtyrë telat poshtë vrimës. Meqenëse nuk duhet të ekspozohet ndaj ndonjë force të vërtetë, unë përdor një grimcë të vogël zam të nxehtë për ta mbajtur unazën në vend. (Ndoshta do të më duhet ta ndryshoj) dhe ta instaloj akrilikun me vetëm pak ngjitës të nxehtë në skaj.

Pastaj i bashkova 4 telat në RTC duke përdorur sistemin e mësipërm. Për t'i mbajtur gjërat pak më të pastra, vendosa të marr energji për RTC nga Arduino. Pastaj lidhni gjithçka me Arduino dhe lidhni 1 tel për energji dhe një tjetër për tokë me Arduino.

RTC

  • SCL (Ora) në Pin Analog 5
  • SDA (Të dhënat) në Pin Analog 4
  • VCC në 5V
  • GND në çdo GND në Arduino

Unaza LED

Din në Pin dixhital 6

Kisha një kabllo të vjetër USB të varur përreth kështu që vendosa ta përdor atë për të ndezur orën. I preva fundin që normalisht do të lidhej me diçka dhe e shtyva përmes vrimës në pjesën e pasme. Pastaj zhvisheni dhe lyeni skajet para se të lidhni VCC në Arduino dhe unazën LED në anën pozitive dhe Tokën nga Arduino dhe LED në Ground. Unë pak zvogëlohem nxehtësinë më vonë dhe po dukej mirë, Arma e zamit të nxehtë doli për të mbajtur për të mbajtur gjithçka poshtë. Vendosa të largohem nga Arduino me lojëra të mjaftueshme saqë do të jem në gjendje të hyj në portën USB për ta programuar atë në të ardhmen, por jo aq shumë sa të mund të bie jashtë.

Hapi 4: Kodi

Tani duhet të jeni në gjendje ta ngarkoni këtë kod në Arduino.

Nëse RTC nuk po funksionon, ky kod do të caktojë kohën bazuar në kohën kur është përpiluar kodi, prandaj sigurohuni që thjesht të shtypni butonin e ngarkimit dhe të mos verifikoni.

në mënyrë alternative kjo gjithashtu funksionon shumë mirë për caktimin e kohës.

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

Pjesën më të madhe të këtij kodi e huazova nga biblioteka Adafruit NeoPixel dhe disa nga një bibliotekë RTC e gjeta dhe disa e krijova vetë.

// përfshini kodin e bibliotekës: #include

#përfshi

#përfshi

// përcaktoni kunjat

#përcaktoni PIN -in 6

#përkufizoni shkëlqimin 20 // vendosni shkëlqimin maksimal

#përcakto r 5

#përcakto g 5

#përcakto b 5

RTC_DS3231 rtc; // Krijoni objektin e orës

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

void setup () {

Wire.begin (); // Filloni I2C

rtc.filloj (); // ora e fillimit

Serial.filloj (9600);

// vendosni modelet pin

pinMode (PIN, OUTPUT);

nëse (rtc.lostPower ()) {

Serial.println ("RTC humbi fuqinë, lejon të caktojmë kohën!");

// rreshti i mëposhtëm vendos RTC në datën dhe kohën kur është përpiluar kjo skicë

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

// Kjo linjë vendos RTC me një datë dhe kohë të qartë, për shembull për të vendosur

// 21 janar 2014 në orën 3 të mëngjesit do të telefononit:

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

}

strip.filloj ();

shirit.shfaq (); // Filloni të gjithë pikselët në "jo"

DataTime theTime = rtc.now (); // merr parasysh DST

byte secondval = theTime.second (); // merrni sekonda

byte minuteval = theTime.minute (); // merrni minuta

int hourval = theTime.hour ();

pikë (shirit. Ngjyra (0, g, 0), 50);

}

lak void () {

// merrni kohë

DataTime theTime = rtc.now (); // merr parasysh DST

int minutale = theTime.minute (); // merrni minuta

int hourval = theTime.hour (); // merrni orë

int secondval = theTime.second ();

nëse (minutë 0) {

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

strip.shfaq ();}

tjetër nëse (minutë <= 9) {

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

strip.shfaq ();}

tjetër nëse (minutë <= 14) {

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

strip.shfaq ();}

tjetër nëse (minutë <= 19) {

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

strip.shfaq ();}

tjetër nëse (minutë <= 24) {

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

strip.shfaq ();}

tjetër nëse (minutë <= 29) {

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

strip.shfaq ();}

ndryshe nëse (minutë <= 34) {

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

strip.shfaq ();}

tjetër nëse (minutë <= 39) {

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

strip.shfaq ();}

tjetër nëse (minutë <= 44) {

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

strip.shfaq ();}

tjetër nëse (minutë <= 49) {

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

strip.shfaq ();}

tjetër nëse (minutë <= 54) {

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

strip.shfaq ();}

ndryshe nëse (minutë <= 59) {

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

strip.shfaq ();}

vonesa (1000);

për (int i = 0; i <12; i ++) {

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

shirit.shfaq ();

}

nëse (orari == 0) {

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

strip.shfaq ();}

përndryshe nëse (orari == 1) {

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

strip.shfaq ();}

ndryshe nëse (orari == 2) {

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

strip.shfaq ();}

ndryshe nëse (orari == 3) {

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

strip.shfaq ();}

tjetër nëse (orari == 4) {

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

strip.shfaq ();}

tjetër nëse (orari == 5) {

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

strip.shfaq ();}

ndryshe nëse (orari == 6) {

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

strip.shfaq ();}

tjetër nëse (orari == 7) {

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

strip.shfaq ();}

ndryshe nëse (orari == 8) {

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

strip.shfaq ();}

ndryshe nëse (orari == 9) {

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

strip.shfaq ();}

tjetër nëse (orari == 10) {

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

strip.shfaq ();}

ndryshe nëse (orari == 11) {

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

strip.shfaq ();}

tjetër nëse (orari == 12) {

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

strip.shfaq ();}

tjetër nëse (orari == 13) {

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

strip.shfaq ();}

ndryshe nëse (orari == 14) {

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

strip.shfaq ();}

ndryshe nëse (orari == 15) {

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

strip.shfaq ();}

ndryshe nëse (orari == 16) {

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

strip.shfaq ();}

përndryshe nëse (orari == 17) {

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

strip.shfaq ();}

ndryshe nëse (orari == 18) {

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

strip.shfaq ();}

tjetër nëse (orari == 19) {

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

strip.shfaq ();}

ndryshe nëse (orari == 20) {

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

strip.shfaq ();}

tjetër nëse (orari == 21) {

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

strip.shfaq ();}

ndryshe nëse (orari == 22) {

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

strip.shfaq ();}

ndryshe nëse (orari == 23) {

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

strip.shfaq ();}

vonesa (1000);

për (int i = 0; i <12; i ++) {

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

shirit.shfaq ();

}

// për korrigjimin serik

Serial.print (orë në orë, DEC);

Serial.print (':');

Serial.print (minutë, DEC);

Serial.print (':');

Serial.println (i dyti, DEC);

}

pika e zbrazët (uint32_t c, uint8_t prisni) {

për (int j = 0; j <3; j ++) {

për (int i = 0; i <12; i ++) {

strip.setPixelColor (i, c);

shirit.shfaq ();

vonesë (pritje);

për (int i = 0; i <12; i ++) {

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

strip.shfaq ();}

}

}

}

Hapi 5: Vaji danez

Vaj danez
Vaj danez
Vaj danez
Vaj danez
Vaj danez
Vaj danez
Vaj danez
Vaj danez

Hapi përfundimtar dhe opsional është të aplikoni pak vaj danez në dru. Më pëlqen shumë se si nxjerr drithin plus ofron një mbrojtje nga njollat dhe lagështia. Kështu që e rekomandoj shumë.

Mund ta lani ose thjesht përdor një leckë të vjetër për ta fshirë.

E vetmja gjë që ka mbetur tani është ta lidhni atë dhe të kënaqeni.

Recommended: