Sadržaj:
- Korak 1: Opis materijala
- Korak 2: Graviranje i rezbarenje
- Korak 3: Brušenje i nanošenje laka
- Korak 4: Izrada kruga
- Korak 5: Prijenos programa
- Korak 6: Postavljanje LED dioda
- Korak 7: Spajanje LED dioda
- Korak 8: Povezivanje pločice s LED diodama
- Korak 9: Postavljanje mramora
Video: Binarni stolni sat: 9 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
Binarni satovi su sjajni i namijenjeni su samo osobama koje poznaju binarne (jezik digitalnih uređaja). Ako ste tehničar, ovaj čudan sat je za vas. Zato, napravite sami i neka vaše vrijeme ostane tajna!
Na internetu ćete pronaći mnogo binarnih satova različitih vrsta. Čak i možete kupiti binarni sat u internetskoj trgovini poput amazon.com. Ali ovaj sat je drugačiji od svih i ovdje sam koristio igranje mramora kako bih mu dao elegantan izgled.
Prije silaska pogledajte demo video.
Korak 1: Opis materijala
Hardverske komponente
1. Arduino Pro Micro (kupite na aliexpress.com): Ovo je glavno srce sata i očitava vrijeme s RTC -a te daje upute za upravljanje LED diodama u skladu s tim. Možete koristiti Arduino Nano, čak i Arduino Uno umjesto Pro Micro, ako vam veličina nije važna.
2. DS3231 RTC modul (kupite na aliexpress.com): DS3231 RTC prati vrijeme čak i kad se napajanje isključi. Iako se mogu koristiti drugi RTC -i poput DS1307, DS3231 je točniji.
3. MAX7219CNG LED upravljački sklop IC (kupite na aliexpress.com): Arduino ima ograničen broj pinova. Dakle, ako želite voziti tone LED dioda bez gubitka Arduino igle MAX7219 je spas. Uzima serijske podatke i može samostalno pokretati 64 LED diode.
4. 20 kom Plava LED dioda, 5 mm (kupiti na aliexpress.com): Plava je za mene dala najbolji rezultat. Možete probati s drugim bojama.
5. 20 kom. Igranje mramora (kupiti na aliexpress.com): upotrijebljen je mramor za igru standardne veličine. Mramor mora biti proziran da bi prolazio svjetlost.
6. Otpornik 10K: Koristi se za kontrolu struje segmenta IC -a MAX7219. Pogledajte podatkovnu tablicu da biste saznali točnu vrijednost za različite struje segmenta.
7. Žice
8. Prototip PCB ploča (kupite na aliexpress.com): Koristio sam prototip PCB ploče za IC MAX7219 IC s IC bazom. Također možete dizajnirati svoju prilagođenu PCB ploču.
Hardverski alati
1. CNC stroj za glodanje CNC 3018 PRO za drvo CNC usmjerivač (kupite na aliexpress.com): Ovaj DIY CNG stroj upotrijebljen je za rezbarenje po drvu za mramor i LED diode. Ovo je izvrstan stroj s niskom cijenom za svakog proizvođača i ljubitelja.
2. Stanica za lemljenje (kupite je na aliexpress.com): Za projekt je potrebno malo lemljenja, a dobro lemilo je neophodan alat za proizvođača. 60W dobar je izbor za DIY lemljenje.
3. Rezač žice (kupite na aliexpress.com)
4. Glodalica za rezanje s tvrdog metala obložena titanom za CNC (kupite na aliexpress.com): Također možete pokušati s nastavkom isporučenim sa strojem. U tom slučaju trebate napraviti neke promjene u dizajnu.
Korak 2: Graviranje i rezbarenje
Uzeo sam komad drveta od mekog javora dimenzija 165X145X18,8 mm za postavljanje LED dioda na satu. Na vrh svake ledice postavit ću mramor, a veličina standardnog mramora za igru je promjera 15,5 mm. Napravio sam rupe od 15,7 mm dubine 7 mm. U središtu rupe napravio sam bušilicu od 5 mm za postavljanje LED diode. Sav je tekst napravljen s dubinom od 2 mm. Dubinu po vašem izboru možete povećati ili smanjiti. Za tekst možete pokušati i laserskim graviranjem.
Kompletan dizajn izradio je Easel iz tvrtke Inventables. Easel je softverska platforma zasnovana na webu koja vam omogućuje projektiranje i rezanje iz jednog, jednostavnog programa, a većina značajki je besplatna za korištenje. Morali ste se prijaviti u sustav samo stvaranjem računa ili korištenjem Gmaila.
Easel Pro je oblačni softver zasnovan na članstvu koji se nadovezuje na besplatni softver Easel kompanije Inventables. Easel i Easel Pro minimiziraju prepreke povezane sa kompliciranim softverom za proizvodnju CAD i CAM proizvoda, olakšavajući korisnicima proizvodnju fizičkih proizvoda.
Pomoću Easela možete izvesti datoteku dizajna u formatu G-koda ili izravno postaviti svoj CNC iz okruženja Easel i poslati naredbu CNC-u. U tom slučaju morate instalirati upravljački program za Easel. Također možete uvesti prethodno stvoreni G-kôd u Easel IDE i izmijeniti ga. Ovdje sam uključio datoteku dizajna. Pomoću štafelaja možete jednostavno izmijeniti dizajn prema svom izboru.
Korak 3: Brušenje i nanošenje laka
Lak može osigurati lijepu završnu obradu drvenih projekata i slika. Prije nanošenja laka na drvo, izbrusite komad i očistite svoj radni prostor. Brušenje daje glatki izgled i priprema drvo za lakiranje. Nanesite lak u nekoliko tankih slojeva, pustite da se svaki dobro osuši prije nego prijeđete na sljedeći. Za lakiranje slike ostavite da se potpuno osuši, a zatim pažljivo premažite lak lakom. Jedan sloj dovoljan je za mnoge slike, ali možete dodati dodatni sloj sve dok prethodno pustite da se prethodni dobro osuši.
Prije nanošenja laka morate ukloniti sve nedostatke i mrlje prije nanošenja laka. Da biste to učinili, upotrijebite brusni papir od 100 zrnaca za nedovršene komade i radite sa zrnom drveta. Lagano brusite dok komad ne postane gladak. Nakon čišćenja komada drva nanesite lak na dobro prozračeno mjesto.
Lak spašava drvo od prašine i vlage iz okoliša, ali može utjecati na boju drveta.
Korak 4: Izrada kruga
Glavna komponenta sata je ploča mikrokontrolera Arduino Pro Mini i R32 modul DS3231. Povezivanje Arduino Pro Mini i RTC modula vrlo je jednostavno. Morate spojiti SDA pin RTC modula na SDA pin Arduino i SCL pina RTC modula sa SCL pinom Arduina. SDA i SCL pinovi su zapravo A4, odnosno A5 pin Arduina. Također morate uspostaviti zajedničku zemaljsku vezu između Arduino i RTC modula. Za povezivanje sam koristio kratkospojnike.
Veza između Arduina i DS3231 RTC:
Arduino | DS3231 |
---|---|
SCL (A5) | SCL |
SDA (A4) | SDA |
5V | VCC |
GND | GND |
Za prikaz sata, minute i sekunde binarni sat zahtijeva 20 LED dioda. Ako želite prikazati datum, potrebno je više. Arduino ploča ima ograničenje GPIO pinova. Tako sam koristio IC upravljački sklop MAX7219CNG LED za pogon tona LED dioda koristeći samo tri pina Arduino ploče.
IC upravljački program MAX7219 sposoban je upravljati s 64 pojedinačne LED diode dok koristi samo 3 žice za komunikaciju s Arduinom, a štoviše, možemo povezati nekoliko upravljačkih programa i matrica u nizu i još uvijek koristiti iste 3 žice.
64 LED diode pokreću 16 izlaznih pinova IC -a. Sada se postavlja pitanje kako je to moguće. Pa, maksimalni broj LED dioda svijetli u isto vrijeme je zapravo osam. LED diode su raspoređene kao niz redova i stupaca 8 × 8. Tako MAX7219 aktivira svaki stupac na vrlo kratko vrijeme, a istovremeno pokreće i svaki redak. Tako će brzo prebacivanje kroz stupce i redove ljudsko oko primijetiti samo kontinuirano svjetlo.
VCC i GND na MAX7219 idu na 5V i GND pinove Arduina, a tri druga pina, DIN, CLK i CS idu na bilo koji digitalni pin Arduino ploče. Ako želimo spojiti više od jednog modula, samo povežemo izlazne pinove prethodne ploče za razbijanje s ulaznim pinovima novog modula. Zapravo su ti pinovi isti, osim što DOUT pin prethodne ploče ide na DIN pin nove ploče.
Veza između Arduina i MAX7219CNG:
Arduino | MAX7219 |
---|---|
D12 | DIN |
D11 | CLK |
D10 | OPTEREĆENJE |
GND | GND |
Korak 5: Prijenos programa
Cijeli program je napisan u Arduino okruženju. Za skicu su korištene dvije vanjske knjižnice. Jedan je za RTC modul, a drugi za IC MAX7219. Preuzmite knjižnice s veze i dodajte ih u Arduino IED prije sastavljanja programa.
Prijenos programa u Arduino Pro Mini pomalo je zeznut. Pogledajte vodič ako nikada prije niste koristili 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" /* Sada nam je potreban LedControl za rad. ***** Ovi pin brojevi vjerojatno neće raditi s vašim hardverom ***** pin 12 je spojen na DataIn pin 11 je spojen na CLK pin 10 je spojen na LOAD Imamo samo jedan MAX72XX. */ DS3231 sat; RTCDateTime dt; LedControl lc = LedControl (12, 11, 10, 1); int sekunde, minute, sati; broj bajtova [10] = {B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; void setup () {//Serial.begin(9600); / * MAX72XX je u načinu rada za uštedu energije pri pokretanju, moramo obaviti poziv za buđenje */ lc.shutdown (0, false); / * Postavite svjetlinu na srednje vrijednosti */ lc.setIntensity (0, 15); / * i očistite zaslon */ 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); // Inicijalizacija DS3231 clock.begin (); // Postavljanje vremena sastavljanja skice //clock.setDateTime(_DATE_, _TIME_); pinMode (5, INPUT_PULLUP); pinMode (6, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); } int izbornik = 0, gore, dolje; int sati_jedan; int sati_ten; int minuta_jedan; int minute_ten; int seconds_one; int seconds_ten; void loop () {if (digitalRead (5) == 0) {delay (300); jelovnik ++; if (izbornik> 3) izbornik = 0; } if (izbornik == 0) {dt = clock.getDateTime (); sati = dt.sat; minute = dt.minuta; sekunde = dt.sekunda; ako (sati> 12) sati = sati - 12; if (sati == 0) sati = 1; sati_jedan = sati%10; sati_ten = sati/10; minute_jedne = minute%10; minute_ten = minute/10; seconds_one = sekunde%10; sekundi_ten = sekundi/10; lc.setRow (0, 0, broj [sekundi_jedan]); lc.setRow (0, 1, broj [sekundi_ten]); lc.setRow (0, 2, broj [minute_one]); lc.setRow (0, 3, broj [minuta_ten]); lc.setRow (0, 4, broj [sati_jedan]); lc.setRow (0, 5, broj [sati_ten]); } if (menu == 1) {if (digitalRead (6) == 0) {delay (300); sati ++; if (sati> = 24) sati = 0; } if (digitalRead (7) == 0) {delay (300); sati--; if (sati = 60) minute = 0; } if (digitalRead (7) == 0) {delay (300); minute--; ako (minute <0) minute = 0; } minute_jedne = 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, broj [minuta_jedna]); lc.setRow (0, 3, broj [minuta_ten]); } if (izbornik == 3) {clock.setDateTime (2020, 4, 13, sati, minute, 01); izbornik = 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, red, (bajt) 0); //lc.setColumn(0, col, (byte) 0); // Za početak nule pogledajte primjer DS3231_dateformat // Serial.print ("Sirovi podaci:"); // Serijski.tisak (dt.godina); Serial.print ("-"); // Serijski.tisak (dt.mjesec); Serial.print ("-"); // Serial.print (dt.day); Serial.print (""); // Serial.print (dt.hour); Serial.print (":"); // Serial.print (dt.minute); Serial.print (":"); // Serijski.ispis (dt.sekunda); Serial.println (""); // // kašnjenje (1000); }
Korak 6: Postavljanje LED dioda
U ovoj fazi stavit ću sve LED diode na rupe drvene ploče. Priključci LED dioda prikazani su na shemi. Kako ćemo koristiti LED upravljački program MAX7219 za pogon LED dioda, sve LED diode moraju biti spojene u matričnom obliku. Dakle, spojio sam anodne pinove svih LED dioda u svakom stupcu zajedno i sve katodne pinove svakog reda zajedno prema shemi. Sada su naši pinovi stupaca zapravo anodni pinovi LED dioda, a pinovi redaka su zapravo katodni pinovi LED dioda.
Za pogon LED dioda pomoću MAX7219 morate spojiti katodni pin LED -a na znamenkastu iglu IC -a i anodnu iglu LED -a na segmentni pin IC -a. Dakle, naši pinovi stupaca trebaju biti spojeni na segmentne pinove, a pinovi redaka trebaju biti spojeni na znamenkastu pinu MAX7219.
Morate spojiti otpornik između ISET pina i VCC IC -a MAX7219, a ovaj otpornik kontrolira struju segmentnih pinova. Koristio sam 10K otpornik za održavanje 20mA u svakom segmentnom pinu.
Korak 7: Spajanje LED dioda
U ovoj fazi sam sve LED diode spojio u matrični format redaka i stupca. Morao sam upotrijebiti neke dodatne kratkospojne žice za spajanje LED dioda, ali možete uspostaviti vezu bez pomoći dodatnih žica ako su vodiči LED dioda dovoljno dugi da se međusobno dodiruju.
U ovoj konfiguraciji nije potreban otpornik jer će se MAX7219 pobrinuti za struju. Vaša je dužnost odabrati pravu vrijednost za ISET otpornik i povući ISET pin s ovim otpornikom. Prije postavljanja i spajanja LED dioda predlažem da provjerite svaku LED. Jer postavljanje loše LED diode ubit će mnogo vremena. U sljedećem koraku spojit ćemo žice redaka i stupaca na MAX ic.
Korak 8: Povezivanje pločice s LED diodama
Naša ploča, uključujući RTC, Arduino i MAX7219, već je dugo spremna, a u prethodnoj smo fazi pripremili i LED matricu. Sada moramo povezati sve stvari prema shemi. Prvo moramo spojiti žice redaka i stupaca na MAX7219IC. Veza je spomenuta u shemi. Da bi vam bilo jasnije slijedite donju tablicu.
LED matrica | MAX7219CNG |
---|---|
RED0 | DIGIT0 |
RED1 | DIGIT1 |
RED2 | DIGIT2 |
RED3 | DIGIT3 |
KOLONA0 | SEGA |
KOLONA1 | SEGB |
KOLONA2 | SEGC |
KOLONA3 | SEGD |
KOLONA4 | SEGE |
KOLONA5 | SEGF |
ROW0-> Gornji red
COLUMN0 -> Krajnji desni stupac (SS COLUMN)
Nakon povezivanja morate pričvrstiti PCB ploču i Arduino drvenim komadom kako biste izbjegli prekid veze. Koristio sam vruće ljepilo za učvršćivanje svih strujnih krugova na mjestu. Kako biste izbjegli kratak spoj, upotrijebite veliku količinu ljepila da sakrijete lemni spoj na donjoj strani PCB -a.
Da biste sat učinili upotrebljivim, morate zadržati mogućnost podešavanja vremena po potrebi. Dodao sam tri prekidača za podešavanje vremena. Jedan za promjenu opcije i dva za povećanje i smanjivanje sata i minuta. Gumbi su postavljeni u gornjem desnom kutu tako da im je lako dostupan.
Korak 9: Postavljanje mramora
Ovo je posljednja faza našeg projekta. Sve povezivanje kruga je dovršeno. Sada morate mramor postaviti na gornju stranu drvenog sata. Za postavljanje mramora koristio sam vruće ljepilo. U tu svrhu upotrijebite prozirno ljepilo za bijelu boju. Nanio sam vruće ljepilo u svaku rupu s gornje strane, a na LED diode nježno sam stavio mramor u svaku rupu. Ravnomjerno dodavanje ljepila povećat će sjaj LED diode. Za sat sam koristio PLAVU LED. To mi je dalo najbolji rezultat.
Dajte satu snagu. Ako pokaže vrijeme onda čestitam !!!
Uspio si!
Uživati!
Drugoplasirani na natjecanju Make it Glow
Preporučeni:
Mikro binarni sat: 10 koraka (sa slikama)
Mikro binarni sat: Nakon što je prethodno stvorio Instructable (Binary DVM), koji koristi ograničeno područje prikaza pomoću binarnog programa. Bio je to samo mali korak nakon što je prethodno napravljen glavni kodni modul za decimalnu u binarnu pretvorbu do stvaranja binarnog sata, ali t
Vrhunski binarni sat: 12 koraka (sa slikama)
Ultimativni binarni sat: Nedavno sam se upoznao s konceptom binarnih satova i počeo istraživati kako bih provjerio mogu li sebi izraditi jedan. Međutim, nisam uspio pronaći postojeći dizajn koji bi bio i funkcionalan i moderan u isto vrijeme. Pa sam odlučio
Binarni LED mramorni sat: 6 koraka (sa slikama)
Binarni LED mramorni sat: Sada mislim da skoro svi imaju binarni sat i evo moje verzije. Ono što mi se svidjelo je to što je ovaj projekt kombinirao drvenariju, programiranje, učenje, elektroniku i možda samo malo umjetničke kreativnosti. Pokazuje vrijeme, mjesec, datum, dan
Arduino binarni sat - 3D ispis: 5 koraka (sa slikama)
Arduino binarni sat - 3D ispis: Već neko vrijeme gledam binarne satove za svoj uredski stol, međutim oni su prilično skupi i / ili nemaju veliku količinu značajki. Pa sam odlučio da ću umjesto toga napraviti jedan. Jedna stvar koju treba uzeti u obzir pri izradi sata, Arduino / Atmega328
Digitalni i binarni sat u 8 znamenki X 7 segmenata LED zaslon: 4 koraka (sa slikama)
Digitalni i binarni sat u 8 znamenki X 7 segmenata LED zaslon: Ovo je moja nadograđena verzija digitalnog & Binarni sat s 8 -znamenkastim x 7 -segmentnim LED zaslonom. Volio bih dati nove značajke za uobičajene uređaje, posebno satove, a u ovom je slučaju uporaba 7 -segmentnog zaslona za binarni sat nekonvencionalna i