Sisällysluettelo:
- Vaihe 1: Materiaaliluettelo
- Vaihe 2: Kaiverrus ja kaiverrus
- Vaihe 3: Hionta ja lakkaus
- Vaihe 4: Piirin tekeminen
- Vaihe 5: Ohjelman lataaminen
- Vaihe 6: LED -valojen sijoittaminen
- Vaihe 7: LEDien liittäminen
- Vaihe 8: Piirilevyn liittäminen LED -valojen kanssa
- Vaihe 9: Asenna marmorit
Video: Binaarinen työpöytäkello: 9 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Binaarikellot ovat mahtavia ja yksinomaan binaarin (digitaalisten laitteiden kieli) tuntevalle henkilölle. Jos olet tekninen kaveri, tämä outo kello on sinua varten. Joten tee yksi itse ja pidä aikasi salassa!
Internetistä löydät paljon erilaisia binaarikelloja. Jopa voit ostaa binaarikellon verkkokaupasta, kuten amazon.com. Mutta tämä kello on erilainen kuin kaikki, ja täällä käytin marmorin soittamista antamaan sille tyylikäs ilme.
Ennen kuin menet alas, katso demovideo.
Vaihe 1: Materiaaliluettelo
Laitteiston osat
1. Arduino Pro Micro (osta osoitteesta aliexpress.com): Tämä on kellon tärkein sydän ja lukee ajan RTC: ltä ja opastaa LEDien käyttämiseen vastaavasti. Voit käyttää Arduino Nanoa tai jopa Arduino Unoa Pro Micron sijasta, jos koolla ei ole sinulle väliä.
2. DS3231 RTC -moduuli (osta aliexpress.com -sivustolta): DS3231 RTC pitää ajan kirjaa, vaikka virta katkeaa. Vaikka muita RTC -laitteita, kuten DS1307, voidaan käyttää, DS3231 on tarkempi.
3. MAX7219CNG LED -ohjaimen IC (osta osoitteesta aliexpress.com): Arduinolla on rajoitettu määrä nastoja. Joten jos haluat ajaa tonnia LED -valoja tuhlaamatta Arduino -nastat MAX7219 on hengenpelastaja. Se ottaa sarjatietoja ja voi käyttää 64 LEDiä itsenäisesti.
4. 20 KPL Sininen LED, 5 mm (osta aliexpress.com): Sininen antoi minulle parhaan tuloksen. Voit kokeilla muilla väreillä.
5. 20 PCS Playing Marble (osta aliexpress.com): Käytettiin vakiokokoista marmoria. Marmorin on oltava läpinäkyvä valon läpäisemiseksi.
6. Vastus 10K: Käytetään MAX7219 IC: n segmenttivirran säätämiseen. Katso taulukosta eri segmenttivirran tarkka arvo.
7. Johdot
8. Piirilevyn prototyyppi (osta aliexpress.com): Käytin prototyyppistä piirilevyä prototyypille MAX7219 IC: lle, jossa oli IC -pohja. Voit myös suunnitella mukautetun piirilevyn.
Laitteistotyökalut
1. CNC 3018 PRO Laserkaivertaja Puu CNC -reititin (osta aliexpress.com): Theis DIY CNG -konetta käytettiin puun veistämiseen marmorille ja LED -valolle. Tämä on erinomainen kone edulliseen hintaan kaikille valmistajille ja harrastajille.
2. Juotosasema (osta sellainen aliexpress.com-sivustolta): Hankkeessa tarvitaan jonkin verran juotosta ja hyvä juotin on pakollinen työkalu valmistajalle. 60W on hyvä valinta DIY -juottamiseen.
3. Wire Cutter (osta aliexpress.com)
4. Titaanipinnoitettu kovametallijyrsin CNC: lle (osta osoitteesta aliexpress.com): Voit myös kokeilla koneen mukana toimitetulla terällä. Siinä tapauksessa sinun on tehtävä joitain muutoksia suunnitteluun.
Vaihe 2: Kaiverrus ja kaiverrus
Otin 165X145X18.8 mm pehmeän vaahteran puukappaleen kellon LEDien sijoittamiseen. Jokaisen ledin yläosaan sijoitan marmorin ja vakiomallisen marmorin koko on halkaisijaltaan 15,5 mm. Joten tein 15,7 mm reikiä, joiden syvyys oli 7 mm. Reiän keskelle tein 5 mm: n poran LED -valon sijoittamiseen. Kaikki teksti on tehty 2 mm: n syvyydellä. Voit lisätä tai vähentää valitsemasi syvyyttä. Voit myös kokeilla tekstin laserkaiverruksia.
Koko suunnittelun on tehnyt Inventablesin Easel. Easel on verkkopohjainen ohjelmistoalusta, jonka avulla voit suunnitella ja veistää yhdestä yksinkertaisesta ohjelmasta, ja useimmat ominaisuudet ovat ilmaisia. Sinun on kirjauduttava järjestelmään vain luomalla tili tai käyttämällä Gmailia.
Easel Pro on jäsenyyteen perustuva pilviohjelmisto, joka perustuu Inventablesin ilmaiseen Easel-ohjelmistoon. Easel ja Easel Pro minimoivat monimutkaisten CAD- ja CAM -tuotteiden valmistusohjelmistojen esteet, mikä helpottaa käyttäjien fyysisten tuotteiden valmistamista.
Easelin avulla voit viedä suunnittelutiedoston G-koodimuodossa tai määrittää CNC: n suoraan Easel-ympäristöstä ja lähettää komennon CNC: lle. Tässä tapauksessa sinun on asennettava maalaustelineen ohjain. Voit myös tuoda aiemmin luodun G-koodin Easel IDE: hen ja muokata sitä. Lisäsin tähän suunnittelutiedoston. Voit helposti muokata muotoilua haluamallasi tavalla maalaustelineellä.
Vaihe 3: Hionta ja lakkaus
Lakka voi tarjota kauniin viimeistelyn puuprojekteille ja maalauksille. Ennen lakan levittämistä puuhun, hio kappale ja puhdista työtila. Hionta antaa sileän ilmeen ja valmistelee puun lakalle. Levitä lakka useisiin ohuisiin kerroksiin ja anna kunkin kuivua kunnolla ennen kuin jatkat seuraavaan. Jos haluat maalata maalauksen, anna sen kuivua kokonaan ja harjaa sitten lakka huolellisesti. Yksi kerros riittää monille maalauksille, mutta voit lisätä lisäkerroksen niin kauan kuin annat edellisen kuivua perusteellisesti.
Ennen lakan levittämistä sinun on poistettava kaikki epätäydellisyydet ja tahrat ennen lakan levittämistä. Käytä tätä varten 100 karkeaa hiekkapaperia keskeneräisiin kappaleisiin ja käsittele puun syitä. Hio kevyesti, kunnes pala on sileä. Puukappaleen puhdistamisen jälkeen levitä lakka hyvin tuuletetulle alueelle.
Lakka säästää puuta ympäristön pölyltä ja kosteudelta, mutta se voi vaikuttaa puun väriin.
Vaihe 4: Piirin tekeminen
Kellon pääkomponentti on Arduino Pro Mini -kortti ja DS3231 RTC -moduuli. Arduino Pro Minin ja RTC -moduulin liittäminen on hyvin yksinkertaista. Sinun on liitettävä RTC -moduulin SDA -nasta Arduinon SDA -nastaan ja RTC -moduulin SCL -nasta Arduinon SCL -nastaan. SDA- ja SCL -nastat ovat itse asiassa A4- ja A5 -nastaisia Arduinoa. Sinun on myös muodostettava yhteinen maadoitusyhteys Arduinon ja RTC -moduulien välille. Liitosten tekemiseen käytin hyppyjohtoja.
Yhteys Arduinon ja DS3231 RTC: n välillä:
Arduino | DS3231 |
---|---|
SCL (A5) | SCL |
SDA (A4) | SDA |
5V | VCC |
GND | GND |
Tunnin, minuutin ja sekunnin näyttämiseen binäärikello vaati 20 LEDiä. Jos haluat näyttää päivämäärän, se vaatii enemmän. Arduino -kortilla on rajoitettu GPIO -nastat. Joten käytin MAX7219CNG LED -ohjaimen IC: tä ajamaan tonnia LED -valoja käyttämällä vain kolmea Arduino -kortin nastaa.
MAX7219 -ohjainpiiri pystyy käyttämään 64 yksittäistä LEDiä ja käyttämään vain 3 johtoa kommunikointiin Arduinon kanssa, ja lisäksi voimme ketjuttaa useita ohjaimia ja matriiseja ja käyttää edelleen samoja 3 johtoa.
64 LEDiä ohjaa 16 IC: n lähtötapaa. Kysymys kuuluu nyt, miten se on mahdollista. No, suurin sallittujen LED -merkkivalojen määrä samanaikaisesti on itse asiassa kahdeksan. LEDit on järjestetty 8 × 8 rivien ja sarakkeiden sarjaksi. Joten MAX7219 aktivoi jokaisen sarakkeen hyvin lyhyeksi ajaksi ja samalla se ajaa myös jokaista riviä. Joten vaihtamalla nopeasti sarakkeita ja rivejä ihmissilmä huomaa vain jatkuvan valon.
MAX7219: n VCC ja GND menevät Arduinon 5V- ja GND -nastoille ja kolme muuta nastaa, DIN, CLK ja CS, mihin tahansa Arduino -kortin digitaaliseen nastaan. Jos haluamme liittää useamman kuin yhden moduulin, liitämme vain edellisen katkaisukortin ulostulonapit uuden moduulin tulonappeihin. Itse asiassa nämä nastat ovat kaikki samat paitsi, että edellisen levyn DOUT -nasta menee uuden levyn DIN -nastaan.
Yhteys Arduinon ja MAX7219CNG:
Arduino | MAX7219 |
---|---|
D12 | DIN |
D11 | CLK |
D10 | LADATA |
GND | GND |
Vaihe 5: Ohjelman lataaminen
Koko ohjelma on kirjoitettu Arduino -ympäristössä. Luonnoksessa käytettiin kahta ulkoista kirjastoa. Yksi on RTC -moduulille ja toinen MAX7219 IC: lle. Lataa kirjastot linkistä ja lisää Arduino IED -laitteeseen ennen ohjelman kokoamista.
Ohjelman lataaminen Arduino Pro Miniin on hieman hankalaa. Katso opetusohjelma, jos et ole koskaan käyttänyt Arduino Pro Miniä aikaisemmin:
/*
GIT: https://github.com/jarzebski/Arduino-DS3231> GIT: https://github.com/jarzebski/Arduino-DS3231> */#include "Wire.h" #include "DS3231.h" #include "LedControl.h" /* Nyt tarvitsemme LedControlin toimimaan. ***** Nämä nastanumerot eivät todennäköisesti toimi laitteistosi kanssa ***** nasta 12 on kytketty DataIniin nasta 11 on kytketty CLK -nastaan 10 on kytketty LOADiin Meillä on vain yksi MAX72XX. */ DS3231 kello; RTCDateTime dt; LedControl lc = LedControl (12, 11, 10, 1); int sekuntia, minuuttia, tuntia; tavunumero [10] = {B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; void setup () {//Serial.begin(9600); / * MAX72XX on virransäästötilassa käynnistettäessä, meidän on tehtävä herätys */ lc.shutdown (0, false); / * Aseta kirkkaus keskiarvoon */ lc.setIntensity (0, 15); / * ja tyhjennä näyttö */ lc.clearDisplay (0); //lc.setLed(0, row, col, true); // lc.setRow (0, 0, B11111111); // lc.setRow (0, 1, B11111111); // lc.setRow (0, 2, B11111111); // lc.setRow (0, 3, B11111111); // lc.setRow (0, 4, B11111111); // lc.setRow (0, 5, B11111111); // lc.setColumn (0, 2, B11111111); // lc.setColumn (0, 3, B11111111); // lc.setColumn (0, 4, B11111111); // lc.setColumn (0, 5, B11111111); // Alusta DS3231 clock.begin (); // Aseta luonnoksen kokoamisaika //clock.setDateTime(_DATE_, _TIME_); pinMode (5, INPUT_PULLUP); pinMode (6, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); } int -valikko = 0, ylös, alas; int hours_one; int hours_ten; int minutes_one; int minutes_ten; int seconds_one; int seconds_ten; void loop () {if (digitalRead (5) == 0) {delay (300); menu ++; jos (menu> 3) menu = 0; } if (menu == 0) {dt = clock.getDateTime (); tuntia = dt.hur; minuuttia = dt.minute; sekuntia = dt.second; jos (tuntia> 12) tuntia = tuntia - 12; jos (tuntia == 0) tuntia = 1; hours_one = tuntia%10; hours_ten = tuntia/10; minutes_one = minuuttia%10; minutes_ten = minuuttia/10; seconds_one = sekuntia%10; seconds_ten = sekuntia/10; lc.setRow (0, 0, luku [sekuntia_yksikkö]); lc.setRow (0, 1, luku [sekuntia]); lc.setRow (0, 2, luku [minuutit_yksi]); lc.setRow (0, 3, luku [minuuttia_kymmentä]); lc.setRow (0, 4, luku [tuntia_yksi]); lc.setRow (0, 5, luku [tuntia_kymmentä]); } if (menu == 1) {if (digitalRead (6) == 0) {delay (300); tuntia ++; jos (tuntia> = 24) tuntia = 0; } if (digitalRead (7) == 0) {delay (300); tuntia--; jos (tuntia = 60) minuuttia = 0; } if (digitalRead (7) == 0) {delay (300); pöytäkirja--; jos (minuutit <0) minuuttia = 0; } minutes_one = minuuttia%10; minutes_ten = minuuttia/10; lc.setRow (0, 4, B00000000); lc.setRow (0, 5, B00000000); lc.setRow (0, 1, B00000000); lc.setRow (0, 0, B00000000); lc.setRow (0, 2, luku [minuutit_yksi]); lc.setRow (0, 3, luku [minuuttia_ten]); } jos (menu == 3) {clock.setDateTime (2020, 4, 13, tuntia, minuuttia, 01); menu = 0; } //lc.setLed(0, rivi, sarake, epätosi); //lc.setLed(0, row, col, true); //lc.setColumn(0, col, B10100000); //lc.setRow(0, 4, B11111111); //lc.setRow(0, rivi, (tavu) 0); //lc.setColumn(0, col, (tavu) 0); // Katso aluksi nolla DS3231_dateformat esimerkki // Serial.print ("Raw data:"); // Serial.print (dt.year); Serial.print ("-"); // Serial.print (dt.month); Serial.print ("-"); // Sarjanjälki (dt.day); Serial.print (""); // Sarjanjälki (dt.hour); Serial.print (":"); // Sarjanjälki (dt.minute); Serial.print (":"); // Serial.print (dt.second); Serial.println (""); // // viive (1000); }
Vaihe 6: LED -valojen sijoittaminen
Tässä vaiheessa laitan kaikki LEDit puulevyn reikiin. LEDien liitännät on esitetty kaaviossa. Koska käytämme MAX7219 LED -ohjainta LEDien ohjaamiseen, kaikkien LEDien on oltava kytkettyinä matriisimuodossa. Joten liitin jokaisen sarakkeen kaikkien LEDien anoditapit yhteen ja jokaisen rivin kaikki katodinastat yhteen kaavion mukaisesti. Nyt pylväsnastamme ovat itse asiassa LED -anodien nastat ja rivitapit ovat itse asiassa LEDien katoditappeja.
Jos haluat käyttää LED -valoja MAX7219: llä, sinun on kytkettävä ledin katoditappi IC: n numeronastaan ja ledin anoditappi IC: n segmenttitappiin. Pylväsnastamme tulee siis liittää segmenttitappeihin ja rivitapit MAX7219: n numerotappiin.
Sinun on kytkettävä vastus ISET -nastan ja MAX7219 IC: n VCC: n väliin, ja tämä vastus ohjaa segmenttien virtaa. Käytin 10K vastusta ylläpitämään 20mA kussakin segmenttitapissa.
Vaihe 7: LEDien liittäminen
Tässä vaiheessa liitin kaikki LEDit rivi-sarake-matriisimuodossa. Minun piti käyttää ylimääräisiä hyppyjohtoja LEDien liittämiseen, mutta voit muodostaa yhteyden ilman ylimääräisiä johtoja, jos LED -valojen johdot ovat riittävän pitkiä koskettamaan toisiaan.
Tässä kokoonpanossa vastusta ei tarvita, koska MAX7219 huolehtii virrasta. Sinun velvollisuutesi on valita oikea arvo ISET -vastukselle ja vetää ISET -nasta ylös tällä vastuksella. Ennen LED -valojen sijoittamista ja liittämistä ehdotan, että tarkistat jokaisen LED -valon. Koska huonon LED -valon asettaminen tappaa paljon aikaa. Seuraavassa vaiheessa liitämme rivi- ja sarakejohdot MAX ic: hen.
Vaihe 8: Piirilevyn liittäminen LED -valojen kanssa
Piirikorttimme, mukaan lukien RTC, Arduino ja MAX7219, on valmis pitkään, ja valmistelimme myös LED -matriisin edellisessä vaiheessa. Nyt meidän on yhdistettävä kaikki asiat yhteen kaavion mukaisesti. Ensinnäkin meidän on liitettävä rivi- ja sarakejohdot MAX7219IC -laitteeseen. Yhteys mainittiin kaaviossa. Jotta asia olisi selkeämpi, seuraa alla olevaa taulukkoa.
LED -matriisi | MAX7219CNG |
---|---|
RIVI 0 | DIGIT0 |
RIVI 1 | DIGIT1 |
RIVI2 | DIGIT2 |
RIVI 3 | DIGIT3 |
SARAKE0 | SEGA |
Sarake 1 | SEGB |
Sarake 2 | SEGC |
Sarake 3 | SEGD |
Sarake 4 | SEGE |
Sarake5 | SEGF |
RIVI0-> Ylin rivi
COLUMN0 -> Oikein sarake (SS COLUMN)
Liitännän jälkeen sinun on kiinnitettävä piirilevy ja Arduino puukappaleella, jotta yhteys ei katkea. Käytin kuumaa liimaa kaikkien piirien kiinnittämiseen. Oikosulun välttämiseksi käytä suurta määrää liimaa piilottaaksesi juotosliitoksen piirilevyn alapuolelle.
Jotta kelloa voidaan käyttää, sinun on pidettävä mahdollisuus säätää aikaa tarvittaessa. Lisäsin kolme painikekytkintä ajan säätämiseen. Yksi vaihtoehdon vaihtamiseen ja kaksi tunnin ja minuutin lisäämiseen ja vähentämiseen. Painikkeet on sijoitettu oikeaan yläkulmaan, jotta niihin pääsee helposti käsiksi.
Vaihe 9: Asenna marmorit
Tämä on projektimme viimeinen vaihe. Kaikki piiriliitännät on tehty. Nyt sinun on asetettava marmori puukellon yläreunaan. Käytin marmorien asettamiseen kuumaa liimaa. Käytä tähän tarkoitukseen läpinäkyvää valkoista liimapuikkoa. Levitin kuumaa liimaa jokaiseen reikään yläpuolelta ja LEDien päälle asetin varovasti marmorin jokaiseen reikään. Liiman lisääminen tasaisesti lisää ledin hehkua. Käytin sinistä LEDiä kellossani. Se antoi minulle parhaan tuloksen.
Anna virtaa kellolle. Jos aika näyttää, niin onnittelut !!!
Sinä teit sen!
Nauttia!
Make it Glow -kilpailun toinen sija
Suositeltava:
Binaarinen puumorse -dekooderi: 7 vaihetta (kuvilla)
Binaarinen puumorse-dekooderi: a. Artikkelit {font-size: 110,0%; fontin paino: lihavoitu; fontti-tyyli: kursivoitu; tekstin koristelu: ei mitään; taustaväri: punainen;} a. artikkelit: hover {background-color: black;} Tässä ohjeessa selitetään, kuinka Morse-koodi puretaan Arduino Uno R3.T -laitteella
DIY Arduino -binaarinen herätyskello: 14 vaihetta (kuvilla)
DIY Arduino Binary Herätyskello: Se on klassinen binaarikello jälleen! Mutta tällä kertaa vielä enemmän lisätoimintoja! Tässä ohjeessa näytän sinulle, kuinka rakentaa binäärinen herätyskello Arduinolla, joka voi näyttää sinulle paitsi ajan, myös päivämäärän, kuukauden, jopa ajastimen ja herätyksen kanssa
Binaarinen LED -marmorikello: 6 vaihetta (kuvilla)
Binaarinen LED -marmorikello: Nyt luulen, että melkein kaikilla on binaarikello ja tässä on minun versioni. Nautin siitä, että tämä projekti yhdisti puutöitä, ohjelmointia, oppimista, elektroniikkaa ja ehkä vain pienen taiteellisen luovuuden. Se näyttää ajan, kuukauden, päivämäärän, päivän
IoT -työpöytäkello ja lämpömittari: 5 vaihetta
IoT -työpöytäkello ja lämpömittari: Hei, Tämä ohje näyttää, kuinka rakensin pöytäkellon ja lämpömittarin ilman erikoistyökaluja. Tämä pöytäkello näyttää nykyisen ajan, lämpötilan ja kosteuden. Kello on erittäin tarkka, koska se on synkronoitu tiettyyn aikaan
Arduino -pohjainen binaarinen herätyskello: 13 vaihetta (kuvilla)
Arduino -pohjainen binaarinen herätyskello: Hei, tänään haluaisin näyttää sinulle, kuinka rakentaa yksi uusimmista projekteistani, binäärinen herätyskelloni. Internetissä on paljon erilaisia binaarikelloja, mutta tämä saattaa olla ensimmäinen, joka on valmistettu värikkäiden osoitettavien LED -valojen nauhasta