Sadržaj:
- Korak 1: Opis materijala
- Korak 2: Graviranje i rezbarenje
- Korak 3: Brušenje i nanošenje laka
- Korak 4: Pravljenje kola
- Korak 5: Otpremanje programa
- Korak 6: Postavljanje LED dioda
- Korak 7: Spajanje LED dioda
- Korak 8: Povezivanje pločice sa LED diodama
- Korak 9: Postavljanje klikera
Video: Binarni radni sat: 9 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
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 čuvajte svoje vrijeme u tajnosti!
Na internetu ćete pronaći mnogo binarnih satova različitih vrsta. Čak i možete kupiti binarni sat iz internetske trgovine 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 i 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 bitna.
2. DS3231 RTC modul (kupite na aliexpress.com): DS3231 RTC prati vrijeme čak i kada se napajanje isključi. Iako se drugi RTC poput DS1307 mogu koristiti, DS3231 je precizniji.
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 iglica, 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 pokušati s drugim bojama.
5. 20 kom. Igranje mramora (kupiti na aliexpress.com): korišten je mramor za igru standardne veličine. Mermer mora biti proziran da bi prolazio kroz svetlost.
6. Otpornik 10K: Koristi se za kontrolu struje segmenta IC -a MAX7219. Pogledajte tehnički list da biste saznali tač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 MAX7219 IC sa IC bazom. Takođe možete dizajnirati prilagođenu PCB ploču.
Hardverski alati
1. CNC 3018 PRO Laserski graver za drvo CNC stroj za usmjeravanje (kupite na aliexpress.com): Ovaj DIY CNG stroj korišten je za rezbarenje po drvetu za mramor i LED diode. Ovo je izvrsna mašina s niskom cijenom za svakog proizvođača i ljubitelja.
2. Stanica za lemljenje (kupite je na aliexpress.com): Za projekat je potrebno malo lemljenja, a dobro lemilo je alat koji proizvođač mora imati. 60W je dobar izbor za DIY lemljenje.
3. Rezač žice (kupite na aliexpress.com)
4. Glodalica za glodanje od tvrdog metala presvučena titanom za CNC (kupite na aliexpress.com): Možete pokušati i s nastavkom koji je isporučen 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 tekst je urađen na dubini 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 kompanije Inventables. Easel je softverska platforma zasnovana na webu koja vam omogućava da dizajnirate i izrađujete iz jednog jednostavnog programa, a većina funkcija je besplatna za upotrebu. Morali ste se prijaviti u sistem samo kreiranjem 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 komplikovanim softverom za proizvodnju CAD i CAM proizvoda, olakšavajući korisnicima proizvodnju fizičkih proizvoda.
Pomoću Easela možete izvesti datoteku dizajna u G-kod formatu 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-kod u IDE štafelaja i izmijeniti ga. Ovdje sam uključio datoteku dizajna. Dizajn možete lako izmijeniti prema svom izboru pomoću štafelaja.
Korak 3: Brušenje i nanošenje laka
Lak može pružiti lijepu završnu obradu drvenim projektima i slikama. Prije nanošenja laka na drvo, izbrusite komad i očistite 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 što prijeđete na sljedeći. Za lakiranje slike ostavite da se potpuno osuši, a zatim pažljivo premažite lak. Jedan sloj je dovoljan za mnoge slike, ali možete dodati dodatni sloj sve dok prvo 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 u 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: Pravljenje kola
Glavna komponenta sata je Arduino Pro Mini ploča mikrokontrolera i DS3231 RTC modul. Povezivanje Arduino Pro Mini i RTC modula je vrlo 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, minuta i sekunde binarnom satu je potrebno 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 pokretati 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 i dalje 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 lampica svijetli u isto vrijeme je zapravo osam. LED diode su raspoređene kao 8 × 8 nizova redova i kolona. Tako MAX7219 aktivira svaku kolonu na vrlo kratak vremenski period i istovremeno pokreće svaki red. Tako će brzo prebacivanje kroz stupce i redove ljudsko oko primijetiti samo neprekidno 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 razvodne ploče 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 | LOAD |
GND | GND |
Korak 5: Otpremanje programa
Cijeli program je napisan u Arduino okruženju. Za skicu su korištene dvije vanjske biblioteke. Jedan je za RTC modul, a drugi za MAX7219 IC. Preuzmite biblioteke s veze i dodajte ih u Arduino IED prije sastavljanja programa.
Prijenos programa u Arduino Pro Mini je pomalo 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 brojevi pinova 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 bajta [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 buđenje */ lc.shutdown (0, false); / * Postavite svjetlinu na srednje vrijednosti */ lc.setIntensity (0, 15); / * i obrišite 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); // 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 meni = 0, gore, dolje; 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); meni ++; if (meni> 3) meni = 0; } if (menu == 0) {dt = clock.getDateTime (); sati = dt.hour; minute = dt.minute; sekunde = dt.sekunda; ako (sati> 12) sati = sati - 12; if (sati == 0) sati = 1; sati_jedni = sati%10; sati_ten = sati/10; minute_one = minute%10; minute_ten = minute/10; seconds_one = sekunde%10; seconds_ten = seconds/10; lc.setRow (0, 0, broj [seconds_one]); lc.setRow (0, 1, broj [sekundi_ten]); lc.setRow (0, 2, broj [minute_one]); lc.setRow (0, 3, broj [minute_ten]); lc.setRow (0, 4, broj [sati_jedna]); 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--; if (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 [minute_one]); lc.setRow (0, 3, broj [minute_ten]); } if (meni == 3) {clock.setDateTime (2020, 4, 13, sati, minute, 01); meni = 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:"); // Serial.print (dt.godina); 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 (""); // // kašnjenje (1000); }
Korak 6: Postavljanje LED dioda
U ovoj fazi ću staviti sve LED diode na rupe na drvenoj ploči. 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 povezane u matričnom obliku. Dakle, spojio sam anodne pinove svih LED dioda u svakoj koloni 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 cifreni pin IC -a i anodni pin LED -a na segmentni pin IC -a. Dakle, naši pinovi stupaca trebaju biti povezani sa segmentnim pinovima, a pinovi redaka trebaju biti spojeni na cifreni pin 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 spojio sve LED diode u matričnom formatu redaka i kolone. 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 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 pomoću ovog otpornika. Prije postavljanja i spajanja LED dioda predlažem da provjerite svaku LED diodu. 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 sa LED diodama
Naša ploča sa 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 Matrix | MAX7219CNG |
---|---|
ROW0 | DIGIT0 |
ROW1 | DIGIT1 |
ROW2 | DIGIT2 |
ROW3 | DIGIT3 |
COLUMN0 | SEGA |
COLUMN1 | SEGB |
COLUMN2 | SEGC |
COLUMN3 | SEGD |
COLUMN4 | SEGE |
COLUMN5 | SEGF |
ROW0-> Najviši red
COLUMN0 -> Krajnja desna kolona (SS COLUMN)
Nakon povezivanja potrebno je pričvrstiti PCB ploču i Arduino drvenim komadom kako biste izbjegli prekid veze. Koristio sam vruće ljepilo za pričvršćivanje svih krugova na svoje mjesto. Da 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. Dugmad su postavljena u gornjem desnom uglu tako da im je lako dostupna.
Korak 9: Postavljanje klikera
Ovo je posljednja faza našeg projekta. Sve povezivanje kruga je dovršeno. Sada morate postaviti mramor na gornju stranu drvenog sata. Za postavljanje klikera 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živajte!
Drugoplasirani na takmičenju Make it Glow
Preporučuje se:
Mikro binarni sat: 10 koraka (sa slikama)
Mikro binarni sat: Nakon što je prethodno kreiran Instructable (Binary DVM), koji koristi ograničeno područje prikaza pomoću binarnog programa. Bio je to samo mali korak nakon što je prethodno kreiran glavni kodni modul za decimalnu u binarnu konverziju do stvaranja binarnog sata, ali t
Vrhunski binarni sat: 12 koraka (sa slikama)
Ultimativni binarni sat: Nedavno sam se upoznao sa konceptom binarnih satova i počeo sam istraživati kako bih vidio mogu li sebi napraviti jedan. Međutim, nisam uspio pronaći postojeći dizajn koji bi bio istovremeno funkcionalan i moderan. 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 dopalo 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 štampano: Već neko vrijeme gledam binarne satove za svoj uredski stol, međutim oni su prilično skupi i / ili nemaju veliku količinu funkcija. Pa sam odlučio da napravim jednu umjesto toga. 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 pomoću 8 -znamenkastog x 7 -segmentnog LED zaslona. Volim dati nove funkcije za uobičajene uređaje, posebno satove, a u ovom slučaju upotreba 7 -segmentnog zaslona za binarni sat je nekonvencionalna i