Inhoudsopgave:

Binaire bureauklok - Ajarnpa
Binaire bureauklok - Ajarnpa

Video: Binaire bureauklok - Ajarnpa

Video: Binaire bureauklok - Ajarnpa
Video: Very young Thierry Baudet 1999 Fragment Jinek March 21, 2019, with subtitles 2024, November
Anonim
Binaire bureauklok
Binaire bureauklok
Binaire bureauklok
Binaire bureauklok
Binaire bureauklok
Binaire bureauklok

Binaire klokken zijn geweldig en exclusief voor de persoon die de binaire (de taal van de digitale apparaten) kent. Als je een techneut bent, is deze rare klok iets voor jou. Dus maak er zelf een en houd je tijd geheim!

Op internet vindt u veel binaire klokken van verschillende typen. Zelfs u kunt een binaire klok kopen in een online winkel zoals amazon.com. Maar deze klok is anders dan alle andere en hier heb ik marmer gespeeld om het een elegante uitstraling te geven.

Bekijk de demovideo voordat u naar beneden gaat.

Stap 1: Stuklijst

Stuklijst
Stuklijst
Stuklijst
Stuklijst
Stuklijst
Stuklijst

Hardware onderdelen

1. Arduino Pro Micro (kopen op aliexpress.com): Dit is het belangrijkste hart van de klok en leest de tijd van RTC en geeft instructies om de LED's dienovereenkomstig aan te sturen. Je kunt Arduino Nano zelfs Arduino Uno gebruiken in plaats van Pro Micro als de grootte er niet toe doet.

2. DS3231 RTC-module (kopen op aliexpress.com): De DS3231 RTC houdt de tijd bij, zelfs wanneer de stroom uitvalt. Hoewel andere RTC's zoals DS1307 kunnen worden gebruikt, is de DS3231 nauwkeuriger.

3. MAX7219CNG LED Driver IC (kopen bij aliexpress.com): Arduino heeft een beperkt aantal pinnen. Dus als je tonnen LED's wilt aansturen zonder Arduino-pinnen te verspillen, is MAX7219 de redder in nood. Het neemt seriële gegevens en kan 64 LED's onafhankelijk aansturen.

4. 20 STKS Blauwe LED, 5 mm (kopen bij aliexpress.com): Blauw gaf voor mij het beste resultaat. U kunt proberen met andere kleuren.

5. 20 PCS Marmer spelen (kopen op aliexpress.com): er werd een standaard formaat marmer gebruikt. Het marmer moet transparant zijn om licht door te laten.

6. Weerstand 10K: wordt gebruikt om de segmentstroom van de MAX7219 IC te regelen. Zie de datasheet om de exacte waarde voor verschillende segmentstroom te kennen.

7. Draden

8. Prototype printplaat (kopen bij aliexpress.com): ik gebruikte een prototype printplaat voor MAX7219 IC met een IC-basis. U kunt ook uw eigen printplaat ontwerpen.

Hardware tools

1. CNC 3018 PRO lasergraveerder hout CNC-routermachine (kopen bij aliexpress.com): deze DIY CNG-machine werd gebruikt voor het snijden op het hout voor marmer en LED's. Dit is een uitstekende machine met een lage prijs voor elke maker en hobbyist.

2. Soldeerstation (koop er een op aliexpress.com): Er is wat soldeerwerk vereist voor het project en een goede soldeerbout is een onmisbaar hulpmiddel voor een maker. 60W is een goede keuze voor doe-het-zelf-solderen.

3. Draadknipper (kopen bij aliexpress.com)

4. Titanium gecoate carbide frees voor CNC (kopen op aliexpress.com): U kunt ook proberen met het bit dat bij de machine is geleverd. In dat geval moet u enkele wijzigingen aanbrengen in het ontwerp.

Stap 2: Graveren en snijden

Graveren en Carving
Graveren en Carving
Graveren en Carving
Graveren en Carving
Graveren en Carving
Graveren en Carving

Ik nam een stuk zacht esdoornhout van 165X145X18.8 mm voor het plaatsen van de LED's van de klok. Aan de bovenkant van elke led plaats ik een knikker en de grootte van een standaard speelmarmer is 15,5 mm in diameter. Dus maakte ik gaten van 15,7 mm met een diepte van 7 mm. In het midden van het gat heb ik een boor van 5 mm gemaakt voor het plaatsen van de LED. Alle tekst is gemaakt met een diepte van 2 mm. U kunt de diepte van uw keuze vergroten of verkleinen. U kunt ook lasergraveren voor de tekst proberen.

Het complete ontwerp is gemaakt door Easel van Inventables. Easel is een webgebaseerd softwareplatform waarmee u vanuit één enkel, eenvoudig programma kunt ontwerpen en snijden en de meeste functies zijn gratis te gebruiken. U hoeft alleen in te loggen op het systeem door een account aan te maken of Gmail te gebruiken.

Easel Pro is op lidmaatschap gebaseerde cloudsoftware die voortbouwt op de gratis Easel-software van Inventables. Easel en Easel Pro minimaliseren de barrières die gepaard gaan met gecompliceerde CAD- en CAM-productproductiesoftware, waardoor het voor gebruikers gemakkelijk wordt om fysieke producten te produceren.

Met Easel kunt u het ontwerpbestand exporteren in G-code-formaat of uw CNC rechtstreeks vanuit de Easel-omgeving instellen en de opdracht naar de CNC sturen. In dat geval moet u de driver voor de Easel installeren. U kunt ook een eerder gemaakte G-code in de Easel IDE importeren en wijzigen. Ik heb het ontwerpbestand hierbij gevoegd. U kunt het ontwerp eenvoudig naar uw keuze aanpassen met behulp van Easel.

Stap 3: Schuren en vernis aanbrengen

Schuren en vernis aanbrengen
Schuren en vernis aanbrengen
Schuren en vernis aanbrengen
Schuren en vernis aanbrengen
Schuren en vernis aanbrengen
Schuren en vernis aanbrengen
Schuren en vernis aanbrengen
Schuren en vernis aanbrengen

Vernis kan houtprojecten en schilderijen een mooie afwerking geven. Voordat u vernis op hout aanbrengt, schuurt u uw stuk en maakt u uw werkruimte schoon. Schuren geeft een glad uiterlijk en bereidt het hout voor op vernis. Breng de vernis aan in verschillende dunne lagen, laat ze allemaal goed drogen voordat je verder gaat met de volgende. Om een schilderij te vernissen, laat u het volledig drogen en borstelt u de vernis voorzichtig op. Voor veel schilderijen is één laag voldoende, maar je kunt een extra laag aanbrengen zolang je de vorige eerst goed laat drogen.

Voordat u de vernis aanbrengt, moet u eventuele onvolkomenheden en oneffenheden verwijderen voordat u de vernis aanbrengt. Gebruik hiervoor schuurpapier met korrel 100 voor onafgewerkte stukken en werk met de nerf van het hout mee. Schuur voorzichtig totdat het stuk glad is. Breng na het reinigen van het stuk hout de lak aan in een goed geventileerde ruimte.

Vernis beschermt het hout tegen stof en vocht uit de omgeving, maar kan de kleur van het hout aantasten.

Stap 4: Het circuit maken

Het circuit maken
Het circuit maken
Het circuit maken
Het circuit maken
Het circuit maken
Het circuit maken
Het circuit maken
Het circuit maken

Het belangrijkste onderdeel van de klok is een Arduino Pro Mini-microcontrollerkaart en een DS3231 RTC-module. De aansluiting van de Arduino Pro Mini en de RTC-module is heel eenvoudig. U moet de SDA-pin van de RTC-module aansluiten op de SDA-pin van de Arduino en de SCL-pin van de RTC-module op de SCL-pin van de Arduino. SDA- en SCL-pinnen zijn respectievelijk A4- en A5-pins van Arduino. U moet ook een gemeenschappelijke massaverbinding maken tussen Arduino- en RTC-modules. Ik gebruikte jumperdraden om de verbindingen te maken.

De verbinding tussen Arduino en DS3231 RTC:

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

Voor het weergeven van uren, minuten en seconden had een binaire klok 20 LED's nodig. Als je de datum wilt laten zien, is er meer nodig. Arduino-bord heeft een beperking van de GPIO-pinnen. Dus ik gebruikte MAX7219CNG LED-stuurprogramma-IC voor het aansturen van tonnen LED's met slechts drie pinnen van het Arduino-bord.

Het MAX7219-stuurprogramma-IC kan 64 afzonderlijke LED's aansturen terwijl er slechts 3 draden worden gebruikt voor communicatie met de Arduino, en bovendien kunnen we meerdere stuurprogramma's en matrixen in serie schakelen en nog steeds dezelfde 3 draden gebruiken.

De 64 LED's worden aangestuurd door 16 uitgangspinnen van het IC. De vraag is nu hoe dat mogelijk is. Welnu, het maximale aantal LED's dat tegelijkertijd oplicht is eigenlijk acht. De LED's zijn gerangschikt als een 8×8 reeks rijen en kolommen. Dus de MAX7219 activeert elke kolom voor een zeer korte periode en rijdt tegelijkertijd ook elke rij aan. Dus door snel door de kolommen en rijen te schakelen, zal het menselijk oog alleen een continu licht opmerken.

De VCC en GND van de MAX7219 gaan naar de 5V- en GND-pinnen van de Arduino en de drie andere pinnen, DIN, CLK en CS gaan naar elke digitale pin van het Arduino-bord. Als we meer dan één module willen aansluiten, verbinden we gewoon de uitgangspinnen van het vorige breakout-bord met de ingangspinnen van de nieuwe module. Eigenlijk zijn deze pinnen allemaal hetzelfde, behalve dat de DOUT-pin van het vorige bord naar de DIN-pin van het nieuwe bord gaat.

De verbinding tussen Arduino en MAX7219CNG:

Arduino MAX7219
D12 DIN
D11 CLK
D10 LADEN
GND GND

Stap 5: Het programma uploaden

Het programma uploaden
Het programma uploaden

Het hele programma is geschreven in een Arduino-omgeving. Voor de schets zijn twee externe bibliotheken gebruikt. Een is voor de RTC-module en een andere is voor de MAX7219 IC. Download de bibliotheken via de link en voeg ze toe aan de Arduino IED voordat je het programma compileert.

Het uploaden van een programma in Arduino Pro Mini is een beetje lastig. Bekijk de tutorial als je Arduino Pro Mini nog nooit hebt gebruikt:

/*

GIT: https://github.com/jarzebski/Arduino-DS3231 > GIT: https://github.com/jarzebski/Arduino-DS3231 > */ #include "Wire.h" #include "DS3231.h" #include "LedControl.h" /* Nu hebben we een LedControl nodig om mee te werken. ***** Deze pinnummers werken waarschijnlijk niet met uw hardware ***** pin 12 is verbonden met de DataIn pin 11 is verbonden met de CLK pin 10 is verbonden met LOAD We hebben maar een enkele MAX72XX. */ DS3231 klok; RTCDateTime dt; LedControl lc=LedControl (12, 11, 10, 1); int seconden, minuten, uren; bytenummer [10]={B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; void setup () {//Serial.begin (9600); /* De MAX72XX staat in de energiebesparende modus bij het opstarten, we moeten een wake-up call doen */ lc.shutdown(0, false); /* Stel de helderheid in op gemiddelde waarden */ lc.setIntensity(0, 15); /* en wis het scherm */ lc.clearDisplay(0); //lc.setLed (0, rij, col, waar); // 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, B1111111); // lc.setColumn (0, 2, B11111111); // lc.setColumn (0, 3, B11111111); // lc.setColumn (0, 4, B11111111); // lc.setColumn (0, 5, B1111111); // Initialiseer DS3231 clock.begin(); // Stel de tijd voor het compileren van schetsen in //clock.setDateTime (_DATE_, _TIME_); pinMode (5, INPUT_PULLUP); pinMode (6, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); } int menu = 0, omhoog, omlaag; int hours_one; int hours_ten; int minuten_een; int minuten_ten; int seconden_een; int seconden_ten; void loop() {if(digitalRead(5)==0){ delay(300); menu++; if(menu>3) menu = 0; } if(menu==0){ dt = klok.getDateTime(); uur = dt.uur; minuten = dt.minuut; seconden = dt.seconde; if(uren>12) uur = uur - 12; if(uren==0) uur = 1; hours_one = uur%10; uren_tien = uren/10; minuten_een = minuten%10; minuten_tien = minuten/10; seconden_een = seconden%10; seconden_tien = seconden/10; lc.setRow (0, 0, aantal [seconden_één]); lc.setRow (0, 1, nummer [seconden_tien]); lc.setRow (0, 2, aantal [minuten_one]); lc.setRow (0, 3, aantal [minuten_tien]); lc.setRow (0, 4, aantal [uur_één]); lc.setRow (0, 5, aantal [uren_tien]); } if(menu==1){ if(digitalRead(6)==0){ delay(300); uur++; if(uren>=24)uren = 0; } if(digitalRead(7)==0){ delay(300); uur--; if(uren=60) minuten = 0; } if(digitalRead(7)==0){ delay(300); minuten--; if(minuten<0) minuten = 0; } minuten_één = minuten%10; minuten_tien = minuten/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, aantal [minuten_one]); lc.setRow (0, 3, aantal [minuten_tien]); } if(menu==3){ clock.setDateTime(2020, 4, 13, hours, minutes, 01); menu = 0; } //lc.setLed(0, row, col, false); //lc.setLed (0, rij, col, waar); //lc.setColumn(0, col, B10100000); //lc.setRow (0, 4, B11111111); //lc.setRow(0, rij, (byte)0); //lc.setColumn(0, col, (byte)0); // Kijk voor voorloopnul naar voorbeeld DS3231_dateformat // Serial.print ("Ruwe data: "); // Serial.print (dt.jaar); Serieel.print("-"); // Serial.print (dt.maand); Serieel.print("-"); // Serial.print (dt.day); Serieel.print(" "); // Serial.print (dt.uur); Serial.print(":"); // Serial.print (dt.minute); Serial.print(":"); // Serial.print (dt.seconde); Serieel.println(""); // // vertraging (1000); }

Stap 6: De LED's plaatsen

Het plaatsen van de LED's
Het plaatsen van de LED's
Het plaatsen van de LED's
Het plaatsen van de LED's
Het plaatsen van de LED's
Het plaatsen van de LED's
Het plaatsen van de LED's
Het plaatsen van de LED's

In deze fase zal ik alle LED's in de gaten van het houten bord plaatsen. De aansluitingen van de LED's zijn weergegeven in het schema. Omdat we de MAX7219 LED-driver zullen gebruiken om de LED's aan te sturen, moeten alle LED's in matrixvorm worden aangesloten. Dus ik heb de anodepinnen van alle LED's in elke kolom met elkaar verbonden en alle kathodepinnen van elke rij samen volgens het schema. Nu zijn onze kolompinnen eigenlijk anodepinnen van LED's en rijpinnen zijn eigenlijk kathodepinnen van LED's.

Voor het aansturen van LED's met MAX7219 moet u de kathodepen van een led verbinden met een cijferpen van het IC en de anodepen van de led met een segmentpen van het IC. Onze kolompennen moeten dus worden aangesloten op de segmentpennen en rijpennen moeten worden aangesloten op de cijferpen van de MAX7219.

U moet een weerstand aansluiten tussen de ISET-pin en de VCC van de MAX7219 IC en deze weerstand regelt de stroom van de segmentpinnen. Ik heb een weerstand van 10K gebruikt om 20mA in elke segmentpen te behouden.

Stap 7: LED's aansluiten

LED's aansluiten
LED's aansluiten
LED's aansluiten
LED's aansluiten
LED's aansluiten
LED's aansluiten

In dit stadium heb ik alle LED's in een rij-kolommatrixformaat aangesloten. Ik moest wat extra jumperdraden gebruiken om de LED's aan te sluiten, maar je kunt de verbinding maken zonder de hulp van extra draden als de draden van de LED's lang genoeg zijn om elkaar te raken.

In deze configuratie is geen weerstand nodig omdat MAX7219 voor de stroom zorgt. Het is uw taak om de juiste waarde voor de ISET-weerstand te selecteren en de ISET-pin met deze weerstand omhoog te trekken. Voordat u de LED's plaatst en aansluit, raad ik u aan elke LED te controleren. Omdat het plaatsen van een slechte LED veel tijd kost. In de volgende stap zullen we de rij- en kolomdraden verbinden met de MAX ic.

Stap 8: Aansluiting printplaat met de LED's

Printplaat verbinden met de LED's
Printplaat verbinden met de LED's
Printplaat verbinden met de LED's
Printplaat verbinden met de LED's
Printplaat verbinden met de LED's
Printplaat verbinden met de LED's

Onze printplaat inclusief RTC, Arduino en MAX7219 is al lang klaar en we hebben in de vorige fase ook de LED-matrix voorbereid. Nu moeten we alle dingen met elkaar verbinden volgens het schema. Eerst moeten we de rij- en kolomdraden aansluiten op de MAX7219IC. De aansluiting werd vermeld in het schema. Volg de onderstaande tabel om het duidelijker te maken.

LED-matrix MAX7219CNG
ROW0 CIJFER0
RIJ1 CIJFER1
ROW2 CIJFER2
ROW3 CIJFER3
KOLOM0 SEGA
KOLOM1 SEGB
KOLOM2 SEGC
KOLOM3 SEGD
KOLOM4 SEGE
KOLOM5 SEGF

ROW0-> Bovenste rij

KOLOM0 -> Meest rechtse kolom (SS KOLOM)

Nadat u de verbinding tot stand heeft gebracht, moet u de printplaat en Arduino met het houten stuk bevestigen om te voorkomen dat de verbinding wordt verbroken. Ik heb hete lijm gebruikt om alle circuits op hun plaats te bevestigen. Gebruik een grote hoeveelheid lijm om de soldeerverbinding aan de onderkant van de printplaat te verbergen om kortsluiting te voorkomen.

Om een klok bruikbaar te maken, moet je een optie behouden om de tijd indien nodig aan te passen. Ik heb drie knopschakelaars toegevoegd om de tijd aan te passen. Een voor het wijzigen van de optie en twee voor het verhogen en verlagen van uren en minuten. De knoppen zijn in de rechterbovenhoek geplaatst, zodat deze gemakkelijk toegankelijk zijn.

Stap 9: De knikkers plaatsen

De knikkers plaatsen
De knikkers plaatsen
De knikkers plaatsen
De knikkers plaatsen
De knikkers plaatsen
De knikkers plaatsen

Dit is de laatste fase van ons project. Alle circuitverbindingen zijn voltooid. Nu moet je de knikker aan de bovenzijde van de houten klok plaatsen. Voor het plaatsen van de knikkers heb ik hete lijm gebruikt. Gebruik hiervoor een transparante witte kleur lijmstift. Ik heb hete lijm aangebracht in elk gat vanaf de bovenzijde en bovenop de LED's plaatste ik voorzichtig het marmer in elk gat. Het gelijkmatig toevoegen van lijm zal de gloed van de led vergroten. Ik gebruikte BLAUWE LED voor mijn klok. Het gaf mij het beste resultaat.

Geef de klok stroom. Als het tijd laat zien, gefeliciteerd!!!

Je hebt het gehaald!

Genieten van!

Make it Glow wedstrijd
Make it Glow wedstrijd
Make it Glow wedstrijd
Make it Glow wedstrijd

Tweede plaats in de Make it Glow-wedstrijd

Aanbevolen: