INHOUDSOPGAWE:

Binêre lessenaarklok: 9 stappe (met foto's)
Binêre lessenaarklok: 9 stappe (met foto's)

Video: Binêre lessenaarklok: 9 stappe (met foto's)

Video: Binêre lessenaarklok: 9 stappe (met foto's)
Video: РАДУЖНЫЕ ДРУЗЬЯ — КАЧКИ?! НЕЗАКОННЫЕ Эксперименты VR! 2024, Julie
Anonim
Binêre lessenaarklok
Binêre lessenaarklok
Binêre lessenaarklok
Binêre lessenaarklok
Binêre lessenaarklok
Binêre lessenaarklok

Binêre horlosies is wonderlik en uitsluitlik vir die persoon wat die binêre ken (die taal van die digitale toestelle). As u 'n tegniese man is, is hierdie vreemde horlosie vir u. Maak dus self een en hou u tyd geheim!

U vind baie binêre horlosies van verskillende soorte op die internet. Selfs u kan 'n binêre horlosie in 'n aanlynwinkel soos amazon.com koop. Maar hierdie horlosie verskil van almal en hier het ek marmer gespeel om dit 'n elegante voorkoms te gee.

Kyk eers na die demo -video voordat u afgaan.

Stap 1: Staatsbrief

Staatsbrief
Staatsbrief
Staatsbrief
Staatsbrief
Staatsbrief
Staatsbrief

Hardeware komponente

1. Arduino Pro Micro (koop van aliexpress.com): Dit is die belangrikste hart van die klok en lees die tyd van RTC en gee instruksies om die LED's dienooreenkomstig te bestuur. U kan Arduino Nano selfs Arduino Uno gebruik in plaas van Pro Micro as die grootte nie vir u saak maak nie.

2. DS3231 RTC -module (koop van aliexpress.com): Die DS3231 RTC hou tred met die tyd, selfs as die krag afgaan. Alhoewel ander RTC soos DS1307 gebruik kan word, is die DS3231 meer akkuraat.

3. MAX7219CNG LED Driver IC (koop van aliexpress.com): Arduino het 'n beperkte aantal penne. Dus, as u tonne LED's wil bestuur sonder om Arduino -penne te mors, is MAX7219 die lewensredder. Dit neem reeksdata en kan 64 LED's onafhanklik bestuur.

4. 20 stuks blou LED, 5 mm (koop op aliexpress.com): Blue het die beste resultaat vir my gegee. U kan dit met ander kleure probeer.

5. 20 STUKS Marmer speel (koop op aliexpress.com): Standaardgrootte speelmarmor is gebruik. Die marmer moet deursigtig wees om lig deur te gee.

6. Weerstand 10K: Word gebruik om die segmentstroom van die MAX7219 IC te beheer. Sien die datablad om die presiese waarde vir verskillende segmentstroom te ken.

7. Drade

8. Prototipe PCB Board (koop van aliexpress.com): Ek het 'n prototype PCB board gebruik vir MAX7219 IC met 'n IC basis. U kan ook u persoonlike PCB -bord ontwerp.

Hardeware gereedskap

1. CNC 3018 PRO Lasergraveur Hout CNC Router Masjien (koop van aliexpress.com): Die DIY CNG -masjien is gebruik om marmer en LED's op die hout te sny. Dit is 'n uitstekende masjien met 'n lae prys vir enige vervaardiger en stokperdjie.

2. Soldeerstasie (koop een van aliexpress.com): 'n bietjie soldeer is nodig vir die projek en 'n goeie soldeerbout is 'n noodsaaklike hulpmiddel vir 'n vervaardiger. 60W is 'n goeie keuse vir self -soldeer.

3. Wire Cutter (koop van aliexpress.com)

4. Titaanbedekte hardmetaal -frees vir CNC (koop van aliexpress.com): U kan ook probeer met die bietjie wat by die masjien voorsien word. In hierdie geval moet u die ontwerp verander.

Stap 2: Graveer en sny

Gravering en snywerk
Gravering en snywerk
Gravering en snywerk
Gravering en snywerk
Gravering en snywerk
Gravering en snywerk

Ek het 'n 165X145X18.8 mm sagte esdoornhoutstuk geneem om die LED's van die klok te plaas. Bo -aan elke led sal ek 'n marmer plaas en die grootte van 'n standaard marmer is 15,5 mm in deursnee. Ek het dus 15,7 mm gate gemaak met 'n diepte van 7 mm. In die middel van die gat het ek 'n boor van 5 mm gemaak om die LED te plaas. Al die teks is gemaak met 'n diepte van 2 mm. U kan die diepte van u keuse verhoog of verminder. U kan ook lasergraveer vir die teks.

Die volledige ontwerp is gemaak deur Easel van Inventables. Easel is 'n webgebaseerde sagtewareplatform waarmee u 'n enkele eenvoudige program kan ontwerp en sny, en die meeste funksies is gratis om te gebruik. U hoef slegs by die stelsel aan te meld deur 'n rekening te skep of Gmail te gebruik.

Easel Pro is 'n lidmaatskapgebaseerde wolkprogrammatuur wat voortbou op die gratis Easel-sagteware van Inventables. Easel en Easel Pro verminder die hindernisse wat verband hou met ingewikkelde sagteware vir die vervaardiging van CAD- en CAM -produkte, sodat gebruikers dit maklik kan maak om fisiese produkte te vervaardig.

Met Easel kan u die ontwerplêer in G-kode-formaat uitvoer of u CNC direk vanuit die Easel-omgewing opstel en die opdrag na die CNC stuur. In hierdie geval moet u die bestuurder vir die Easel installeer. U kan ook 'n G-kode wat voorheen geskep is, in die Easel IDE invoer en verander. Ek het die ontwerplêer hierby ingesluit. U kan die ontwerp maklik volgens u keuse aanpas deur Easel te gebruik.

Stap 3: Skuur en aanbring van vernis

Skuur en aanbring van vernis
Skuur en aanbring van vernis
Skuur en aanbring van vernis
Skuur en aanbring van vernis
Skuur en aanbring van vernis
Skuur en aanbring van vernis
Skuur en aanbring van vernis
Skuur en aanbring van vernis

Lak kan 'n pragtige afwerking gee aan houtprojekte en skilderye. Skuur u stuk en maak u werkruimte skoon voordat u vernis op hout aanbring. Skuur gee 'n gladde voorkoms en berei die hout voor vir vernis. Dien die vernis in 'n paar dun lae toe en laat elkeen deeglik droog word voordat u verder gaan. Om 'n skildery te vernis, laat dit heeltemal droog word en borsel dan die vernis versigtig aan. Een laag is genoeg vir baie skilderye, maar u kan 'n ekstra laag byvoeg solank u die vorige eers deeglik laat droog word.

Voordat u die vernis aanbring, moet u enige onvolmaakthede en letsels verwyder voordat u die vernis aanbring. Om dit te doen, gebruik 100 skuurpapier vir onvoltooide stukke en werk met die korrels van die hout. Skuur liggies totdat die stuk glad is. Na die skoonmaak van die houtstuk, dien die vernis op 'n goed geventileerde plek toe.

Vernis red die hout van stof en vog in die omgewing, maar dit kan die kleur van die hout beïnvloed.

Stap 4: Maak die kring

Om die kring te maak
Om die kring te maak
Om die kring te maak
Om die kring te maak
Om die kring te maak
Om die kring te maak
Om die kring te maak
Om die kring te maak

Die hoofkomponent van die horlosie is 'n Arduino Pro Mini -mikrokontrollerbord en 'n DS3231 RTC -module. Die verbinding van die Arduino Pro Mini en die RTC -module is baie eenvoudig. U moet die SDA -pen van die RTC -module aan die SDA -pen van die Arduino en die SCL -pen van die RTC -module koppel aan die SCL -pen van die Arduino. SDA- en SCL -penne is eintlik onderskeidelik A4 en A5 -pen van Arduino. U moet ook 'n gemeenskaplike verbinding tussen Arduino- en RTC -modules maak. Ek het springdrade gebruik om die verbindings te maak.

Die verbinding tussen Arduino en DS3231 RTC:

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

'N Binêre klok benodig 20 LED's om uur, minuut en sekonde te wys. As u die datum wil wys, verg dit meer. Die Arduino -bord het 'n beperking op die GPIO -penne. Ek het dus MAX7219CNG LED driver IC gebruik om tonne LED's te bestuur met slegs drie penne van die Arduino -bord.

Die MAX7219 -bestuurder -IC kan 64 individuele LED's aandryf terwyl slegs 3 drade gebruik word vir kommunikasie met die Arduino, en wat meer is, ons kan verskeie bestuurders en matrikse daisy chain en nog steeds dieselfde 3 drade gebruik.

Die 64 LED's word aangedryf deur 16 uitvoerpenne van die IC. Die vraag is nou hoe dit moontlik is. Die maksimum aantal LED's terselfdertyd brand, is eintlik agt. Die LED's is gerangskik as 'n 8 × 8 stel rye en kolomme. Die MAX7219 aktiveer dus elke kolom vir 'n baie kort tydperk, en terselfdertyd dryf dit ook elke ry. Dus, deur vinnig deur die kolomme en rye te skakel, sal die menslike oog slegs 'n deurlopende lig sien.

Die VCC en GND van die MAX7219 gaan na die 5V en GND penne van die Arduino en die drie ander penne, DIN, CLK en CS gaan na enige digitale pen van die Arduino bord. As ons meer as een module wil verbind, koppel ons net die uitsetpenne van die vorige uitbreekbord aan die ingangspennetjies van die nuwe module. Hierdie penne is eintlik dieselfde, behalwe dat die DOUT -pen van die vorige bord na die DIN -pen van die nuwe bord gaan.

Die verbinding tussen Arduino en MAX7219CNG:

Arduino MAX7219
D12 DIN
D11 CLK
D10 LOAD
GND GND

Stap 5: Laai die program op

Laai die program op
Laai die program op

Die hele program is in 'n Arduino -omgewing geskryf. Twee eksterne biblioteke is vir die skets gebruik. Die een is vir die RTC -module en die ander vir die MAX7219 IC. Laai die biblioteke van die skakel af en voeg dit by die Arduino IED voordat u die program saamstel.

Die oplaai van program in Arduino Pro Mini is 'n bietjie lastig. Kyk na die handleiding as u nog nooit Arduino Pro Mini gebruik het nie:

/*

GIT: https://github.com/jarzebski/Arduino-DS3231> GIT: https://github.com/jarzebski/Arduino-DS3231> */#include "Wire.h" #include "DS3231.h" #include "LedControl.h" /* Nou het ons 'n LedControl nodig om mee te werk. ***** Hierdie speldnommers werk waarskynlik nie met u hardeware nie ***** pen 12 is gekoppel aan die DataIn pen 11 is gekoppel aan die CLK pen 10 is gekoppel aan LOAD Ons het slegs 'n enkele MAX72XX. */ DS3231 klok; RTCDateTime dt; LedControl lc = LedControl (12, 11, 10, 1); int sekondes, minute, ure; greep nommer [10] = {B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; ongeldige opstelling () {//Serial.begin(9600); / * Die MAX72XX is in die kragbesparingsmodus tydens die aanvang; ons moet 'n wekroep */ lc.stop (0, vals) doen; / * Stel die helderheid op 'n medium waardes */ lc.setIntensity (0, 15); / * en maak die skerm */ lc.clearDisplay (0) skoon; //lc.setLed(0, ry, kol, 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, B11111111); // lc.setColumn (0, 2, B11111111); // lc.setColumn (0, 3, B11111111); // lc.setColumn (0, 4, B11111111); // lc.setColumn (0, 5, B11111111); // Begin DS3231 klok.begin (); // Stel die opstel van sketstyd //clock.setDateTime(_DATE_, _TIME_); pinMode (5, INPUT_PULLUP); pinMode (6, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); } int menu = 0, op, af; int hours_one; int hours_ten; int minute_een; int minute_ten; int seconds_one; int seconds_ten; leemte -lus () {if (digitalRead (5) == 0) {delay (300); spyskaart ++; as (spyskaart> 3) spyskaart = 0; } as (menu == 0) {dt = clock.getDateTime (); ure = dt.uur; minute = dt.minute; sekondes = dt.second; as (ure> 12) ure = ure - 12; as (ure == 0) ure = 1; ure_een = ure%10; hours_ten = ure/10; minute_one = minute%10; minute_ten = minute/10; seconds_one = sekondes%10; seconds_ten = sekondes/10; lc.setRow (0, 0, getal [second_one]); lc.setRow (0, 1, getal [seconds_ten]); lc.setRow (0, 2, getal [minute_one]); lc.setRow (0, 3, getal [minute_ten]); lc.setRow (0, 4, nommer [uur_one]); lc.setRow (0, 5, nommer [hours_ten]); } if (menu == 1) {if (digitalRead (6) == 0) {vertraging (300); ure ++; as (ure> = 24) ure = 0; } if (digitalRead (7) == 0) {delay (300); ure--; as (ure = 60) minute = 0; } if (digitalRead (7) == 0) {delay (300); minute--; as (minute <0) minute = 0; } minute_one = 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, getal [minute_one]); lc.setRow (0, 3, getal [minute_ten]); } if (menu == 3) {clock.setDateTime (2020, 4, 13, ure, minute, 01); spyskaart = 0; } //lc.setLed(0, ry, kol, vals); //lc.setLed(0, ry, kol, waar); //lc.setColumn(0, kol, B10100000); //lc.setRow(0, 4, B11111111); //lc.setRow(0, ry, (byte) 0); //lc.setColumn(0, kol, (byte) 0); // Vir voorbeeld nul, kyk na die voorbeeld van DS3231_dateformat // Serial.print ("Rou data:"); // Seriële.afdruk (dt.jaar); Serial.print ("-"); // Serial.print (dt.maand); Serial.print ("-"); // Serial.print (dt.day); Serial.print (""); // Seriële.afdruk (dt.uur); Serial.print (":"); // Serial.print (dt.minute); Serial.print (":"); // Serial.print (dt.second); Serial.println (""); // // vertraging (1000); }

Stap 6: Plaas die LED's

Plaas die LED's
Plaas die LED's
Plaas die LED's
Plaas die LED's
Plaas die LED's
Plaas die LED's
Plaas die LED's
Plaas die LED's

In hierdie stadium plaas ek al die LED's in die gate van die houtbord. Die verbindings van die LED's word in die skema getoon. Aangesien ons die MAX7219 LED -bestuurder sal gebruik om die LED's aan te dryf, moet al die LED's in matriksvorm gekoppel wees. Dus het ek die anodepenne van alle LED's in elke kolom aanmekaar gekoppel en al die katodepenne van elke ry volgens die skema. Ons kolompenne is eintlik anodepenne van LED's en rypenne is eintlik katodepenne van LED's.

Om LED's met MAX7219 te bestuur, moet u 'n katodepen van 'n LED aan 'n syferpen van die IC en 'n anodepen van die LED koppel aan 'n segmentpen van die IC. Ons kolompenne moet dus aan die segmentpenne gekoppel word, en rypenne moet aan die syferpen van die MAX7219 gekoppel word.

U moet 'n weerstand tussen die ISET -pen en die VCC van die MAX7219 IC verbind, en hierdie weerstand beheer die segmentpennestroom. Ek het 'n 10K -weerstand gebruik om 20mA in elke segmentpen te handhaaf.

Stap 7: Verbind LED's

Verbind LED's
Verbind LED's
Verbind LED's
Verbind LED's
Verbind LED's
Verbind LED's

Op hierdie stadium het ek al die LED's in 'n ryskolom-matriksformaat verbind. Ek moes 'n paar ekstra draaddrade gebruik om die LED's aan te sluit, maar u kan die verbinding maak sonder die hulp van ekstra drade as die LED's lank genoeg is om aan mekaar te raak.

In hierdie konfigurasie is geen weerstand nodig nie omdat MAX7219 die stroom sal versorg. U plig is om die regte waarde vir die ISET -weerstand te kies en die ISET -pen met hierdie weerstand op te trek. Voordat ek die LED's plaas en aansluit, stel ek voor dat u elke LED nagaan. Omdat die plasing van 'n slegte LED baie tyd sal verg. In die volgende stap verbind ons die ry- en kolomdrade met die MAX ic.

Stap 8: Koppelbord met die LED's verbind

Koppelbord met LED's verbind
Koppelbord met LED's verbind
Koppelbord met LED's verbind
Koppelbord met LED's verbind
Koppelbord met LED's verbind
Koppelbord met LED's verbind

Ons printplaat, insluitend RTC, Arduino en MAX7219, is lankal gereed en ons het ook die LED -matriks in die vorige fase voorberei. Nou moet ons al die dinge volgens die skema aan mekaar koppel. Eerstens moet ons die ry- en kolomdrade aan die MAX7219IC koppel. Die verband is in die skema genoem. Om dit duideliker te maak, volg die tabel hieronder.

LED Matriks MAX7219CNG
RY 0 DIGIT0
RY 1 DIGIT1
RY 2 DIGIT2
RY 3 DIGIT3
KOLOM0 SEGA
KOLOM 1 SEGB
KOLOM 2 SEGC
KOLOM3 SEGD
KOLOM 4 SEGE
KOLOM 5 SEGF

RY0-> Boonste ry

KOLOM0 -> Kolom regs (SS KOLOM)

Nadat u die verbinding gemaak het, moet u die printplaat en Arduino met die houtstuk regmaak om te voorkom dat die verbinding verbreek word. Ek het warm gom gebruik om al die stroombane reg te maak. Om 'n kortsluiting te vermy, gebruik 'n groot hoeveelheid gom om die soldeerverbinding aan die onderkant van die printplaat te verberg.

Om 'n klok bruikbaar te maak, moet u die opsie behou om die tyd aan te pas wanneer dit nodig is. Ek het drie knopskakelaars bygevoeg om die tyd aan te pas. Een vir die verandering van opsie en twee vir die verhoging en afname van uur en minuut. Die knoppies is in die regter boonste hoek geplaas sodat dit maklik toeganklik is.

Stap 9: Plaas die albasters

Die plaas van die albasters
Die plaas van die albasters
Die plaas van die albasters
Die plaas van die albasters
Die plaas van die albasters
Die plaas van die albasters

Dit is die laaste fase van ons projek. Al die kringverbinding is voltooi. Nou moet u die marmer aan die bokant van die houtklok plaas. Ek het warm gom gebruik om die albasters te plaas. Gebruik 'n deursigtige wit kleur gomstok vir die doel. Ek het warm gom in elke gat aan die bokant aangebring en bo -op die LED's het ek die marmer saggies in elke gat geplaas. Deur gom eweredig by te voeg, verhoog die gloed van die LED. Ek het BLUE LED vir my horlosie gebruik. Dit het my die beste resultaat gegee.

Gee krag aan die horlosie. As dit tyd wys, baie geluk !!!

Jy het dit reggekry!

Geniet dit!

Maak dit Glow Contest
Maak dit Glow Contest
Maak dit Glow Contest
Maak dit Glow Contest

Naaswenner in die Make it Glow -wedstryd

Aanbeveel: