Përmbajtje:

Ora 132 Pixel: 5 hapa (me fotografi)
Ora 132 Pixel: 5 hapa (me fotografi)

Video: Ora 132 Pixel: 5 hapa (me fotografi)

Video: Ora 132 Pixel: 5 hapa (me fotografi)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Nëntor
Anonim
Image
Image
Ora 132 Pixel
Ora 132 Pixel

Kam, për aq kohë sa më kujtohet, i fiksuar nga LED dhe koha. Në këtë projekt unë kam krijuar një orë të madhe muri që tregon kohën aktuale duke përdorur 132 LED neopixel të montuar dhe duke shkëlqyer përmes një bordi bredh. Digitalshtë një dixhital analog hibrid me një pixel individual për çdo orë, minutë dhe sekondë.

Ky ishte projekti më i madh që kam ndërmarrë deri më sot, fillova ta mendoj 6 muaj më parë dhe ideja ngadalë u bashkua. Jam vërtet i kënaqur me rezultatin dhe mezi pres ta ndaj me ju.

Hapi 1: Mbledhja e Furnizimeve dhe Mjeteve

Mbledhja e Furnizimeve dhe Mjeteve
Mbledhja e Furnizimeve dhe Mjeteve
Mbledhja e Furnizimeve dhe Mjeteve
Mbledhja e Furnizimeve dhe Mjeteve
Mbledhja e Furnizimeve dhe Mjeteve
Mbledhja e Furnizimeve dhe Mjeteve
Mbledhja e Furnizimeve dhe Mjeteve
Mbledhja e Furnizimeve dhe Mjeteve

Komponentët

Ky projekt është ndërtuar mbi një dërrasë hobi të shpejtë nga dyqani im lokal DIY. Masa e bordit është 850 mm e gjerë me 500 mm e lartë dhe 18 mm e thellë.

LED -të e përdorura në këtë projekt janë 5050 WS2812b të montuara në PCB -të rrethore që janë afërsisht 9 mm në diametër me jastëkë lidhës në pjesën e pasme.

Unë jam duke përdorur një mikro kontrollues të pajtueshëm me Arduino Pro Mini. Itsshtë versioni 5V 16 MHZ. Zgjodha këtë pasi ka një dizajn super të hollë, printime të vogla në këmbë dhe të gjitha portet e nevojshme plus pak këmbim për azhurnimet e ardhshme. Itsshtë gjithashtu 5 volt, kështu që unë mund të përdor një furnizim me energji të vetme për LED, mikro kontrollues dhe RTC

Për mbajtjen e kohës kujdeset një modul RTC (Ora në kohë reale) që përmban çipin DS3231. Ky çip është shumë i saktë kështu që koha nuk duhet të shtyhet shumë.

Gjithashtu përdoret:

Tela. Ngjitës dhe ngjitës i nxehtë.

Mjetet:

Stërvitje elektrike dhe copa stërvitje druri (10mm dhe 5mm)

Makine per ngjitjen e metalit

Armë me zam të nxehtë

copa teli

Dremel dhe zhyten aksesorët e ruterit

Hapi 2: Shënimi, shpimi dhe drejtimi

Shënimi, shpimi dhe drejtimi
Shënimi, shpimi dhe drejtimi
Shënimi, shpimi dhe drejtimi
Shënimi, shpimi dhe drejtimi
Shënimi, shpimi dhe drejtimi
Shënimi, shpimi dhe drejtimi

Shpimi

  • Duke përdorur një skaj të ngushtë gjeni qendrën e tabelës duke tërhequr një vijë nga qoshet e kundërta.
  • Shënoni 3 qarqe duke përdorur një copë tela dhe një stilolaps. Rrethi i jashtëm duhet të jetë rreth 20 mm nga buza e tabelës me 2 rreshtat e tjerë që lëvizin me 15 mm nga rreshti i fundit.
  • Kam përdorur një faqe të orës të shtypur për të më ndihmuar të shënoj pozicionet e secilit prej minutave dhe sekondave në 2 rreshtat e jashtëm dhe orët në vijën e brendshme.
  • Stërvitni vrima 10 mm afërsisht 5 mm të thella për çdo orë, minutë dhe sekondë.
  • Përdorni stërvitjen 5 mm për të bërë vrima përmes tabelës për orë, minutë dhe sekondë.

Itinerari

Megjithëse ky hap nuk është i nevojshëm, ai do të lejojë që ora të vendoset në një mur.

  • Përdorimi i një ruteri dhe udhëzuesi i rrethit kanale teli të rrugës në tabelë
  • Shënoni dhe drejtoni një pushim për të jetuar RTC dhe Micro Controller.
  • Kaloni një kanal nga linjat e jashtme në gropën për telat

Hapi 3: Shumë Ushtar, Prerje dhe Zhveshje

Shumë Ushtar, Prerje dhe Zhveshje
Shumë Ushtar, Prerje dhe Zhveshje
Shumë Ushtar, Prerje dhe Zhveshje
Shumë Ushtar, Prerje dhe Zhveshje
Shumë Ushtar, Prerje dhe Zhveshje
Shumë Ushtar, Prerje dhe Zhveshje

Kjo pjesë tjetër është shumë më e lehtë për tu thënë sesa për të bërë. Këshilla ime do të ishte shënim për ta nxituar. përpiquni të gjeni një sistem dhe futuni në një ritëm.

Secila prej LED -ve ka nevojë për 5 volt brenda, 5 volt jashtë, Të dhëna brenda, Të dhëna jashtë, Ground in dhe Ground out. duke përfshirë fuqinë për mikrokontrolluesin dhe RTC mbi 400 telat e tij, të gjitha të zhveshura dhe të lidhura në të dy skajet.

Një substancë blu ngjitëse është shumë e dobishme për këtë hap.

  • Fillova duke vendosur 2 LED në vrimat e tyre pranë njëra -tjetrës për të përcaktuar gjatësinë e telit të nevojshëm për t'u lidhur me njëri -tjetrin.
  • Duke përdorur pjesën e parë të telit si udhëzues, unë pastaj prerë 60 nga secili tel me ngjyra.
  • Hiqni mëngën 2mm nga skajet e secilit tel dhe kallajojini me saldim.
  • Bashkoni një copë të vogël saldimi në secilën prej pads LED.
  • Lidhni telat në LED për të formuar dy zinxhirë prej 60 për minutat dhe sekondat dhe një zinxhir prej 12 për orë. Kam përdorur tela të kuq për 5V, të verdhë për të dhëna dhe blu për tokë.
  • Kujdesuni që të lidhni çdo Data Out (DOUT) me Data In (DIN) të LED -it tjetër
  • Ledi i fundit në secilën dozë zinxhir nuk ka nevojë për tela nga të dhënat.

Pasi të përfundojnë të gjithë zinxhirët, është një ide e mirë t'i provoni ato para se t'i instaloni. Kam përdorur Arduino UNO dhe Testin e Adrandruit NeoPixel Strand për të konfirmuar që çdo LED po funksionon.

Lidhni tela më të gjatë në secilin prej zinxhirëve për 5V, Ground dhe Data in.

Në këtë pikë duhet të ketë pesë tela 5v, tre tela të dhënash të lidhura me Arduino Pro Mini dhe 5 tela Ground.

Zhvisheni 5mm nga skajet e telave 5v dhe ngjitini të gjitha së bashku dhe përsëriteni për telat Ground.

Pas përfundimit të tre zinxhirëve lidhni një tel 5V në kunjin RAW të Arduino Pro Mini dhe gjithashtu në kunjin VCC për RTC. Një tel tokësor në GND në Arduino Pro Mini dhe RTC dhe më pas 2 tela të tjerë:

SCL nga RTC në A5 në Pro Mini

SDA nga RTC në A4 në Pro Mini

Linjat e të dhënave nga LED -të duhet të lidhen me:

  • Sekondat - Pin dixhital 3.
  • Procesverbal - DigitalPin 4
  • Orari - DigitalPin 5

Hapi 4: Instalimi

Duke u instaluar
Duke u instaluar
Duke u instaluar
Duke u instaluar
Duke u instaluar
Duke u instaluar

Pasi të jenë ngjitur, instalimi i LED -ve në vrimat e tyre duhet të jetë drejt përpara. LED-të duhet të instalohen në mënyrë që të dhënat të qarkullojnë në drejtim të kundërt të akrepave të orës kur i shikoni nga mbrapa pasi kodi është konfiguruar përballë.

Kam përdorur një sasi të vogël zam të nxehtë për t'i mbajtur ato pasi dua të jem në gjendje të zëvendësoj një LED të vetëm nëse ai dështon në të ardhmen.

Kam përdorur gjithashtu zam të nxehtë për t'i mbajtur të gjitha telat të pastra dhe të rregullta dhe për të rregulluar lidhësin e fuçisë në tabelë.

Ekzistojnë një numër udhëzuesish programimi arduino pro mini. Unë përdor metodën e jashtme të konvertuesit USB në serial për të ngarkuar këtë kod në Arduino:

Ky kod gjithashtu do të caktojë kohën në RTC në kohën kur është përpiluar. kështu që është e rëndësishme që thjesht të mbani butonin e ngarkimit në mënyrë që të përputhet dhe ngarkohet sa më shpejt që të jetë e mundur.

Pjesa më e madhe e këtij kodi u huazua nga Ora Unazore NeoPixel nga Andy Doro. Disa nga Testi i Adrandruit NeoPixel Strand dhe disa i bashkova.

Ju do të duhet të keni instaluar disa biblioteka. Ato janë të disponueshme nga Menaxheri i Bibliotekave në programin Arduino.

Adafruit NeoPixel për LED -të ws2812b

Tela për të folur me RTC mbi I2C (kjo është ndërtuar si standard)

dhe RTClib për të ditur se çfarë t'i kërkoni RTC

/********************************************* **************************Ora NeoPixel Unaza nga Andy Doro ([email protected]) https://andydoro.com/ringclock/ ********************************************** *************************

Historia e kaluar

Data Nga Çfarë

20140320 AFD Drafti i parë 20160105 AFD Harkat e zbehur 20160916 AFD Trinket i pajtueshëm 20170727 AFD shtoi STARTPIXEL për rrethimin 3D, pikënisje të ndryshueshme, shtoi mbështetje automatike DST 20180424 AFD duke përdorur bibliotekën DST https://github.com/andydoro/DST_RTC *

/ përfshini kodin e bibliotekës:

#përfshi #përfshi

#përfshi

// përcaktoni kunjat

#define SECPIN 3 #define MINPIN 4 #define HOUPIN 5

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

#përcakto r 10

#përcakto g 10 #përcakto b 10 RTC_DS3231 rtc; // Krijoni objektin e orës

Shirit Adafruit_NeoPixelS = Adafruit_NeoPixel (60, SECPIN, NEO_GRB + NEO_KHZ800); // objekt strip

Shirit Adafruit_NeoPixelM = Adafruit_NeoPixel (60, MINPIN, NEO_GRB + NEO_KHZ800); // shirit objekt Adafruit_NeoPixel stripH = Adafruit_NeoPixel (24, HOUPIN, NEO_GRB + NEO_KHZ800); // strip objekt byte pixelColorRed, pixelColorGreen, pixelColorBlue; // mban vlerat e ngjyrave

void setup () {

Wire.begin (); // Fillo I2C rtc.filloj (); // ora e fillimit

Serial.filloj (9600);

// vendosni pinmode pinMode (SECPIN, OUTPUT); pinMode (MINPIN, OUTPUT); pinMode (HOUPIN, OUTPUT);

nëse (rtc.lostPower ()) {

Serial.println ("RTC humbi fuqinë, lejon të caktojmë kohën!"); // rreshti i mëposhtëm e vendos RTC në datën dhe kohën kur është bërë kjo skicë rtc.adjust (DateTime (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 ju do të telefononi: // rtc.adjust (DataTime (2014, 1, 21, 3, 0, 0)); }

stripS.filloj ();

stripM.filloj (); stripH.filloj (); //strip.show (); // Filloni të gjithë pikselët në "jo"

// sekuenca e fillimit

vonesë (500);

colorWipeS (shirita. Ngjyra (0, g, 0), 5); // Ngjyra bluWipeM (stripM. Color (r, 0, 0), 5); // Ngjyra bluWipeH (stripH. Color (0, 0, b), 50); // Blu

vonesa (1000);

DataTime theTime = rtc.now (); // merr parasysh DST byte secondval = theTime.second (); // merrni sekonda byte minuteval = theTime.minute (); // merrni minuta në orë = theTime.hour (); orë orë = orë orë 12; // Kjo orë është 12 orë, nëse 13-23, konvertohet në 0-11`

për (uint16_t i = 0; i <e dyta; i ++) {stripS.setPixelColor (i, 0, 0, b); stripS.shfaq (); vonesa (5); }

për (uint16_t i = 0; i <minuteval; i ++) {stripM.setPixelColor (i, 0, g, 0); stripM.shfaq (); vonesa (5); }

për (uint16_t i = 0; i <orë; i ++) {stripH.setPixelColor (i, r, 0, 0); stripH.shfaq (); vonesa (5); }

}

lak void () {

// merrni kohë

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

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

byte minuteval = theTime.minute (); // merrni minuta në orë = theTime.hour (); // merrni orë orë në orë = orë në orë % 12; // Kjo orë është 12 orë, nëse 13-23, konvertohet në 0-11`

stripS.setPixelColor (e dyta, 0, 0, 20); stripS.shfaq (); vonesa (10); if (e dyta == 59) {për (uint8_t i = stripS.numPixels (); i> 0; i--) {stripS.setPixelColor (i, 0, g, 0); stripS.shfaq (); vonesë (16);}}

stripM.setPixelColor (minutë, 0, g, 0);

stripM.shfaq (); vonesa (10); nëse (e dyta == 59 && minuta = = 59) {për (uint8_t i = stripM.numPixels (); i> 0; i--) {stripM.setPixelColor (i, r, 0, 0); stripM.shfaq (); vonesë (16);}}

stripH.setPixelColor (orë në orë, r, 0, 0);

stripH.shfaq (); vonesa (10); nëse (e dyta == 59 && minutaval == 59 && orë = = 11) {për (uint8_t i = stripH.numPixels (); i> 0; i--) {stripH.setPixelColor (i, 0, 0, b); stripH.shfaq (); vonesë (83);}} // për korrigjimin serik Serial.print (orë, DEC); Serial.print (':'); Serial.print (minutë, DEC); Serial.print (':'); Serial.println (i dyti, DEC); }

// Plotësoni pikat njëra pas tjetrës me një ngjyrë

ngjyra e pavlefshme Fshij (uint32_t c, uint8_t pres) {për (uint16_t i = 0; i <stripS.numPixels (); i ++) {stripS.setPixelColor (i, c); stripS.shfaq (); vonesë (pritje); }}

ngjyra e pavlefshmeWipeM (uint32_t c, uint8_t prisni) {

për (uint16_t i = 0; i <stripM.numPixels (); i ++) {stripM.setPixelColor (i, c); stripM.shfaq (); vonesë (pritje); }}

ngjyra e pavlefshmeWipeH (uint32_t c, uint8_t prisni) {

për (uint16_t i = 0; i <stripH.numPixels (); i ++) {stripH.setPixelColor (i, c); stripH.shfaq (); vonesë (pritje); }}

Hapi 5: Prekjet përfundimtare

Image
Image
Prekjet përfundimtare
Prekjet përfundimtare

E tëra çfarë duhet të mbetet tani është të rregulloni RTC dhe Micro Controller poshtë në pushim.

Unë kam vendosur anën e baterisë RTC lart, kështu që mund ta ndryshoj me lehtësi baterinë nëse është e nevojshme.

Lidhni telat 5v në anën + të lidhësit dhe Ground në anën -

Fuqizojeni!

Unë e kam të lidhur me një bankë baterie USB, por një karikues telefoni USB do të funksiononte po aq mirë.

Shënim:

Shkëlqimi i LED -ve është vendosur në kod. Shtë vendosur e ulët për të mbajtur barazimin aktual të ulët. Me shkëlqim të plotë me të gjitha LED -të e ndezura mund të tërheqë gati 8 amper. Me konfigurimin aktual është më pak se 1.

Konkursi i orëve
Konkursi i orëve
Konkursi i orëve
Konkursi i orëve

Vendi i dytë në konkursin e orëve

Recommended: