Indholdsfortegnelse:

Binært skrivebordur: 9 trin (med billeder)
Binært skrivebordur: 9 trin (med billeder)

Video: Binært skrivebordur: 9 trin (med billeder)

Video: Binært skrivebordur: 9 trin (med billeder)
Video: Маша и Медведь (Masha and The Bear) - Маша плюс каша (17 Серия) 2024, November
Anonim
Binær skrivebord ur
Binær skrivebord ur
Binær skrivebord ur
Binær skrivebord ur
Binær skrivebord ur
Binær skrivebord ur

Binære ure er fantastiske og udelukkende for den person, der kender binæret (de digitale enheders sprog). Hvis du er en teknisk fyr, er dette mærkelige ur noget for dig. Så lav en selv og hold din tid hemmelig!

Du finder masser af binære ure af forskellige typer på Internettet. Selv du kan købe et binært ur fra online butik som amazon.com. Men dette ur er forskelligt fra alle, og her brugte jeg marmor til at give det et elegant look.

Inden du går ned, kan du se demo -videoen.

Trin 1: Stykliste

Materialeseddel
Materialeseddel
Materialeseddel
Materialeseddel
Materialeseddel
Materialeseddel

Hardware -komponenter

1. Arduino Pro Micro (køb fra aliexpress.com): Dette er urets vigtigste hjerte og læser klokkeslættet fra RTC og giver instruktion i at køre lysdioderne i overensstemmelse hermed. Du kan bruge Arduino Nano endda Arduino Uno i stedet for Pro Micro, hvis størrelsen ikke betyder noget for dig.

2. DS3231 RTC -modul (køb fra aliexpress.com): DS3231 RTC holder styr på tiden, selv når strømmen slukkes. Selvom andre RTC som DS1307 kan bruges, er DS3231 mere præcis.

3. MAX7219CNG LED Driver IC (køb fra aliexpress.com): Arduino har et begrænset antal stifter. Så hvis du vil køre tonsvis af lysdioder uden at spilde Arduino -stifter, er MAX7219 livredderen. Det tager serielle data og kan drive 64 lysdioder uafhængigt.

4. 20 STK Blå LED, 5 mm (køb fra aliexpress.com): Blå gav det bedste resultat for mig. Du kan prøve med andre farver.

5. 20 STK Playing Marble (køb fra aliexpress.com): Der blev brugt legende marmor i standardstørrelse. Marmoren skal være gennemsigtig for at passere lys.

6. Modstand 10K: Bruges til at styre segmentstrømmen på MAX7219 IC. Se databladet for at kende den nøjagtige værdi for forskellige segmentstrømme.

7. Ledninger

8. Prototype PCB Board (køb fra aliexpress.com): Jeg brugte en prototype PCB board til MAX7219 IC med en IC base. Du kan også designe dit brugerdefinerede printkort.

Hardware værktøjer

1. CNC 3018 PRO Lasergraver Træ CNC Router Machine (køb fra aliexpress.com): Denne DIY CNG -maskine blev brugt til udskæring på træet til marmor og lysdioder. Dette er en fremragende maskine med en lav pris for enhver producent og hobbyist.

2. Loddestation (køb en fra aliexpress.com): Noget lodning er påkrævet til projektet, og et godt loddejern er et must-have-værktøj for en maker. 60W er et godt valg til DIY lodning.

3. Wire Cutter (køb fra aliexpress.com)

4. Titaniumbelagt hårdmetalfræser til CNC (køb fra aliexpress.com): Du kan også prøve med den bit, der følger med maskinen. I så fald bør du foretage nogle ændringer af designet.

Trin 2: Gravering og udskæring

Gravering og udskæring
Gravering og udskæring
Gravering og udskæring
Gravering og udskæring
Gravering og udskæring
Gravering og udskæring

Jeg tog et 165X145X18.8 mm blødt ahorn træstykke til placering af urets lysdioder. På toppen af hver led vil jeg placere en marmor, og størrelsen på en standardmarmor er 15,5 mm i diameter. Så jeg lavede 15,7 mm huller med en dybde på 7 mm. I midten af hullet lavede jeg et 5 mm bor til placering af LED’en. Al teksten er lavet med 2 mm dybde. Du kan øge eller reducere dybden efter eget valg. Du kan også prøve lasergravering til teksten.

Det komplette design blev lavet af Easel fra Inventables. Easel er en webbaseret softwareplatform, der giver dig mulighed for at designe og skære ud fra et enkelt, enkelt program, og de fleste af funktionerne er gratis at bruge. Du krævede kun at logge ind på systemet ved at oprette en konto eller bruge Gmail.

Easel Pro er medlemsbaseret cloud-software, der bygger på Inventables gratis Easel-software. Easel og Easel Pro minimerer de barrierer, der er forbundet med kompliceret CAD- og CAM -produktfremstillingssoftware, hvilket gør det let for brugerne at producere fysiske produkter.

Ved hjælp af Easel kan du eksportere designfilen i G-kodeformat eller direkte konfigurere din CNC fra easel-miljøet og sende kommandoen til CNC. I så fald skal du installere driveren til staffeliet. Du kan også importere en tidligere oprettet G-kode til Easel IDE og ændre. Jeg inkluderede designfilen hermed. Du kan nemt ændre designet efter dit valg ved hjælp af Easel.

Trin 3: Slibning og påføring af lak

Slibning og påføring af lak
Slibning og påføring af lak
Slibning og påføring af lak
Slibning og påføring af lak
Slibning og påføring af lak
Slibning og påføring af lak
Slibning og påføring af lak
Slibning og påføring af lak

Lak kan give en smuk finish til træprojekter og malerier. Inden du påfører lak på træ, skal du slibe dit stykke og rengøre dit arbejdsområde. Slibning giver et glat look og forbereder træet til lak. Påfør lakken i flere tynde lag, lad hver enkelt tørre grundigt, inden du går videre til den næste. For at lakere et maleri, lad det tørre helt og pensl derefter forsigtigt lakken på. Et lag er nok til mange malerier, men du kan tilføje et ekstra lag, så længe du først lader det forrige tørre grundigt.

Inden påføring af lakken skal du fjerne eventuelle mangler og skavanker, inden lakken påføres. For at gøre det Brug 100 sandpapir af grus til ufærdige stykker, og arbejd med træets korn. Sand forsigtigt, indtil stykket er glat. Efter rengøring af træstykket påføres lakken i et godt ventileret område.

Lak sparer træet for miljøstøv og fugt, men det kan påvirke træets farve.

Trin 4: Lav kredsløbet

Gør kredsløbet
Gør kredsløbet
Gør kredsløbet
Gør kredsløbet
Gør kredsløbet
Gør kredsløbet
Gør kredsløbet
Gør kredsløbet

Urets hovedkomponent er et Arduino Pro Mini mikrokontrollerkort og et DS3231 RTC -modul. Forbindelsen mellem Arduino Pro Mini og RTC -modulet er meget enkel. Du skal slutte SDA -pin på RTC -modulet til SDA -pin på Arduino og SCL -pin på RTC -modulet til SCL -pin på Arduino. SDA og SCL ben er faktisk henholdsvis A4 og A5 ben af Arduino. Du skal også oprette en fælles jordforbindelse mellem Arduino og RTC moduler. Jeg brugte jumperwires til at lave forbindelserne.

Forbindelsen mellem Arduino og DS3231 RTC:

Arduino DS3231
SCL (A5) SCL
SDA (A4) SDA
5V VCC
GND GND

For at vise time, minut og sekund krævede et binært ur 20 lysdioder. Hvis du vil vise dato, kræver det mere. Arduino board har en begrænsning af GPIO benene. Så jeg brugte MAX7219CNG LED driver IC til at køre tonsvis af LED'er ved hjælp af kun tre ben på Arduino -kortet.

MAX7219 driver IC er i stand til at køre 64 individuelle lysdioder, mens de kun bruger 3 ledninger til kommunikation med Arduino, og hvad mere er, vi kan daisy kæde flere drivere og matrixer og stadig bruge de samme 3 ledninger.

De 64 lysdioder drives af 16 output pins på IC'en. Spørgsmålet er nu, hvordan er det muligt. Det maksimale antal lysdioder lyser på samme tid faktisk er otte. Lysdioderne er arrangeret som et 8 × 8 sæt rækker og kolonner. Så MAX7219 aktiverer hver kolonne i en meget kort periode, og samtidig driver den også hver række. Så ved hurtigt at skifte gennem kolonner og rækker vil det menneskelige øje kun bemærke et kontinuerligt lys.

VCC og GND på MAX7219 går til 5V- og GND -benene på Arduino og de tre andre ben, DIN, CLK og CS, går til enhver digital pin på Arduino -kortet. Hvis vi vil tilslutte mere end et modul, forbinder vi bare outputstifterne fra det forrige breakout -kort til inputstifterne på det nye modul. Faktisk er disse stifter alle de samme bortset fra at DOUT -stiften på det forrige bord går til DIN -stiften på det nye bord.

Forbindelsen mellem Arduino og MAX7219CNG:

Arduino MAX7219
D12 DIN
D11 CLK
D10 BELASTNING
GND GND

Trin 5: Upload af programmet

Upload af programmet
Upload af programmet

Hele programmet er skrevet i Arduino -miljø. To eksterne biblioteker blev brugt til skitsen. Den ene er til RTC -modulet, og den anden er til MAX7219 IC. Download bibliotekerne fra linket, og tilføj det til Arduino IED, før du kompilerer programmet.

Uploadprogram i Arduino Pro Mini er lidt vanskelig. Tag et kig på selvstudiet, hvis du aldrig har brugt Arduino Pro Mini før:

/*

GIT: https://github.com/jarzebski/Arduino-DS3231> GIT: https://github.com/jarzebski/Arduino-DS3231> */#include "Wire.h" #include "DS3231.h" #include "LedControl.h" /* Nu har vi brug for en LedControl at arbejde med. ***** Disse pin numre vil sandsynligvis ikke fungere med din hardware ***** pin 12 er forbundet til DataIn pin 11 er forbundet til CLK pin 10 er forbundet til LOAD Vi har kun en enkelt MAX72XX. */ DS3231 ur; RTCDateTime dt; LedControl lc = LedControl (12, 11, 10, 1); int sekunder, minutter, timer; byte nummer [10] = {B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; ugyldig opsætning () {//Serial.begin(9600); / * MAX72XX er i strømbesparende tilstand ved opstart, vi skal foretage et vågneopkald */ lc.shutdown (0, false); / * Indstil lysstyrken til et medium værdier */ lc.setIntensity (0, 15); / * og ryd displayet */ lc.clearDisplay (0); //lc.setLed(0, række, kol, sand); // 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); // Initialiser DS3231 clock.begin (); // Indstil skitsekompileringstid //clock.setDateTime(_DATE_, _TIME_); pinMode (5, INPUT_PULLUP); pinMode (6, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); } int menu = 0, op, ned; int timer_one; int timer_ten; int minutter_one; int minutter_ten; int sekunder_one; int sekunder_ten; void loop () {if (digitalRead (5) == 0) {delay (300); menu ++; hvis (menu> 3) menu = 0; } hvis (menu == 0) {dt = clock.getDateTime (); timer = dt.time; minutter = dt.minut; sekunder = dt.sekund; hvis (timer> 12) timer = timer - 12; hvis (timer == 0) timer = 1; timer_one = timer%10; hours_ten = timer/10; minutter_one = minutter%10; minutter_ten = minutter/10; sekunder_one = sekunder%10; sekunder_ten = sekunder/10; lc.setRow (0, 0, tal [sekunder_one]); lc.setRow (0, 1, nummer [sekunder_ten]); lc.setRow (0, 2, nummer [minutter_one]); lc.setRow (0, 3, nummer [minutter_ten]); lc.setRow (0, 4, antal [timer_one]); lc.setRow (0, 5, antal [timer_ten]); } if (menu == 1) {if (digitalRead (6) == 0) {forsinkelse (300); timer ++; hvis (timer> = 24) timer = 0; } hvis (digitalRead (7) == 0) {forsinkelse (300); timer--; hvis (timer = 60) minutter = 0; } hvis (digitalRead (7) == 0) {forsinkelse (300); minutter--; hvis (minutter <0) minutter = 0; } minutter_one = minutter%10; minutter_ten = minutter/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, nummer [minutter_one]); lc.setRow (0, 3, nummer [minutter_ten]); } hvis (menu == 3) {clock.setDateTime (2020, 4, 13, timer, minutter, 01); menu = 0; } //lc.setLed(0, række, kol, falsk); //lc.setLed(0, række, kol, sand); //lc.setColumn(0, col, B10100000); //lc.setRow(0, 4, B11111111); //lc.setRow(0, række, (byte) 0); //lc.setColumn(0, col, (byte) 0); // For at se nul, se DS3231_dateformat eksempel // Serial.print ("Rå data:"); // Serial.print (dt.år); Serial.print ("-"); // Serial.print (dt.måned); Serial.print ("-"); // Serial.print (dt.day); Serial.print (""); // Serial.print (dt.time); Serial.print (":"); // Serial.print (dt.minut); Serial.print (":"); // Serial.print (dt.second); Serial.println (""); // // forsinkelse (1000); }

Trin 6: Placering af LED'erne

Placering af lysdioderne
Placering af lysdioderne
Placering af lysdioderne
Placering af lysdioderne
Placering af lysdioderne
Placering af lysdioderne
Placering af lysdioderne
Placering af lysdioderne

I denne fase vil jeg sætte alle lysdioder til hullerne på træpladen. Forbindelserne mellem lysdioderne er vist i skematisk. Da vi vil bruge MAX7219 LED -driver til at drive LED'erne, skal alle LED'erne tilsluttes i matrixform. Så jeg forbandt anodestifterne på alle lysdioder i hver kolonne sammen og alle katodestifterne i hver række sammen i henhold til skematisk. Nu er vores søjlepinde faktisk anodestifter af lysdioder og radstifter er faktisk katodestifter af lysdioder.

For at køre LED'er, der bruger MAX7219, skal du slutte katodestiften på en led til en cifret stift på IC'en og anodestiften på LED'en til en segmentstift på IC'en. Så vores søjlenåle skal forbindes til segmentstifterne, og rækkenåle skal forbindes med cifretappen på MAX7219.

Du skal tilslutte en modstand mellem ISET -pin og VCC på MAX7219 IC, og denne modstand styrer segmentstifterne. Jeg brugte en 10K modstand til at opretholde 20mA i hvert segmentstift.

Trin 7: Tilslutning af lysdioder

Tilslutning af lysdioder
Tilslutning af lysdioder
Tilslutning af lysdioder
Tilslutning af lysdioder
Tilslutning af lysdioder
Tilslutning af lysdioder

På dette tidspunkt tilsluttede jeg alle lysdioderne i et matrixformat med rækken og kolonner. Jeg havde brug for at bruge nogle ekstra jumperwires til at forbinde lysdioderne, men du kan oprette forbindelsen uden hjælp af ekstra ledninger, hvis LED'ernes ledninger er lange nok til at røre hinanden.

I denne konfiguration kræves ingen modstand, fordi MAX7219 tager sig af strømmen. Din pligt er at vælge den rigtige værdi for ISET -modstanden og trække ISET -stiften op med denne modstand. Inden LED'erne placeres og tilsluttes, vil jeg foreslå, at du kontrollerer hver LED. Fordi at placere en dårlig LED vil dræbe masser af tid. I det næste trin forbinder vi række- og kolonnetrådene til MAX ic.

Trin 8: Tilslutning af printkort med lysdioderne

Tilslutning af printkort med lysdioderne
Tilslutning af printkort med lysdioderne
Tilslutning af printkort med lysdioderne
Tilslutning af printkort med lysdioderne
Tilslutning af printkort med lysdioderne
Tilslutning af printkort med lysdioderne

Vores printkort inklusive RTC, Arduino og MAX7219 er klar i lang tid, og vi forberedte også LED -matricen i det foregående trin. Nu skal vi forbinde alle tingene sammen i henhold til skematikken. Først skal vi forbinde række- og kolonnetråde til MAX7219IC. Forbindelsen blev nævnt i skematisk. For at gøre det mere klart følger du tabellen nedenfor.

LED Matrix MAX7219CNG
RÆKKE0 DIGIT0
Række 1 DIGIT1
Række 2 DIGIT2
Række 3 DIGIT3
KOLONN0 SEGA
KOLONN1 SEGB
KOLONN2 SEGC
KOLONN3 SEGD
KOLONN4 SEGE
KOLONN5 SEGF

RÆKKE-> Øverste række

KOLONN0 -> Kolonne længst til højre (SS KOLONN)

Efter tilslutningen skal du reparere printkortet og Arduino med træstykket for at undgå at afbryde forbindelsen. Jeg brugte varm lim til at fastsætte alle kredsløb på plads. For at undgå kortslutning skal du bruge en stor mængde lim til at skjule loddetappen i undersiden af printkortet.

For at gøre et ur brugbart skal du beholde en mulighed for at justere tiden, når det kræves. Jeg tilføjede tre knapkontakter til justering af tiden. En til ændring af option og to til stigning og reduktion af time og minut. Knapperne er placeret i øverste højre hjørne, så disse er let tilgængelige.

Trin 9: Placering af kuglerne

Placering af kuglerne
Placering af kuglerne
Placering af kuglerne
Placering af kuglerne
Placering af kuglerne
Placering af kuglerne

Dette er den sidste fase af vores projekt. Hele kredsløbstilslutningen er fuldført. Nu skal du placere marmoren på oversiden af træuret. Til placering af kuglerne brugte jeg varm lim. Brug gennemsigtig hvid farve limpind til formålet. Jeg påførte varm lim i hvert hul fra oversiden og oven på lysdioderne placerede jeg forsigtigt marmoren i hvert hul. Hvis du tilføjer lim jævnt, øges lysdioden. Jeg brugte BLÅ LED til mit ur. Det gav mig det bedste resultat.

Giv strøm til uret. Hvis det viser tid, så tillykke !!!

Du gjorde det!

God fornøjelse!

Gør det til Glow Contest
Gør det til Glow Contest
Gør det til Glow Contest
Gør det til Glow Contest

Runner Up i konkurrencen Make it Glow

Anbefalede: