Kazalo:
- 1. korak: Predmet materiala
- 2. korak: Graviranje in rezbarjenje
- 3. korak: Brušenje in nanašanje laka
- 4. korak: Izdelava vezja
- 5. korak: Nalaganje programa
- 6. korak: Namestitev LED
- 7. korak: Priključitev LED
- 8. korak: Povezovanje tiskanega vezja z LED diodami
- 9. korak: Polaganje frnikolov
Video: Binarna namizna ura: 9 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Binarne ure so super in namenjene izključno osebi, ki pozna binarno (jezik digitalnih naprav). Če ste tehnik, je ta čudna ura za vas. Zato si ga naredite sami in čas skrivajte!
Na internetu boste našli veliko različnih vrst binarnih ur. Tudi v spletni trgovini, kot je amazon.com, lahko kupite binarno uro. Toda ta ura je drugačna od vseh in tukaj sem igral marmor, da sem ji dal eleganten videz.
Preden se spustite, si oglejte predstavitveni video.
1. korak: Predmet materiala
Komponente strojne opreme
1. Arduino Pro Micro (kupi na aliexpress.com): To je glavno srce ure in bere čas iz RTC ter daje navodila za ustrezno pogon LED. Namesto Pro Micro lahko uporabite Arduino Nano celo Arduino Uno, če vam velikost ni pomembna.
2. Modul DS3231 RTC (nakup na aliexpress.com): DS3231 RTC beleži čas, tudi ko se napajanje izklopi. Čeprav je mogoče uporabiti druge RTC, kot je DS1307, je DS3231 natančnejši.
3. IC gonilnik MAX7219CNG LED (kupite na aliexpress.com): Arduino ima omejeno število zatičev. Torej, če želite voziti na tone LED diod, ne da bi zapravili zatiče Arduino, je MAX7219 reševalec življenja. Zajema serijske podatke in lahko neodvisno poganja 64 LED.
4. 20 kosov modra LED, 5 mm (nakup na aliexpress.com): modra je zame dala najboljši rezultat. Lahko poskusite z drugimi barvami.
5. 20 kosov igranja marmorja (nakup na aliexpress.com): uporabljen je bil igralni marmor standardne velikosti. Marmor mora biti prozoren, da prehaja svetlobo.
6. Upor 10K: Uporablja se za krmiljenje segmentnega toka IC MAX7219. Natančno vrednost različnih tokov segmenta si oglejte v podatkovnem listu.
7. Žice
8. Prototipna PCB plošča (nakup na aliexpress.com): Uporabil sem prototipno PCB ploščo za IC MAX7219 z bazo IC. Lahko tudi oblikujete svojo PCB ploščo po meri.
Orodja za strojno opremo
1. CNC usmerjevalni stroj za CNC 3018 PRO laserski graver za les (kupite na aliexpress.com): Naprava DIY CNG je bila uporabljena za rezbarenje lesa za marmor in LED. To je odličen stroj z nizko ceno za vsakega izdelovalca in ljubitelja.
2. Spajkalna postaja (kupite jo pri aliexpress.com): Za projekt je potrebno nekaj spajkanja, dober spajkalnik pa je orodje, ki ga mora izdelovati izdelovalec. 60W je dobra izbira za sam spajkanje.
3. Rezalnik žice (kupi na aliexpress.com)
4. Rezalnik za rezanje s karbidom iz titana za CNC (nakup na aliexpress.com): Poskusite lahko tudi z nastavkom, ki je priložen stroju. V tem primeru morate spremeniti obliko.
2. korak: Graviranje in rezbarjenje
Za namestitev LED diod sem vzel kos lesa 165X145X18,8 mm iz mehkega javorja. Na vrh vsake lednice bom postavil marmor, velikost standardnega igralskega marmorja pa je premer 15,5 mm. Tako sem naredil luknje 15,7 mm s globino 7 mm. Na sredini luknje sem naredil 5 -milimetrski vrtalnik za namestitev LED. Celotno besedilo je bilo narejeno z globino 2 mm. Globino po vaši izbiri lahko povečate ali zmanjšate. Za besedilo lahko poskusite tudi z laserskim graviranjem.
Celotno zasnovo je izdelal Easel iz Inventables. Easel je spletna programska platforma, ki vam omogoča oblikovanje in rezanje iz enega samega preprostega programa, večina funkcij pa je brezplačna za uporabo. V sistem se morate prijaviti le tako, da ustvarite račun ali uporabite Gmail.
Easel Pro je programska oprema v oblaku, ki temelji na članstvu in temelji na brezplačni programski opremi Easel podjetja Inventables. Easel in Easel Pro zmanjšujeta ovire, povezane s zapleteno programsko opremo za izdelavo izdelkov CAD in CAM, kar uporabnikom olajša izdelavo fizičnih izdelkov.
Z Easelom lahko izvozite oblikovalsko datoteko v obliki kode G ali neposredno nastavite svoj CNC iz okolja Easel in pošljete ukaz CNC-ju. V tem primeru morate namestiti gonilnik za Easel. Prav tako lahko uvozite predhodno ustvarjeno kodo G v stožečni IDE in spremenite. Sem priložil oblikovalsko datoteko. Z enostavnostjo lahko preprosto spremenite obliko po vaši izbiri.
3. korak: Brušenje in nanašanje laka
Lak lahko zagotovi lep zaključek lesenih projektov in slik. Pred nanosom laka na les obrusite kos in očistite delovni prostor. Brušenje daje gladek videz in les pripravi na lakiranje. Lak nanesite v več tankih plasteh in pustite, da se vsak temeljito posuši, preden nadaljujete z naslednjim. Za lakiranje slike pustite, da se popolnoma posuši in nato previdno nanesite lak. En sloj zadostuje za številne slike, lahko pa dodate še dodaten sloj, dokler najprej pustite, da se prejšnji temeljito posuši.
Pred nanosom laka morate odstraniti vse pomanjkljivosti in madeže pred nanosom laka. Če želite to narediti, za nedokončane kose uporabite brusni papir 100 zrn in delajte z zrnom lesa. Nežno brušite, dokler kos ni gladek. Po čiščenju lesa nanesite lak v dobro prezračevanem prostoru.
Lak rešuje les pred okoljskim prahom in vlago, lahko pa vpliva na barvo lesa.
4. korak: Izdelava vezja
Glavni sestavni del ure je plošča mikrokrmilnika Arduino Pro Mini in modul DS3231 RTC. Povezava Arduino Pro Mini in modula RTC je zelo preprosta. Zatič SDA modula RTC morate priključiti na pin SDA Arduina in pin SCL modula RTC na pin SCL Arduina. Zatiči SDA in SCL so dejansko A4 oziroma A5 pin Arduina. Prav tako morate vzpostaviti skupno zemeljsko povezavo med moduli Arduino in RTC. Za povezavo sem uporabil mostične žice.
Povezava med Arduinom in DS3231 RTC:
Arduino | DS3231 |
---|---|
SCL (A5) | SCL |
SDA (A4) | SDA |
5V | VCC |
GND | GND |
Za prikaz ure, minute in sekunde je binarna ura potrebovala 20 LED. Če želite prikazati datum, potrebuje več. Plošča Arduino ima omejitev zatičev GPIO. Tako sem uporabil IC gonilnik LED MAX7219CNG za poganjanje ton LED z uporabo samo treh zatičev plošče Arduino.
Gonilnik IC MAX7219 lahko poganja 64 posameznih LED, medtem ko uporablja le 3 žice za komunikacijo z Arduinom, in še več, lahko povežemo več gonilnikov in matric ter še vedno uporabljamo iste 3 žice.
64 LED diode poganja 16 izhodnih zatičev IC. Zdaj se postavlja vprašanje, kako je to mogoče. No, največje število LED, ki zasveti hkrati, je dejansko osem. Svetleče diode so razporejene kot 8 × 8 niz vrstic in stolpcev. Tako MAX7219 aktivira vsak stolpec za zelo kratek čas in hkrati poganja tudi vsako vrstico. Tako bo človeško oko s hitrim preklapljanjem po stolpcih in vrstah opazilo le neprekinjeno svetlobo.
VCC in GND MAX7219 gredo na 5V in GND nožice Arduina, trije drugi zatiči, DIN, CLK in CS pa na kateri koli digitalni pin na Arduino plošči. Če želimo povezati več modulov, samo priključimo izhodne zatiče prejšnje odklopne plošče na vhodne zatiče novega modula. Pravzaprav so ti zatiči enaki, le da nožica DOUT prejšnje plošče gre na pin DIN nove plošče.
Povezava med Arduinom in MAX7219CNG:
Arduino | MAX7219 |
---|---|
D12 | DIN |
D11 | CLK |
D10 | NALOŽI |
GND | GND |
5. korak: Nalaganje programa
Celoten program je napisan v okolju Arduino. Za skico sta bili uporabljeni dve zunanji knjižnici. Eden je za modul RTC, drugi pa za IC MAX7219. Preden sestavite program, prenesite knjižnice s povezave in jih dodajte v IED Arduino.
Nalaganje programa v Arduino Pro Mini je nekoliko zapleteno. Če še nikoli niste uporabljali Arduino Pro Mini, si oglejte vadnico:
/*
GIT: https://github.com/jarzebski/Arduino-DS3231> GIT: https://github.com/jarzebski/Arduino-DS3231> */#include "Wire.h" #include "DS3231.h" #include "LedControl.h" /* Zdaj potrebujemo LedControl za delo. ***** Te pin številke verjetno ne bodo delovale s vašo strojno opremo ***** pin 12 je priključen na DataIn pin 11 je priključen na CLK pin 10 je priključen na LOAD Imamo samo en MAX72XX. */ Ura DS3231; RTCDateTime dt; LedControl lc = LedControl (12, 11, 10, 1); int sekunde, minute, ure; bajtna številka [10] = {B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; void setup () {//Serial.begin(9600); / * MAX72XX je v načinu varčevanja z energijo ob zagonu, opraviti moramo klic zbujanja */ lc.shutdown (0, false); / * Nastavite svetlost na srednje vrednosti */ lc.setIntensity (0, 15); / * in počistite zaslon */ lc.clearDisplay (0); //lc.setLed(0, vrstica, stolpec, res); // 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); // Inicializirajte DS3231 clock.begin (); // Nastavitev časa sestavljanja skice //clock.setDateTime(_DATE_, _TIME_); pinMode (5, INPUT_PULLUP); pinMode (6, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); } int meni = 0, gor, dol; int hours_one; int ure_ten; int minutes_one; int minute_ten; int seconds_one; int seconds_ten; void loop () {if (digitalRead (5) == 0) {delay (300); meni ++; če (meni> 3) meni = 0; } if (menu == 0) {dt = clock.getDateTime (); ure = dt.hour; minute = dt.minuta; sekunde = dt.sekunda; če (ure> 12) ure = ure - 12; če (ure == 0) ure = 1; ur_naj = ur%10; ure_ten = ure/10; minute_one = minute%10; minute_ten = minute/10; seconds_one = sekunde%10; sekunde_ten = sekunde/10; lc.setRow (0, 0, številka [seconds_one]); lc.setRow (0, 1, številka [sekund_ten]); lc.setRow (0, 2, številka [minute_one]); lc.setRow (0, 3, številka [minute_ten]); lc.setRow (0, 4, številka [ur_one]); lc.setRow (0, 5, številka [ur_ten]); } if (menu == 1) {if (digitalRead (6) == 0) {delay (300); ure ++; če (ure> = 24) ure = 0; } if (digitalRead (7) == 0) {delay (300); ure--; če (ure = 60) minute = 0; } if (digitalRead (7) == 0) {delay (300); minute-; če (minute <0) minute = 0; } minute_one = minute%10; minute_ten = minute/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, številka [minute_one]); lc.setRow (0, 3, številka [minute_ten]); } if (meni == 3) {clock.setDateTime (2020, 4, 13, ure, minute, 01); meni = 0; } //lc.setLed(0, vrstica, stolpec, napačno); //lc.setLed(0, vrstica, stolpec, res); //lc.setColumn(0, col, B10100000); //lc.setRow(0, 4, B11111111); //lc.setRow(0, vrstica, (bajt) 0); //lc.setColumn(0, stolpec, (bajt) 0); // Za vodenje nič v primeru DS3231_dateformat // Serial.print ("Surovi podatki:"); // Serial.print (dt.year); 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 (""); // // zakasnitev (1000); }
6. korak: Namestitev LED
Na tej stopnji bom vse LED diode namestil v luknje lesene plošče. Priključki LED so prikazani na shemi. Ker bomo za pogon LED uporabljali gonilnik LED MAX7219, morajo biti vse LED povezane v matrični obliki. Tako sem povezal anodne zatiče vseh LED v vsakem stolpcu skupaj in vse katodne zatiče vsake vrstice skupaj v skladu s shemo. Zdaj so naši zatiči stolpcev dejansko anodni zatiči LED, vrstni zatiči pa dejansko katodni zatiči LED.
Za pogon LED z uporabo MAX7219 morate katodni pin vodila priključiti na številski zatič IC in anodni zatič vodnika na segmentni zatič IC. Zato naj bodo naši zatiči stolpcev povezani s segmentnimi zatiči, zatiči za vrstice pa morajo biti povezani s številskim zatičem MAX7219.
Morate priključiti upor med zatičem ISET in VCC IC MAX7219 in ta upor krmili tok segmentnih zatičev. Za vzdrževanje 20 mA v vsakem segmentnem zatiču sem uporabil 10K upor.
7. korak: Priključitev LED
Na tej stopnji sem povezal vse LED v matričnem formatu vrstice. Za povezavo LED sem potreboval nekaj dodatnih mostičnih žic, vendar lahko vzpostavite povezavo brez pomoči dodatnih žic, če so vodniki LED dovolj dolgi, da se dotikajo drug drugega.
V tej konfiguraciji upor ni potreben, ker MAX7219 skrbi za tok. Vaša dolžnost je, da izberete pravo vrednost za upor ISET in s tem uporom povlečete zatič ISET. Preden namestite in priključite LED, vam predlagam, da preverite vsako LED. Ker bo postavitev slabe LED ubila veliko časa. V naslednjem koraku bomo žice vrstice in stolpca priključili na MAX ic.
8. korak: Povezovanje tiskanega vezja z LED diodami
Naše vezje, vključno z RTC, Arduino in MAX7219, je že dolgo pripravljeno, v prejšnji fazi pa smo pripravili tudi LED matriko. Zdaj moramo vse skupaj povezati po shemi. Najprej moramo priključiti žice vrstice in stolpca na MAX7219IC. Povezava je bila omenjena v shemi. Če želite biti bolj jasni, sledite spodnji tabeli.
LED matrika | MAX7219CNG |
---|---|
ROW0 | DIGIT0 |
ROW1 | ŠTEVILKA 1 |
ROW2 | DIGIT2 |
ROW3 | ŠTEVILKA 3 |
STOLPEK0 | SEGA |
STOLPEC 1 | SEGB |
STOLPEC 2 | SEGC |
STOLPEC 3 | SEGD |
STOLPEC 4 | SEGE |
STOLPEC 5 | SEGF |
ROW0-> Zgornja vrstica
COLUMN0 -> skrajno desni stolpec (SS COLUMN)
Po vzpostavitvi povezave morate ploščo PCB in Arduino pritrditi z lesenim kosom, da preprečite prekinitev povezave. Za pritrditev vseh vezij sem uporabil vroče lepilo. Da bi se izognili kratkemu stiku, uporabite veliko količino lepila, da skrijete spajkalni spoj na spodnji strani tiskanega vezja.
Če želite uro uporabiti, morate obdržati možnost prilagajanja časa, kadar je to potrebno. Dodal sem tri stikala za prilagajanje časa. Ena za spreminjanje možnosti in dva za povečevanje in zmanjševanje ur in minut. Gumbi so nameščeni v zgornjem desnem kotu, da so ti zlahka dostopni.
9. korak: Polaganje frnikolov
To je zadnja faza našega projekta. Vsa povezava vezja je zaključena. Zdaj morate marmor postaviti na zgornjo stran lesene ure. Za polaganje marmorja sem uporabil vroče lepilo. V ta namen uporabite prozorno lepilno palico bele barve. V vsako luknjo sem z zgornje strani nanesla vroče lepilo, na vrhu LED pa sem v vsako luknjo nežno položila marmor. Enakomerno dodajanje lepila bo povečalo sijaj led. Za uro sem uporabil MODRO LED. To mi je dalo najboljši rezultat.
Napajajte uro. Če pokaže čas, potem čestitam !!!
Uspelo ti je!
Uživajte!
Podprvak na tekmovanju Make it Glow
Priporočena:
Mikro binarna ura: 10 korakov (s slikami)
Mikro binarna ura: Predhodno je bil ustvarjen Instructable (Binary DVM), ki uporablja omejeno območje prikaza z uporabo binarnega sistema.To je bil le majhen korak, ko smo predhodno ustvarili glavni kodni modul za decimalno v binarno pretvorbo do ustvarjanja binarne ure, t
Vrhunska binarna ura: 12 korakov (s slikami)
Ultimate Binary Watch: Pred kratkim sem se seznanil s konceptom binarnih ur in začel raziskovati, ali bi si zgradil enega zase. Vendar nisem mogel najti obstoječega dizajna, ki bi bil hkrati funkcionalen in eleganten. Tako sem se odločil
Binarna LED marmorna ura: 6 korakov (s slikami)
Binarna LED marmorna ura: Zdaj mislim, da imajo skoraj vsi binarno uro in tukaj je moja različica. Všeč mi je bilo, da je ta projekt združil nekaj lesa, programiranja, učenja, elektronike in morda le malo umetniške ustvarjalnosti. Prikazuje čas, mesec, datum, dan
Arduino binarna ura - 3D natisnjena: 5 korakov (s slikami)
Arduino Binary Clock - 3D Printed: Že nekaj časa iščem binarne ure za svojo pisarniško mizo, vendar so precej drage in / ali nimajo velike količine funkcij. Zato sem se odločil, da bom namesto tega naredil enega. Ena stvar, ki jo je treba upoštevati pri izdelavi ure, Arduino / Atmega328
Binarna ura z uporabo neopikslov: 6 korakov (s slikami)
Binarna ura z uporabo neopikslov: Pozdravljeni, rad imam vse, kar je povezano z LED, in jih rad tudi uporabljam na različne zanimive načine. Da, vem, da je bila binarna ura tukaj večkrat izvedena in vsaka je odličen primer, kako ustvarite svojo uro. Resnično mi je všeč