Sisukord:
- Samm: tarvikute ja tööriistade kogumine
- 2. samm: märgistamine, puurimine ja marsruutimine
- 3. samm: nii palju sõdurit, lõikamist ja eemaldamist
- 4. samm: installimine
- 5. samm: viimased puudutused
Video: 132 pikslikell: 5 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Olen LED -idest ja ajast kinnisideeks saanud nii kaua kui mäletan. Selles projektis olen loonud suure seinakella, mis kuvab praeguse aja, kasutades 132 neopixel -LED -i, mis on paigaldatud ja kumavad läbi kuuseplaadi. See on hübriidanaloog -digitaalne, millel on individuaalne piksel iga tunni, minuti ja sekundi kohta.
See oli seni suurim projekt, mille olen ette võtnud, hakkasin sellele 6 kuud tagasi mõtlema ja idee tuli tasapisi kokku. Olen tulemusega väga rahul ja ootan huviga seda teiega jagamas.
Samm: tarvikute ja tööriistade kogumine
Komponendid
See projekt on üles ehitatud minu kohaliku isetegevuskaupluse poe harrastustahvlile. Plaadi laius on 850 mm, kõrgus 500 mm ja sügavus 18 mm.
Selles projektis kasutatavad valgusdioodid on 5050 WS2812b, mis on paigaldatud ümmargustele PCB -dele, mille läbimõõt on umbes 9 mm ja tagaküljel on jootmispadjad.
Ma kasutan Arduino Pro Mini ühilduvat mikrokontrollerit. See on 5V 16 MHZ versioon. Valisin selle, kuna sellel on üliõhuke disain, väike jalajälg ja kõik vajalikud pordid ning mõned varud tulevasteks uuendusteks. Samuti on see 5 volti, nii et saan LED -ide, mikrokontrolleri ja RTC jaoks kasutada ühte toiteallikat
Aja arvestamise eest hoolitseb RTC (Real Time Clock) moodul, millel on DS3231 kiip. See kiip on väga täpne, nii et aeg ei tohiks liiga palju triivida.
Kasutatakse ka:
Traat. Jootmine ja kuum liim.
Tööriistad:
Puurpuurid ja puuritrid (10 mm ja 5 mm)
Jootekolb
Kuum liimipüstol
traadi jupid
Dremeli ja sukeldumisruuteri tarvikud
2. samm: märgistamine, puurimine ja marsruutimine
Puurimine
- Väina serva abil leidke tahvli keskpunkt, tõmmates vastassuunalistest nurkadest joone.
- Märkige nööri ja pliiatsi abil 3 ringi. Kõige välimine ring peaks asuma laua servast umbes 20 mm kaugusel, ülejäänud 2 joont liiguvad 15 mm kaugusel viimasest joonest.
- Kasutasin trükitud kella, mis aitas mul märkida iga minuti ja sekundi positsioonid kahel välimisel real ja tundidel sisereal.
- Puurige umbes 5 mm sügavused 10 mm augud iga tunni, minuti ja sekundi jooksul.
- Kasutage 5 mm puurit, et teha auke laual tund, minut ja sekund.
Marsruutimine
Kuigi see samm pole vajalik, võimaldab see kella seinale kinnitada.
- Ruuteri ja ringijuhiku kasutamine marsruudi traatkanalid laual
- Märkige välja ja suunake süvend RTC ja mikrokontrolleri elamiseks.
- Suunake kanal välisliinidest juhtmete süvendisse
3. samm: nii palju sõdurit, lõikamist ja eemaldamist
See järgmine osa on palju lihtsam öelda kui teha. Minu nõuanne oleks märkus kiirustada. proovige leida süsteem ja siseneda rütmi.
Iga LED vajab 5 volti sisse, 5 volti välja, andmed sisse, andmed välja, maandus sisse ja maandus välja. sealhulgas toide mikrokontrollerile ja RTC -le üle 400 juhtme, kõik mõlemast otsast eemaldatud ja joodetud.
Kleepuv sinine aine on selle sammu jaoks väga kasulik.
- Alustasin sellest, et asetasin 2 LED -i oma aukudesse kõrvuti, et välja selgitada teineteisega ühendamiseks vajaliku juhtme pikkus.
- Kasutades juhendina esimest traaditükki, lõikasin seejärel 60 värvilist traati.
- Eemaldage iga traadi otstest 2 mm varrukad ja tinage need joodisega.
- Jootke igale LED -padjale väike jootetükk.
- Jootke juhtmed valgusdioodide külge, et moodustada kaks 60 -minutilist ahelat minutite ja sekundite jaoks ning üks 12 -lüliline kett tundide jaoks. Ma kasutasin punast traati 5 V jaoks, kollast andmete jaoks ja sinist maandamiseks.
- Hoolitsege iga andmeväljundi (DOUT) ühendamise eest järgmise LED -i andmete sisendiga (DIN)
- Iga aheldoosi viimane LED ei vaja andmesidekaablit.
Kui kõik ahelad on lõpule jõudnud, on hea mõte neid enne paigaldamist testida. Kasutasin oma Arduino UNO -d ja Adafruit NeoPixel Strand Testit, et kinnitada, et iga LED töötab.
Jootke pikemad juhtmed igale ahelale 5 V, maanduse ja andmete sisendi jaoks.
Sel hetkel peaks olema viis 5 -voldist juhet, kolm Arduino Pro Mini -ga ühendatud andmesidejuhet ja 5 maandusjuhet.
Eemaldage 5 mm juhtmete otstest 5 mm ja jootke need kõik kokku ning korrake maandusjuhtmete puhul.
Pärast kolme ahela lõpetamist jootke 5 V juhe Arduino Pro Mini RAW -tihvti külge ja RTC jaoks ka VCC -tihvti külge. Arduino Pro Mini ja RTC maandusjuhe GND -le ja seejärel veel 2 juhet:
SCL alates ProC -st RTC -st kuni A5 -ni
SDA RT Mini -st kuni A4 -ni
Valgusdioodide andmeliinid peaksid ühenduma:
- Sekundid - digitaalne tihvt 3.
- Protokoll - DigitalPin 4
- Tundi - DigitalPin 5
4. samm: installimine
Pärast jootmist peaks LED -id nende aukudesse paigaldama otse edasi. Valgusdioodid tuleb paigaldada nii, et andmed jooksevad tagantpoolt vaadates vastupäeva, kuna kood on ettepoole suunatud.
Kasutasin nende hoidmiseks väikest kogust kuuma liimi, kuna soovin, et saaksin asendada ühe LED -i, kui see tulevikus ebaõnnestub.
Kasutasin ka kuuma liimi, et hoida kõik juhtmed puhtana ja korras ning kinnitada tünni pistik plaadi külge.
Saadaval on mitmeid arduino pro mini programmeerimisjuhendeid. Selle koodi Arduinole laadimiseks kasutan välist USB -seeriamuunduri meetodit:
See kood määrab RTC -le ka selle koostamise aja. seega on oluline lihtsalt üleslaadimisnupp varjata, et see järgiks ja laadiks üles nii kiiresti kui võimalik.
Suure osa sellest koodist laenas Ando Doro NeoPixel Ring Clockilt. Mõned Adafruit NeoPixel Strand Testist ja mõned panin kokku.
Peate installima mõned raamatukogud. Need on saadaval raamatukogude haldajalt Arduino tarkvaras.
Adafruit NeoPixel LED -ide ws2812b jaoks
Juhe RTC -ga rääkimiseks I2C kaudu (see on standardvarustuses)
ja RTClib, sest nad teadsid, mida RTC -lt küsida
/************************************************ ***************************NeoPixel Ring Clock, autor Andy Doro ([email protected]) https://andydoro.com/ringclock/ ************************************************* **************************
Revision ajalugu
Kuupäev Mille järgi
20140320 AFD Esimene mustand 20160105 AFD Tuhmunud kaared 20160916 AFD nipsasjaga ühilduv 20170727 AFD lisas STARTPIXELi 3D -korpusele, muutuva lähtepunkti, lisas automaatse DST -toe 20180424 AFD, kasutades DST -teeki https://github.com/andydoro/DST_RTC *
/ lisage raamatukogu kood:
#kaasama #kaasama
#kaasake
// määrake tihvtid
#define SECPIN 3 #define MINPIN 4 #define HOUPIN 5
#define BRIGHTNESS 20 // määrake maksimaalne heledus
#määratle r 10
#define g 10 #define b 10 RTC_DS3231 rtc; // Kellaobjekti loomine
Adafruit_NeoPixel ribaS = Adafruit_NeoPixel (60, SECPIN, NEO_GRB + NEO_KHZ800); // riba objekt
Adafruit_NeoPixel ribaM = Adafruit_NeoPixel (60, MINPIN, NEO_GRB + NEO_KHZ800); // riba objekt Adafruit_NeoPixel ribaH = Adafruit_NeoPixel (24, HOUPIN, NEO_GRB + NEO_KHZ800); // riba objekti bait pixelColorRed, pixelColorGreen, pixelColorBlue; // omab värviväärtusi
tühine seadistus () {
Wire.begin (); // Alusta I2C rtc.begin (); // alusta kella
Seriaalne algus (9600);
// määrake pinmodes pinMode (SECPIN, OUTPUT); pinMode (MINPIN, OUTPUT); pinMode (HOUPIN, VÄLJUND);
if (rtc.lostPower ()) {
Serial.println ("RTC kaotas voolu, määrab aja!"); // järgmine rida määrab RTC -le selle visandi koostamise kuupäeva ja kellaaja rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // See rida määrab RTC -le selgesõnalise kuupäeva ja kellaaja, näiteks määrata // 21. jaanuar 2014 kell 3:00 helistate: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); }
stripS.begin ();
ribaM.begin (); ribaH.algus (); //strip.show (); // Initsialiseeri kõik pikslid olekusse „väljas”
// käivitusjärjestus
viivitus (500);
colorWipeS (riba S. Värv (0, g, 0), 5); // Sinine värvWipeM (ribaM. Värv (r, 0, 0), 5); // Sinine värvWipeH (ribaH. Värv (0, 0, b), 50); // Sinine
viivitus (1000);
DateTime theTime = rtc.now (); // võtab arvesse DST baiti secondval = theTime.second (); // saada sekundit baiti minuteval = theTime.minute (); // saada minutit int hourval = theTime.hour (); hourval = tunniaeg % 12; // See kell on 12 tundi, kui 13-23, muuda 0-11`-ks
jaoks (uint16_t i = 0; i <secondval; i ++) {stripS.setPixelColor (i, 0, 0, b); stripS.show (); viivitus (5); }
jaoks (uint16_t i = 0; i <minuteval; i ++) {stripM.setPixelColor (i, 0, g, 0); stripM.show (); viivitus (5); }
for (uint16_t i = 0; i <hourval; i ++) {stripH.setPixelColor (i, r, 0, 0); stripH.show (); viivitus (5); }
}
void loop () {
// saada aega
DateTime theTime = rtc.now (); // võtab arvesse DST
bait secondval = theTime.second (); // saada sekundeid
bait minutivalik = theTime.minute (); // saada minutit int hourval = theTime.hour (); // saada tunnid hourval = hourval % 12; // See kell on 12 tundi, kui 13-23, muuda 0-11`-ks
stripS.setPixelColor (secondval, 0, 0, 20); stripS.show (); viivitus (10); if (secondval == 59) {for (uint8_t i = stripS.numPixels (); i> 0; i--) {stripS.setPixelColor (i, 0, g, 0); stripS.show (); viivitus (16);}}
stripM.setPixelColor (minutiline, 0, g, 0);
stripM.show (); viivitus (10); if (secondval == 59 && minuteval == 59) {for (uint8_t i = stripM.numPixels (); i> 0; i--) {stripM.setPixelColor (i, r, 0, 0); stripM.show (); viivitus (16);}}
stripH.setPixelColor (tunniaeg, r, 0, 0);
stripH.show (); viivitus (10); if (secondval == 59 && minuteval == 59 && hourval == 11) {for (uint8_t i = stripH.numPixels (); i> 0; i--) {stripH.setPixelColor (i, 0, 0, b); stripH.show (); delay (83);}} // jadamisi silumiseks Serial.print (hourval, DEC); Serial.print (':'); Serial.print (minuteval, DEC); Serial.print (':'); Serial.println (secondval, DEC); }
// Täida punktid üksteise järel värviga
void colorWipeS (uint32_t c, uint8_t wait) {for (uint16_t i = 0; i <stripS.numPixels (); i ++) {stripS.setPixelColor (i, c); stripS.show (); viivitus (oota); }}
void colorWipeM (uint32_t c, uint8_t wait) {
for (uint16_t i = 0; i <stripM.numPixels (); i ++) {stripM.setPixelColor (i, c); stripM.show (); viivitus (oota); }}
void colorWipeH (uint32_t c, uint8_t wait) {
for (uint16_t i = 0; i <stripH.numPixels (); i ++) {stripH.setPixelColor (i, c); stripH.show (); viivitus (oota); }}
5. samm: viimased puudutused
Nüüd jääb üle vaid RTC ja mikrokontroller süvendisse kinnitada.
Olen paigaldanud RTC aku poole ülespoole, et saaksin vajadusel akut hõlpsalt vahetada.
Ühendage 5v juhtmed pistiku + küljega ja maandus - küljega
Lülitage see sisse!
Minu oma on ühendatud USB -akupangaga, kuid USB -telefoni laadija töötaks sama hästi.
Märge:
Valgusdioodide heledus määratakse koodis. See on seatud madalaks, et hoida voolu madalal. Täieliku heleduse korral, kui kõik LED -id põlevad, võib see võtta ligi 8 amprit. Praeguse seadistuse korral on see väiksem kui 1.
Kellade võistluse teine koht
Soovitan:
DIY 37 LED Arduino ruleti mäng: 3 sammu (piltidega)
DIY 37 Leds Arduino rulett Mäng: Rulett on kasiinomäng, mis on nime saanud prantsuse sõna järgi, mis tähendab väikest ratast
Kuidas: Raspberry PI 4 peata (VNC) installimine RPI-pildistaja ja piltidega: 7 sammu (koos piltidega)
Kuidas: Raspberry PI 4 peata (VNC) installimine Rpi-pildistaja ja piltidega: kavatsen seda Rapsberry PI-d kasutada oma blogis hunniku lõbusate projektide jaoks. Vaadake seda julgelt. Tahtsin uuesti oma Raspberry PI kasutamist alustada, kuid mul polnud uues asukohas klaviatuuri ega hiirt. Vaarika seadistamisest oli tükk aega möödas
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Polt - DIY juhtmeta laadimise öökell (6 sammu): 6 sammu (piltidega)
Bolt - DIY juhtmeta laadimise öökell (6 sammu): Induktiivsed laadimised (tuntud ka kui juhtmeta laadimine või juhtmeta laadimine) on traadita jõuülekande tüüp. See kasutab kaasaskantavatele seadmetele elektrit pakkumiseks elektromagnetilist induktsiooni. Kõige tavalisem rakendus on Qi traadita laadimisst
Arvuti demonteerimine lihtsate sammude ja piltidega: 13 sammu (piltidega)
Arvuti demonteerimine lihtsate sammude ja piltidega: see on juhis arvuti demonteerimiseks. Enamik põhikomponente on modulaarsed ja kergesti eemaldatavad. Siiski on oluline, et oleksite selles osas organiseeritud. See aitab vältida osade kaotamist ja ka kokkupanekut