Innehållsförteckning:
- Steg 1: Materialförteckning
- Steg 2: Gravering och carving
- Steg 3: Slipning och applicering av lack
- Steg 4: Gör kretsen
- Steg 5: Ladda upp programmet
- Steg 6: Placering av lysdioderna
- Steg 7: Anslutning av lysdioder
- Steg 8: Anslutning av kretskort med lysdioderna
- Steg 9: Placera marmor
Video: Binärt skrivbordsklocka: 9 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
Binära klockor är fantastiska och uteslutande för den som kan det binära (språket på de digitala enheterna). Om du är en teknisk kille är den här konstiga klockan något för dig. Så gör en själv och håll din tid hemlig!
Du hittar massor av binära klockor av olika typer på Internet. Även du kan köpa en binär klocka från onlinebutik som amazon.com. Men den här klockan skiljer sig från alla och här använde jag marmor för att ge den ett elegant utseende.
Titta på demovideon innan du går ner.
Steg 1: Materialförteckning
Hårdvarukomponenter
1. Arduino Pro Micro (köp från aliexpress.com): Detta är klockans huvudhjärta och läser tiden från RTC och ger instruktioner för att driva lysdioderna därefter. Du kan använda Arduino Nano till och med Arduino Uno istället för Pro Micro om storleken inte spelar någon roll för dig.
2. DS3231 RTC -modul (köp från aliexpress.com): DS3231 RTC håller reda på tiden även när strömmen stängs av. Även om andra RTC som DS1307 kan användas är DS3231 mer exakt.
3. MAX7219CNG LED Driver IC (köp från aliexpress.com): Arduino har ett begränsat antal stift. Så om du vill köra massor av lysdioder utan att slösa med Arduino -stift är MAX7219 livräddaren. Den tar seriell data och kan driva 64 lysdioder oberoende.
4. 20 ST blå LED, 5 mm (köp från aliexpress.com): Blå gav det bästa resultatet för mig. Du kan prova med andra färger.
5. 20 PCS Playing Marble (köp från aliexpress.com): Spelande marmor i standardstorlek användes. Marmor måste vara transparent för att passera ljus.
6. Motstånd 10K: Används för att styra segmentströmmen för MAX7219 IC. Se databladet för att veta det exakta värdet för olika segmentström.
7. Trådar
8. Prototyp -kretskort (köp från aliexpress.com): Jag använde ett prototyp -kretskort för MAX7219 IC med en IC -bas. Du kan också designa ditt anpassade kretskort.
Hårdvaruverktyg
1. CNC 3018 PRO Lasergraver Trä CNC Router Machine (köp från aliexpress.com): Theis DIY CNG -maskin användes för carving på träet för marmor och lysdioder. Detta är en utmärkt maskin med ett lågt pris för alla tillverkare och hobbyister.
2. Lödstation (köp en från aliexpress.com): Viss lödning krävs för projektet och ett bra lödkolv är ett måste-verktyg för en tillverkare. 60W är ett bra val för DIY -lödning.
3. Wire Cutter (köp från aliexpress.com)
4. Titanbelagd hårdmetallfräs för CNC (köp från aliexpress.com): Du kan också prova med biten som medföljer maskinen. I så fall bör du göra några ändringar i designen.
Steg 2: Gravering och carving
Jag tog en 165X145X18.8 mm mjuk lönn träbit för att placera klockans lysdioder. Högst upp på varje LED kommer jag att placera en marmor och storleken på en standardmarmor är 15,5 mm i diameter. Så jag gjorde 15,7 mm hål med ett djup av 7 mm. I mitten av hålet gjorde jag en 5 mm borr för att placera lysdioden. All text gjordes med 2 mm djup. Du kan öka eller minska djupet du väljer. Du kan också prova lasergravering för texten.
Den kompletta designen gjordes av Easel från Inventables. Easel är en webbaserad mjukvaruplattform som låter dig designa och skära från ett enkelt, enkelt program och de flesta funktioner är gratis att använda. Du behöver bara logga in på systemet genom att skapa ett konto eller använda Gmail.
Easel Pro är ett medlemsbaserat molnprogram som bygger på Inventables gratis Easel-programvara. Easel och Easel Pro minimerar de hinder som är förknippade med komplicerad CAD- och CAM -produkttillverkningsprogramvara, vilket gör det enkelt för användare att producera fysiska produkter.
Med Easel kan du exportera designfilen i G-kodformat eller direkt konfigurera din CNC från Easel-miljön och skicka kommandot till CNC. I så fall måste du installera drivrutinen för Easel. Du kan också importera en tidigare skapad G-kod till Easel IDE och ändra. Jag inkluderade designfilen härmed. Du kan enkelt ändra designen enligt ditt val med hjälp av Easel.
Steg 3: Slipning och applicering av lack
Lack kan ge en vacker finish till träprojekt och målningar. Innan du applicerar lack på trä, slipa din bit och rengör din arbetsyta. Slipning ger ett mjukt utseende och förbereder träet för lack. Applicera lacken i flera tunna lager, låt var och en torka ordentligt innan du fortsätter till nästa. För att lacka en tavla, låt den torka helt och borsta sedan försiktigt på lacken. Ett lager räcker för många målningar, men du kan lägga till ett extra lager så länge du först låter den föregående torka ordentligt.
Innan lacken appliceras måste du ta bort eventuella brister och fläckar innan lacken appliceras. För att göra det Använd 100 sandpapper av grus för oavslutade bitar och arbeta med träkornen. Slipa försiktigt tills biten är slät. Efter rengöring av träbiten applicera lacken i ett välventilerat område.
Lack sparar träet från omgivande damm och fukt men det kan påverka träets färg.
Steg 4: Gör kretsen
Klockans huvudkomponent är ett Arduino Pro Mini -mikrokontrollerkort och en DS3231 RTC -modul. Anslutningen av Arduino Pro Mini och RTC -modulen är mycket enkel. Du måste ansluta SDA -stiftet på RTC -modulen till SDA -stiftet på Arduino och SCL -stiftet på RTC -modulen till SCL -stiftet på Arduino. SDA- och SCL -stift är faktiskt A4 respektive A5 -stift av Arduino. Du måste också göra en gemensam jordanslutning mellan Arduino- och RTC -moduler. Jag använde bygelkablar för att göra anslutningarna.
Anslutningen mellan Arduino och DS3231 RTC:
Arduino | DS3231 |
---|---|
SCL (A5) | SCL |
SDA (A4) | SDA |
5V | VCC |
GND | GND |
För att visa timme, minut och sekund krävs en binär klocka 20 lysdioder. Om du vill visa datum krävs mer. Arduino -kortet har en begränsning av GPIO -stiften. Så jag använde MAX7219CNG LED -drivrutins -IC för att köra massor av lysdioder med endast tre stift på Arduino -kortet.
MAX7219 -drivrutins -IC kan driva 64 individuella lysdioder medan du bara använder tre ledningar för kommunikation med Arduino, och dessutom kan vi kedja flera drivrutiner och matriser och fortfarande använda samma tre ledningar.
De 64 lysdioderna drivs av 16 utgångsstiften på IC: n. Frågan är nu hur det är möjligt. Tja, det maximala antalet lysdioder lyser samtidigt är faktiskt åtta. Lysdioderna är ordnade som en 8 × 8 uppsättning rader och kolumner. Så MAX7219 aktiverar varje kolumn under en mycket kort tidsperiod och samtidigt driver den också varje rad. Så genom att snabbt växla mellan kolumnerna och raderna kommer det mänskliga ögat bara att märka ett kontinuerligt ljus.
VCC och GND för MAX7219 går till 5V- och GND -stiften på Arduino och de tre andra stiften, DIN, CLK och CS går till valfri digital stift på Arduino -kortet. Om vi vill ansluta mer än en modul ansluter vi bara utgångsstiften på föregående brytkort till ingångsstiften på den nya modulen. Egentligen är alla stiften desamma förutom att DOUT -stiftet på föregående bräda går till DIN -stiftet på det nya kortet.
Anslutningen mellan Arduino och MAX7219CNG:
Arduino | MAX7219 |
---|---|
D12 | DÅN |
D11 | CLK |
D10 | LADDA |
GND | GND |
Steg 5: Ladda upp programmet
Hela programmet är skrivet i Arduino -miljö. Två externa bibliotek användes för skissen. En är för RTC -modulen och en annan är för MAX7219 IC. Ladda ner biblioteken från länken och lägg till Arduino IED innan du kompilerar programmet.
Att ladda upp program i Arduino Pro Mini är lite knepigt. Ta en titt på självstudien om du aldrig använder Arduino Pro Mini tidigare:
/*
GIT: https://github.com/jarzebski/Arduino-DS3231> GIT: https://github.com/jarzebski/Arduino-DS3231> */#include "Wire.h" #include "DS3231.h" #include "LedControl.h" /* Nu behöver vi en LedControl att arbeta med. ***** Dessa pin -nummer fungerar förmodligen inte med din maskinvara ***** pin 12 är ansluten till DataIn pin 11 är ansluten till CLK pin 10 är ansluten till LOAD Vi har bara en enda MAX72XX. */ DS3231 klocka; RTCDateTime dt; LedControl lc = LedControl (12, 11, 10, 1); int sekunder, minuter, timmar; byte nummer [10] = {B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; void setup () {//Serial.begin(9600); / * MAX72XX är i energisparläge vid start, vi måste göra ett väckningssamtal */ lc.stängning (0, falskt); / * Ställ in ljusstyrkan till ett medelvärde */ lc.setIntensity (0, 15); / * och rensa displayen */ lc.clearDisplay (0); //lc.setLed(0, rad, kol, 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); // Initiera DS3231 clock.begin (); // Ställ in skisskompileringstid //clock.setDateTime(_DATE_, _TIME_); pinMode (5, INPUT_PULLUP); pinMode (6, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); } int meny = 0, upp, ned; int timmar_one; int timmar_ten; int minutes_one; int minuter_ten; int seconds_one; int sekunder_ten; void loop () {if (digitalRead (5) == 0) {delay (300); meny ++; om (meny> 3) meny = 0; } if (meny == 0) {dt = clock.getDateTime (); timmar = dt.timme; minuter = dt.minut; sekunder = dt.second; om (timmar> 12) timmar = timmar - 12; om (timmar == 0) timmar = 1; hours_one = timmar%10; timmar_ten = timmar/10; minutes_one = minuter%10; minuter_ten = minuter/10; seconds_one = sekunder%10; sekunder_ten = sekunder/10; lc.setRow (0, 0, nummer [second_one]); lc.setRow (0, 1, tal [sekunder_ten]); lc.setRow (0, 2, nummer [minuter_one]); lc.setRow (0, 3, tal [minuter_ten]); lc.setRow (0, 4, nummer [hours_one]); lc.setRow (0, 5, antal [timmar_ten]); } if (meny == 1) {if (digitalRead (6) == 0) {fördröjning (300); timmar ++; om (timmar> = 24) timmar = 0; } if (digitalRead (7) == 0) {delay (300); timmar--; om (timmar = 60) minuter = 0; } if (digitalRead (7) == 0) {delay (300); minuter--; om (minuter <0) minuter = 0; } minutes_one = minuter%10; minuter_ten = minuter/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 [minuter_one]); lc.setRow (0, 3, tal [minuter_ten]); } if (meny == 3) {clock.setDateTime (2020, 4, 13, timmar, minuter, 01); meny = 0; } //lc.setLed(0, rad, kol, falsk); //lc.setLed(0, rad, kol, true); //lc.setColumn(0, col, B10100000); //lc.setRow(0, 4, B11111111); //lc.setRow(0, rad, (byte) 0); //lc.setColumn(0, col, (byte) 0); // För att se noll till DS3231_dateformat exempel // Serial.print ("Raw data:"); // Serial.print (dt.år); Serial.print ("-"); // Serial.print (dt.månad); Serial.print ("-"); // Serial.print (dt.day); Serial.print (""); // Serial.print (dt.timme); Serial.print (":"); // Serial.print (dt.minut); Serial.print (":"); // Serial.print (dt.second); Serial.println (""); // // fördröjning (1000); }
Steg 6: Placering av lysdioderna
I detta skede kommer jag att sätta alla lysdioder i träbrädans hål. Anslutningarna mellan lysdioderna visas i schemat. Eftersom vi kommer att använda MAX7219 LED -drivrutin för att driva lysdioderna måste alla lysdioder vara anslutna i matrisform. Så jag anslöt anodstiften på alla lysdioder i varje kolumn tillsammans och alla katodstiften i varje rad tillsammans enligt schemat. Nu är våra kolumnstift faktiskt anodstift på lysdioder och radstift är faktiskt katodstift på lysdioder.
För att köra lysdioder med MAX7219 måste du ansluta katodstiftet på en LED till en sifferstift på IC: n och anodstiftet på LED: n till ett segmentstift på IC. Så våra kolumnpinnar ska vara anslutna till segmentpinnarna och radpinnarna ska vara anslutna till siffrorna på MAX7219.
Du måste ansluta ett motstånd mellan ISET -stift och VCC på MAX7219 IC och detta motstånd styr segmentstiften. Jag använde ett 10K -motstånd för att behålla 20mA i varje segmentstift.
Steg 7: Anslutning av lysdioder
I detta skede anslöt jag alla lysdioder i ett rad-kolumnmatrisformat. Jag behövde använda några extra bygelkablar för att ansluta lysdioderna men du kan göra anslutningen utan hjälp av extra ledningar om lysdiodernas ledningar är tillräckligt långa för att röra varandra.
I denna konfiguration krävs inget motstånd eftersom MAX7219 tar hand om strömmen. Din plikt är att välja rätt värde för ISET -motståndet och dra upp ISET -stiftet med detta motstånd. Innan du placerar och ansluter lysdioderna föreslår jag att du kontrollerar varje lysdiod. För att placera en dålig LED kommer att döda mycket tid. I nästa steg ansluter vi rad- och kolumnledningarna till MAX ic.
Steg 8: Anslutning av kretskort med lysdioderna
Vårt kretskort inklusive RTC, Arduino och MAX7219 är klart länge och vi förberedde även LED -matrisen i föregående steg. Nu måste vi koppla ihop alla saker enligt schemat. Först måste vi ansluta rad- och kolumnledningarna till MAX7219IC. Anslutningen nämndes i schemat. För att göra det tydligare följ tabellen nedan.
LED -matris | MAX7219CNG |
---|---|
RAD0 | DIGIT0 |
RAD1 | DIGIT1 |
RAD2 | DIGIT2 |
RAD3 | DIGIT3 |
KOLONN0 | SEGA |
KOLONN1 | SEGB |
KOLONN2 | SEGC |
KOLONN3 | SEGD |
KOLONN4 | SEGE |
KOLONN5 | SEGF |
RAD0-> Översta raden
COLUMN0 -> Kolumn längst till höger (SS COLUMN)
Efter anslutningen måste du fixa kretskortet och Arduino med träbiten för att undvika att anslutningen bryts. Jag använde varmt lim för att fixa alla kretsar på plats. För att undvika kortslutning, använd en stor mängd lim för att dölja lödfogen på undersidan av kretskortet.
För att göra en klocka användbar måste du behålla ett alternativ för att justera tiden när det behövs. Jag lade till tre knappar för att justera tiden. En för att ändra alternativ och två för att öka och minska timme och minut. Knapparna är placerade i det övre högra hörnet så att dessa är lättåtkomliga.
Steg 9: Placera marmor
Detta är det sista steget i vårt projekt. All kretsanslutning är klar. Nu måste du placera marmorn på ovansidan av träklockan. För att placera kulorna använde jag varmt lim. Använd genomskinlig vit färgpinne för ändamålet. Jag applicerade varmt lim i varje hål från ovansidan och ovanpå lysdioderna placerade jag marmorn försiktigt i varje hål. Att lägga till lim jämnt ökar lysdioden på lysdioden. Jag använde BLÅ LED för min klocka. Det gav mig det bästa resultatet.
Ge ström till klockan. Om det visar tid då Grattis !!!
Du gjorde det!
Njut av!
Tvåa i tävlingen Make it Glow
Rekommenderad:
Hårddisk skrivbordsklocka: 5 steg
Hard Drive Desktop Clock: IntroDet finns en hårddisksklocka i Pinterest till salu. Jag vill alltid göra en av dem till mitt skrivbord. COVID-19 karantän ger mig chansen att göra en. På grund av viruset måste jag göra det från allt jag har i huset så det här är min första instruktion
"Trä" skrivbordsklocka *Modernt utseende *: 9 steg (med bilder)
"Trä" skrivbordsklocka *Modernt utseende *: Hej alla, det här är min andra instruktör! Den här gången ska vi bygga en träklocka med temperatur- och luftfuktighetsvisning. Precis som på bilden kommer vår tid att visas genom " träet ". Eftersom ljuset inte är starkt enoug
Neo Steampunk skrivbordsklocka: 5 steg
Neo Steampunk skrivbordsklocka: Steampunk på grund av kopparslangen. Neo på grund av den moderna Arduino. Antisismisk på grund av fjädrarna som håller de elektroniska bitarna i kopparramen
Binärt spel: 9 steg (med bilder)
Binärt spel: Detta är ett spel jag skapade på Tinkercad Circuits för att lära mig binära tal. https://www.tinkercad.com/things/erDquXcpyW8Om du vill följa med den här guiden och bygga din egen kan du hitta filerna och koden på min github på https://github.com/kee
Arduino -baserat binärt väckarklocka: 13 steg (med bilder)
Arduino -baserad binär väckarklocka: Hej, idag skulle jag vilja visa dig hur du bygger ett av mina senaste projekt, min binära väckarklocka. Det finns massor av olika binära klockor på internet, men det här kan faktiskt vara det första, tillverkat av en rad färgglada adresserbara lysdioder,