Turinys:
- 1 žingsnis: medžiagų sąrašas
- 2 žingsnis: graviravimas ir drožyba
- 3 žingsnis: lako šlifavimas ir užtepimas
- 4 žingsnis: grandinės sukūrimas
- 5 veiksmas: įkelkite programą
- 6 žingsnis: šviesos diodų išdėstymas
- 7 žingsnis: šviesos diodų prijungimas
- 8 žingsnis: grandinės plokštės prijungimas su šviesos diodais
- 9 žingsnis: įdėkite rutuliukus
Video: Dvejetainis stalo laikrodis: 9 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Dvejetainiai laikrodžiai yra nuostabūs ir skirti tik asmeniui, žinančiam dvejetainį (skaitmeninių įrenginių kalba). Jei esate technologijų vaikinas, šis keistas laikrodis kaip tik jums. Taigi, pasigaminkite vieną ir neslėpkite laiko!
Internete rasite daugybę skirtingų tipų dvejetainių laikrodžių. Net jūs galite nusipirkti dvejetainį laikrodį iš internetinės parduotuvės, tokios kaip amazon.com. Tačiau šis laikrodis skiriasi nuo visų ir čia aš žaisdavau marmurą, kad suteikčiau jam elegantišką išvaizdą.
Prieš eidami žemyn, žiūrėkite demonstracinį vaizdo įrašą.
1 žingsnis: medžiagų sąrašas
Techninės įrangos komponentai
1. „Arduino Pro Micro“(pirkti iš aliexpress.com): Tai yra pagrindinė laikrodžio širdis ir skaito laiką iš RTC ir duoda nurodymą atitinkamai valdyti šviesos diodus. Vietoj „Pro Micro“galite naudoti „Arduino Nano“, netgi „Arduino Uno“, jei dydis jums nesvarbus.
2. DS3231 RTC modulis (pirkti iš aliexpress.com): DS3231 RTC seka laiką net tada, kai maitinimas išjungiamas. Nors galima naudoti kitus RTC, tokius kaip DS1307, DS3231 yra tikslesnis.
3. MAX7219CNG LED tvarkyklės IC (pirkti iš aliexpress.com): „Arduino“turi ribotą skaičių kaiščių. Taigi, jei norite vairuoti daugybę šviesos diodų, nešvaistydami „Arduino“kaiščių, MAX7219 yra išgelbėjimas. Jis naudoja serijinius duomenis ir gali savarankiškai valdyti 64 šviesos diodus.
4. 20 PCS Blue LED, 5mm (pirkti iš aliexpress.com): Mėlyna davė man geriausią rezultatą. Galite pabandyti su kitomis spalvomis.
5. 20 PCS Playing Marble (pirkti iš aliexpress.com): Buvo naudojamas standartinio dydžio marmuras. Marmuras turi būti skaidrus, kad praeitų šviesa.
6. Rezistorius 10K: naudojamas MAX7219 IC segmento srovei valdyti. Žiūrėkite duomenų lapą, kad sužinotumėte tikslią skirtingų segmentų srovės vertę.
7. Laidai
8. PCB plokštės prototipas (pirkti iš aliexpress.com): naudojau PCX plokštės prototipą MAX7219 IC su IC pagrindu. Taip pat galite sukurti savo pasirinktinę PCB plokštę.
Techninės įrangos įrankiai
1. CNC 3018 PRO lazerinio graviravimo medžio CNC maršrutizatoriaus mašina (pirkti iš aliexpress.com): „Theis DIY CNG“mašina buvo naudojama drožimui ant medžio marmurui ir šviesos diodams. Tai puiki mašina už mažą kainą bet kuriam gamintojui ir mėgėjui.
2. Litavimo stotis (nusipirkite ją iš aliexpress.com): Projektui reikalingas tam tikras litavimas, o geras lituoklis yra būtinas įrankis gamintojams. 60W yra geras pasirinkimas lituojant „pasidaryk pats“.
3. Vielos pjaustytuvas (pirkite iš aliexpress.com)
4. Titano dengto karbido galo frezavimo staklės, skirtos CNC (pirkti iš aliexpress.com): Taip pat galite pabandyti su antgaliu, pateiktu su mašina. Tokiu atveju turėtumėte šiek tiek pakeisti dizainą.
2 žingsnis: graviravimas ir drožyba
Laikrodžio šviesos diodams įdėti paėmiau 165X145X18.8 mm minkšto klevo medžio gabalėlį. Kiekvieno lemputės viršuje aš įdėsiu marmurą, o standartinio grojamojo marmuro dydis yra 15,5 mm skersmens. Taigi, aš padariau 15,7 mm skyles, kurių gylis 7 mm. Skylės centre padariau 5 mm gręžtuvą, skirtą šviesos diodui įdėti. Visas tekstas buvo padarytas 2 mm gylyje. Galite padidinti arba sumažinti pasirinktą gylį. Taip pat galite išbandyti teksto graviravimą lazeriu.
Visą dizainą sukūrė „Easel“iš „Inventables“. „Easel“yra internetinė programinės įrangos platforma, leidžianti kurti ir drožti iš vienos paprastos programos, o dauguma funkcijų yra nemokamos. Prisijungti prie sistemos reikėjo tik sukuriant paskyrą arba naudojant „Gmail“.
„Easel Pro“yra narystės pagrindu sukurta debesų programinė įranga, pagrįsta nemokama „Inventables“programine įranga „Easel“. „Easel“ir „Easel Pro“sumažina kliūtis, susijusias su sudėtinga CAD ir CAM produktų gamybos programine įranga, todėl vartotojams lengva gaminti fizinius produktus.
Naudodami „Easel“galite eksportuoti dizaino failą G kodo formatu arba tiesiogiai nustatyti savo CNC iš „Easel“aplinkos ir nusiųsti komandą į CNC. Tokiu atveju turite įdiegti molberto tvarkyklę. Taip pat galite importuoti anksčiau sukurtą G kodą į „Easel IDE“ir modifikuoti. Įdėjau dizaino failą. Naudodami molbertą, galite lengvai pakeisti dizainą pagal savo pasirinkimą.
3 žingsnis: lako šlifavimas ir užtepimas
Lakas gali suteikti gražią apdailą medžio projektams ir paveikslams. Prieš dengdami medieną laku, nušlifuokite gabalėlį ir išvalykite darbo vietą. Šlifavimas suteikia sklandų vaizdą ir paruošia medieną lakui. Užtepkite laką keliais plonais sluoksniais, prieš tęsdami kitą, leiskite kiekvienam gerai išdžiūti. Norėdami dažyti laką, leiskite jam visiškai išdžiūti ir tada atsargiai tepkite laką. Vieno sluoksnio pakanka daugeliui paveikslų, tačiau galite pridėti papildomą sluoksnį tol, kol pirmą kartą leisite ankstesniam kruopščiai išdžiūti.
Prieš dengdami laką, prieš dengdami laką turite pašalinti visus trūkumus ir dėmes. Norėdami tai padaryti, naudokite 100 grūdėtumo švitrinį popierių nebaigtiems gabalėliams ir dirbkite su medienos grūdeliais. Švelniai šlifuokite, kol gabalas bus lygus. Išvalę medžio gabalą, padenkite laką gerai vėdinamoje vietoje.
Lakas taupo medieną nuo aplinkos dulkių ir drėgmės, tačiau gali turėti įtakos medienos spalvai.
4 žingsnis: grandinės sukūrimas
Pagrindinis laikrodžio komponentas yra „Arduino Pro Mini“mikrovaldiklio plokštė ir DS3231 RTC modulis. „Arduino Pro Mini“ir RTC modulio prijungimas yra labai paprastas. Turite prijungti RTC modulio SDA kaištį prie „Arduino“SDA kaiščio ir RTC modulio SCL kaiščio prie „Arduino“SCL kaiščio. SDA ir SCL kaiščiai iš tikrųjų yra atitinkamai A4 ir A5 „Arduino“kaiščiai. Taip pat turite sukurti bendrą pagrindą tarp „Arduino“ir RTC modulių. Sujungimams naudojau trumpiklius.
Ryšys tarp „Arduino“ir DS3231 RTC:
Arduino | DS3231 |
---|---|
SCL (A5) | SCL |
SDA (A4) | SDA |
5V | VCC |
GND | GND |
Norint rodyti valandą, minutę ir sekundę, dvejetainiam laikrodžiui reikėjo 20 šviesos diodų. Jei norite rodyti datą, reikia daugiau. „Arduino“plokštėje yra GPIO kaiščių apribojimas. Taigi, aš naudojau MAX7219CNG LED tvarkyklės IC, kad galėčiau vairuoti daugybę šviesos diodų, naudojant tik tris „Arduino“plokštės kaiščius.
„MAX7219“tvarkyklės IC gali valdyti 64 atskirus šviesos diodus, o ryšiui su „Arduino“naudoti tik 3 laidus, be to, galime susieti kelias tvarkykles ir matricas ir vis tiek naudoti tuos pačius 3 laidus.
64 šviesos diodus valdo 16 IC išvesties kaiščių. Dabar kyla klausimas, kaip tai įmanoma. Na, didžiausias šviesos diodų skaičius, užsidegantis vienu metu, iš tikrųjų yra aštuoni. Šviesos diodai yra išdėstyti kaip 8 × 8 eilučių ir stulpelių rinkinys. Taigi MAX7219 suaktyvina kiekvieną stulpelį labai trumpą laiką ir tuo pačiu metu taip pat valdo kiekvieną eilutę. Taigi, greitai perjungdamas stulpelius ir eilutes, žmogaus akis pastebės tik nuolatinę šviesą.
„MAX7219“VCC ir GND eina į „Arduino“5V ir GND kaiščius, o trys kiti kaiščiai - DIN, CLK ir CS - į bet kurį „Arduino“plokštės skaitmeninį kaištį. Jei norime prijungti daugiau nei vieną modulį, mes tiesiog prijungiame ankstesnės pertraukos plokštės išvesties kaiščius prie naujojo modulio įvesties kaiščių. Tiesą sakant, šie kaiščiai yra vienodi, išskyrus tai, kad ankstesnės plokštės DOUT kaištis eina į naujos plokštės DIN kaištį.
Ryšys tarp „Arduino“ir „MAX7219CNG“:
Arduino | MAX7219 |
---|---|
D12 | DIN |
D11 | CLK |
D10 | ĮKROVTI |
GND | GND |
5 veiksmas: įkelkite programą
Visa programa parašyta „Arduino“aplinkoje. Eskizui panaudotos dvi išorinės bibliotekos. Vienas skirtas RTC moduliui, kitas - MAX7219 IC. Prieš sudarydami programą, atsisiųskite bibliotekas iš nuorodos ir pridėkite prie „Arduino IED“.
Programos įkėlimas į „Arduino Pro Mini“yra šiek tiek sudėtingas. Pažvelkite į pamoką, jei niekada nenaudojote „Arduino Pro Mini“:
/*
GIT: https://github.com/jarzebski/Arduino-DS3231> GIT: https://github.com/jarzebski/Arduino-DS3231> */#include "Wire.h" #include "DS3231.h" #include "LedControl.h" /* Dabar mums reikia "LedControl", su kuriuo galime dirbti. ***** Šie PIN kodai tikriausiai neveiks su jūsų aparatine įranga ***** 12 kaištis prijungtas prie „DataIn“kaiščio 11 yra prijungtas prie CLK kaiščio 10 yra prijungtas prie „LOAD“. Turime tik vieną MAX72XX. */ DS3231 laikrodis; RTCDateTime dt; LedControl lc = LedControl (12, 11, 10, 1); int sekundės, minutės, valandos; baitų skaičius [10] = {B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; void setup () {//Serial.begin(9600); / * Įjungus „MAX72XX“veikia energijos taupymo režimas, turime atlikti pažadinimo skambutį */ lc.shutdown (0, false); / * Nustatykite vidutinio ryškumo šviesą */ lc.setIntensity (0, 15); / * ir išvalykite ekraną */ 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); // Inicijuoti DS3231 clock.begin (); // Nustatykite eskizo sudarymo laiką //clock.setDateTime(_DATE_, _TIME_); pinMode (5, INPUT_PULLUP); pinMode (6, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); } int meniu = 0, aukštyn, žemyn; int hours_one; int hours_ten; int minutes_one; int minutes_ten; int sekundės_vienas; int sekundes_ten; void loop () {if (digitalRead (5) == 0) {delay (300); meniu ++; if (meniu> 3) menu = 0; } if (meniu == 0) {dt = clock.getDateTime (); valandos = dt.val; minutes = dt.minute; sekundės = dt.sekundė; jei (valandos> 12) valandos = valandos - 12; jei (valandos == 0) valandos = 1; valandos_vienas = valandos%10; hours_ten = valandos/10; minutes_vienas = minutės%10; minutes_tena = minutės/10; seconds_one = sekundės%10; seconds_ten = sekundės/10; lc.setRow (0, 0, skaičius [sekundės_viena]); lc.setRow (0, 1, skaičius [sekundės_tenka]); lc.setRow (0, 2, skaičius [minutes_one]); lc.setRow (0, 3, skaičius [minutes_ten]); lc.setRow (0, 4, skaičius [valandos_viena]); lc.setRow (0, 5, skaičius [valandos]); } if (meniu == 1) {if (digitalRead (6) == 0) {delay (300); valandos ++; jei (valandos> = 24) valandos = 0; } if (digitalRead (7) == 0) {delay (300); valandos-; jei (valandos = 60) minutės = 0; } if (digitalRead (7) == 0) {delay (300); minutės-; jei (minutės <0) minutės = 0; } minutes_one = minutės%10; minutes_tena = minutės/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, skaičius [minutes_one]); lc.setRow (0, 3, skaičius [minutes_ten]); } jei (meniu == 3) {clock.setDateTime (2020, 4, 13, valandos, minutės, 01); meniu = 0; } //lc.setLed(0, row, col, false); //lc.setLed(0, row, col, true); //lc.setColumn(0, col, B10100000); //lc.setRow(0, 4, B11111111); //lc.setRow(0, eilutė, (baitas) 0); //lc.setColumn(0, col, (baitas) 0); // Norėdami pradėti nulį, ieškokite DS3231_dateformat pavyzdžio // Serial.print ("Neapdoroti duomenys:"); // Serijinis atspaudas (dt.metai); Serial.print ("-"); // Serial.print (dt.month); Serial.print ("-"); // Serial.print (dt.day); Serial.print (""); // Serial.print (dt.hour); Serial.print (":"); // Serial.print (dt.minute); Serial.print (":"); // Serial.print (dt.second); Serial.println (""); // // uždelsimas (1000); }
6 žingsnis: šviesos diodų išdėstymas
Šiame etape visus šviesos diodus įdėsiu į medžio plokštės skyles. Šviesos diodų jungtys parodytos schemoje. Kadangi šviesos diodams valdyti naudosime MAX7219 LED tvarkyklę, visi šviesos diodai turi būti prijungti matricos pavidalu. Taigi, aš sujungiau visų šviesos diodų anodo kaiščius kiekviename stulpelyje ir visus kiekvienos eilės katodo kaiščius kartu pagal schemą. Dabar mūsų stulpelių kaiščiai iš tikrųjų yra šviesos diodų anodo kaiščiai, o eilių kaiščiai iš tikrųjų yra šviesos diodų katodo kaiščiai.
Norėdami vairuoti šviesos diodus naudodami MAX7219, turite prijungti šviesos diodo katodinį kaištį prie skaitmeninio IC kaiščio, o anodo kaištį - prie IC segmento kaiščio. Taigi, mūsų stulpelių kaiščiai turėtų būti prijungti prie segmentų kaiščių, o eilių kaiščiai - prie MAX7219 skaitmenų kaiščio.
Turite prijungti rezistorių tarp ISET kaiščio ir MAX7219 IC VCC, o šis rezistorius valdo segmento kaiščių srovę. Aš naudoju 10K rezistorių, kad išlaikyčiau 20 mA kiekviename segmente.
7 žingsnis: šviesos diodų prijungimas
Šiame etape aš prijungiau visus šviesos diodus eilutės-stulpelio matricos formatu. Šviesos diodams prijungti turėjau naudoti keletą papildomų jungiamųjų laidų, tačiau galite prisijungti be papildomų laidų, jei šviesos diodų laidai yra pakankamai ilgi, kad liestųsi.
Šioje konfigūracijoje rezistorius nereikalingas, nes MAX7219 pasirūpins srove. Jūsų pareiga yra pasirinkti tinkamą ISET rezistoriaus vertę ir su šiuo rezistoriumi ištraukti ISET kaištį. Prieš dėdami ir prijungdami šviesos diodus, siūlau patikrinti kiekvieną šviesos diodą. Kadangi blogas šviesos diodas įdės daug laiko. Kitame žingsnyje mes prijungsime eilutės ir stulpelio laidus prie MAX ic.
8 žingsnis: grandinės plokštės prijungimas su šviesos diodais
Mūsų plokštė, įskaitant RTC, Arduino ir MAX7219, yra paruošta ilgą laiką, o mes taip pat paruošėme LED matricą ankstesniame etape. Dabar mes turime sujungti visus dalykus pagal schemą. Pirma, turime prijungti eilutės ir stulpelio laidus prie MAX7219IC. Ryšys buvo paminėtas schemoje. Kad būtų aiškiau, vadovaukitės toliau pateikta lentele.
LED matrica | MAX7219CNG |
---|---|
0 EILUTĖ | SKAIČIUS 0 |
1 EILUTĖ | Skaitmuo1 |
2 EILUTĖ | DIGIT2 |
3 EILUTĖ | DIGIT3 |
STULPIS0 | SEGA |
1 SKILTIS | SEGB |
2 SKILTIS | SEGC |
3 SKILTIS | SEGD |
4 SKILTIS | SEGE |
5 SKILTIS | SEGF |
ROW0-> Aukščiausia eilutė
COLUMN0 -> Dešinysis stulpelis (SS COLUMN)
Užmezgę ryšį, turite pritvirtinti PCB plokštę ir „Arduino“medžio gabalu, kad nesulaužtumėte jungties. Visoms grandinėms pritvirtinti naudojau karštus klijus. Norėdami išvengti trumpojo jungimo, naudokite daug klijų, kad paslėptumėte litavimo jungtį apatinėje PCB pusėje.
Kad laikrodis būtų tinkamas naudoti, turite palikti galimybę prireikus koreguoti laiką. Pridėjau tris mygtukų jungiklius laikui reguliuoti. Vienas - pasirinkimo keitimui, o kitas - valandai ir minutei didinti ir mažinti. Mygtukai yra viršutiniame dešiniajame kampe, kad juos būtų galima lengvai pasiekti.
9 žingsnis: įdėkite rutuliukus
Tai yra paskutinis mūsų projekto etapas. Visas grandinės prijungimas yra baigtas. Dabar marmurą reikia pastatyti viršutinėje medinio laikrodžio pusėje. Marmurams uždėti naudojau karštus klijus. Tam naudokite skaidrią baltos spalvos klijų lazdelę. Aš uždėjau karštus klijus į kiekvieną skylę iš viršutinės pusės, o ant šviesos diodų švelniai įdėjau marmurą į kiekvieną skylę. Tolygiai pridedant klijų padidės šviesos diodų spindesys. Laikrodžiui naudojau MĖLYNĄ LED. Tai davė geriausią rezultatą.
Suteikite laikrodžiui galią. Jei laikas rodo, tada sveikinu !!!
Tau pavyko!
Mėgautis!
Antroji vieta konkurse „Padaryk švytėjimą“
Rekomenduojamas:
Mikro dvejetainis laikrodis: 10 žingsnių (su nuotraukomis)
Mikro dvejetainis laikrodis: Anksčiau sukūręs „Instructable“(dvejetainį DVM), kuris naudoja ribotą rodymo sritį naudodami dvejetainį. Tai buvo tik nedidelis žingsnis, kai anksčiau buvo sukurtas pagrindinis kodo modulis dešimtainiam ir dvejetainiam konvertavimui, kad būtų sukurtas dvejetainis laikrodis, bet t
„Arduino“dvejetainis laikrodis - 3D spausdintas: 5 žingsniai (su nuotraukomis)
„Arduino“dvejetainis laikrodis - 3D spausdintas: jau kurį laiką žiūriu į dvejetainius laikrodžius savo biuro stalui, tačiau jie yra gana brangūs ir (arba) neturi daug funkcijų. Taigi nusprendžiau padaryti vieną. Kuriant laikrodį reikia atsižvelgti į vieną dalyką, „Arduino“/ „Atmega328“
Dvejetainis marmurinis laikrodis: 9 žingsniai (su nuotraukomis)
Dvejetainis marmurinis laikrodis: tai paprastas laikrodis, rodantis laiką (valandas/minutes) dvejetainėje formoje, naudojant po stikliniais rutuliais paslėptus šviesos diodus. Paprastam žmogui tai atrodo kaip žibintų krūva, tačiau galėsite pasakyti laiką iki tik trumpas žvilgsnis į šį laikrodį. Tai
Dvejetainis laikrodis: 5 žingsniai (su nuotraukomis)
Dvejetainis laikrodis: Čia yra paprastas pavyzdys, kaip sukurti šauniai atrodantį dvejetainį 24 valandų laikrodį. Raudoni šviesos diodai rodo sekundes, žali šviesos diodai minutes ir geltoni šviesos diodai valandas. Dėkle yra keturi mygtukai, skirti laikui reguliuoti. Laikrodis veikia su 9 voltais. Šį laikrodį lengva padaryti ir jo dalys
LED dvejetainis laikrodis: 6 žingsniai (su nuotraukomis)
LED dvejetainis laikrodis: tai yra antrasis mano PIC pagrįstas dvejetainis laikrodis. Pradinė versija buvo pirmasis PIC projektas, kurį bandžiau, jis naudojo PIC16F84A, kad būtų galima atlikti ir laiko matavimą, ir valdyti ekrano matricą, deja, tai nepalaikė pakankamai laiko ir