Përmbajtje:
- Hapi 1: Mbledhja e Furnizimeve dhe Mjeteve
- Hapi 2: Shënimi, shpimi dhe drejtimi
- Hapi 3: Shumë Ushtar, Prerje dhe Zhveshje
- Hapi 4: Instalimi
- Hapi 5: Prekjet përfundimtare
Video: Ora 132 Pixel: 5 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:24
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
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
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
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
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
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.
Vendi i dytë në konkursin e orëve
Recommended:
Ora e daljes në pension / Numërimi / Ora Dn: 4 hapa (me fotografi)
Ora e daljes në pension / Numërimi / Ora Dn: Unë kisha disa nga këto ekrane 8x8 LED me pikat e matricës në sirtar dhe po mendoja se çfarë të bëja me to. Frymëzuar nga udhëzime të tjera, më lindi ideja për të ndërtuar një ekran numërimi/zbritje për të numëruar deri në një datë/kohë të ardhshme dhe nëse koha e synuar p
Ora e Rrjetit ESP8266 Pa asnjë RTC - Ora Nodemcu NTP Pa RTC - PROJEKTI I OROCS INTERNET: 4 hapa
Ora e Rrjetit ESP8266 Pa asnjë RTC | Ora Nodemcu NTP Pa RTC | PROJEKTI I OROCS INTERNET: Në projekt do të bëhet një projekt i orës pa RTC, do të marrë kohë nga interneti duke përdorur wifi dhe do ta shfaq atë në ekranin st7735
Ora e bazuar në Arduino duke përdorur modulin DS1307 Ora në kohë reale (RTC) & 0.96: 5 hapa
Ora e bazuar në Arduino duke përdorur modulin DS1307 Ora në kohë reale (RTC) & 0.96: Përshëndetje djema në këtë tutorial do të shohim se si të bëjmë një orë pune duke përdorur një modul orësh në kohë reale DS1307 & Ekranet OLED. Pra, ne do të lexojmë kohën nga moduli i orës DS1307. Dhe shtypeni atë në ekranin OLED
Ora Gixie: Ora më e Bukur e Tubit me Shkëlqim: 4 Hapa
Ora Gixie: Ora më e Bukur e Tubave me Shkëlqim: Më pëlqen shumë Nixie Tube, por është shumë e shtrenjtë, nuk mund ta përballoj. Kështu kalova gjysmë viti duke krijuar këtë Orë Gixie. Ora Gixie arrihet duke përdorur ndriçimin ws2812 për të bërë dritën akrilike. Unë bëj çmos për ta bërë tubin RGB më të hollë
Microdot - Orë Ora Modeli LED Ora: 7 hapa (me fotografi)
Microdot - Orë Ora LED Modeli Ora: Një tjetër prodhim RGB Sunset Productions! Ky projekt është një tabelë qarkore për të bërë një version të orës time minidot të madhësisë së orës së dorës: https: //www.instructables.com/id/EEGLXQCSKIEP2876EE/me disa të tjera funksionet më të zbatueshme për një pajisje portative. Një