Obsah:
- Krok 1: Kusovník
- Krok 2: Gravírování a vyřezávání
- Krok 3: Broušení a nanášení laku
- Krok 4: Vytvoření obvodu
- Krok 5: Nahrání programu
- Krok 6: Umístění LED diod
- Krok 7: Připojení LED diod
- Krok 8: Spojení obvodové desky s LED diodami
- Krok 9: Umístění kuliček
Video: Binární stolní hodiny: 9 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Binární hodiny jsou úžasné a výhradně pro osoby, které znají binární soubory (jazyk digitálních zařízení). Pokud jste technický člověk, tyto podivné hodiny jsou pro vás. Vytvořte si tedy jeden sami a svůj čas utajte!
Na internetu najdete spoustu binárních hodin různých typů. Dokonce si můžete koupit binární hodiny z internetového obchodu jako amazon.com. Ale tyto hodiny se liší od všech a zde jsem použil hraní mramoru, abych jim dodal elegantní vzhled.
Než půjdete dolů, podívejte se na demo video.
Krok 1: Kusovník
Hardwarové komponenty
1. Arduino Pro Micro (koupit na aliexpress.com): Toto je hlavní srdce hodin a čte čas z RTC a podle toho dává pokyny k ovládání LED. Pokud na velikosti nezáleží, můžete místo Pro Micro použít Arduino Nano, dokonce i Arduino Uno.
2. Modul DS3231 RTC (koupit na aliexpress.com): DS3231 RTC zaznamenává čas, i když se vypne napájení. Ačkoli lze použít i jiné RTC jako DS1307, DS3231 je přesnější.
3. MAX7219CNG LED ovladač IC (koupit na aliexpress.com): Arduino má omezený počet pinů. Pokud tedy chcete řídit spoustu LED diod bez plýtvání kolíky Arduino, MAX7219 je záchranář. Trvá sériová data a může samostatně řídit 64 LED.
4. 20 KS modrá LED, 5 mm (koupit na aliexpress.com): Modrá pro mě poskytla nejlepší výsledek. Můžete to zkusit s jinými barvami.
5. 20 PCS Playing Marble (koupit na aliexpress.com): Byl použit standardní mramor na hraní. Mramor musí být průhledný, aby procházel světlem.
6. Rezistor 10K: Používá se k ovládání proudu segmentu IC MAX7219. Přesnou hodnotu různých proudů segmentů najdete v datovém listu.
7. Dráty
8. Prototypová deska plošných spojů (koupit na aliexpress.com): Použil jsem prototyp desky plošných spojů pro MAX7219 IC se základnou IC. Můžete si také navrhnout vlastní desku plošných spojů.
Hardwarové nástroje
1. CNC 3018 PRO Laserový rytec Dřevěný CNC směrovací stroj (koupit na aliexpress.com): Stroj Theis DIY CNG byl použit k řezání dřeva na mramor a LED diody. Jedná se o vynikající stroj s nízkou cenou pro každého výrobce a fandy.
2. Pájecí stanice (kupte si ji na aliexpress.com): Pro projekt je zapotřebí určité pájení a dobrá páječka je pro výrobce nezbytným nástrojem. 60W je dobrá volba pro DIY pájení.
3. Řezačka drátu (koupit na aliexpress.com)
4. Fréza na konec karbidu s karbidem potaženým titanem pro CNC (koupit na aliexpress.com): Můžete také vyzkoušet bit dodaný se strojem. V takovém případě byste měli v návrhu provést nějaké změny.
Krok 2: Gravírování a vyřezávání
Vzal jsem dřevěný kus Soft Maple o rozměrech 165 x 145 x 18,8 mm pro umístění LED diod hodin. Na začátek každé ledky umístím mramor a velikost standardního hracího mramoru má průměr 15,5 mm. Takže jsem udělal otvory 15,7 mm s hloubkou 7 mm. Uprostřed otvoru jsem vytvořil 5mm vrták pro umístění LED. Celý text byl vytvořen s hloubkou 2 mm. Hloubku podle svého výběru můžete zvětšit nebo zmenšit. Můžete také zkusit laserové gravírování textu.
Kompletní design vytvořil Easel z Inventables. Easel je webová softwarová platforma, která vám umožňuje navrhovat a vyřezávat z jediného jednoduchého programu a většinu funkcí lze používat zdarma. K systému jste se museli přihlásit pouze vytvořením účtu nebo pomocí Gmailu.
Easel Pro je cloudový software založený na členství, který staví na bezplatném softwaru Easel společnosti Inventables. Easel a Easel Pro minimalizují překážky spojené s komplikovaným softwarem pro výrobu CAD a CAM produktů, což uživatelům usnadňuje výrobu fyzických produktů.
Pomocí nástroje Easel můžete exportovat soubor návrhu ve formátu G-kódu nebo přímo nastavit své CNC z prostředí Easel a odeslat příkaz do CNC. V takovém případě musíte nainstalovat ovladač pro Easel. Můžete také importovat dříve vytvořený G-kód do Easel IDE a upravit. Zahrnul jsem zde soubor návrhu. Pomocí Easel můžete snadno upravit design podle svého výběru.
Krok 3: Broušení a nanášení laku
Lak může poskytnout krásnou povrchovou úpravu dřevěným projektům a obrazům. Před nanesením laku na dřevo obrouste svůj kus a vyčistěte pracovní prostor. Broušení dává hladký vzhled a připravuje dřevo na lak. Naneste lak v několika tenkých vrstvách a před dalším pokračujte důkladným zaschnutím. Chcete -li lak nalakovat, nechte jej zcela zaschnout a poté lak opatrně natřete. Na mnoho obrazů stačí jeden nátěr, ale můžete přidat další vrstvu, pokud nejprve necháte předchozí důkladně zaschnout.
Před nanesením laku musíte před nanesením laku odstranit všechny nedokonalosti a kazy. K tomu použijte brusný papír se zrnitostí 100 pro nedokončené kusy a pracujte se zrnem dřeva. Jemně pískujte, dokud nebude kus hladký. Po vyčištění kusu dřeva naneste lak na dobře větraném místě.
Lak chrání dřevo před prachem a vlhkostí, ale může ovlivnit barvu dřeva.
Krok 4: Vytvoření obvodu
Hlavní součástí hodin je deska mikrokontroléru Arduino Pro Mini a modul DS3231 RTC. Propojení Arduino Pro Mini a modulu RTC je velmi jednoduché. Musíte připojit pin SDA modulu RTC ke kolíku SDA modulu Arduino a pin SCL modulu RTC ke kolíku SCL zařízení Arduino. Piny SDA a SCL jsou ve skutečnosti A4 a A5 pin Arduina. Musíte také vytvořit společné zemní spojení mezi moduly Arduino a RTC. K propojení jsem použil propojovací vodiče.
Spojení mezi Arduino a DS3231 RTC:
Arduino | DS3231 |
---|---|
SCL (A5) | SCL |
SDA (A4) | SDA |
5V | VCC |
GND | GND |
K zobrazení hodiny, minuty a sekundy vyžadovaly binární hodiny 20 LED diod. Pokud chcete zobrazit datum, vyžaduje to více. Deska Arduino má omezení pinů GPIO. Takže jsem použil MAX7219CNG LED ovladač IC pro řízení tun LED pomocí pouze tří pinů desky Arduino.
IC ovladače MAX7219 je schopen řídit 64 jednotlivých LED diod, přičemž pro komunikaci s Arduinem používá pouze 3 vodiče, a co víc, můžeme řetězit více ovladačů a matic a stále používat stejné 3 vodiče.
64 LED je napájeno 16 výstupními piny integrovaného obvodu. Otázkou nyní je, jak je to možné. Maximální počet současně rozsvícených LED je ve skutečnosti osm. LED diody jsou uspořádány jako sada řádků a sloupců 8 × 8. MAX7219 tedy aktivuje každý sloupec na velmi krátkou dobu a současně také pohání každý řádek. Rychlým přepínáním mezi sloupci a řadami si lidské oko všimne pouze nepřetržitého světla.
VCC a GND MAX7219 přecházejí na piny 5V a GND Arduina a další tři piny, DIN, CLK a CS přecházejí na jakýkoli digitální pin desky Arduino. Pokud chceme připojit více než jeden modul, připojíme pouze výstupní piny předchozí desky pro rozpojení ke vstupním pinům nového modulu. Ve skutečnosti jsou tyto kolíky všechny stejné, kromě toho, že kolík DOUT předchozí desky jde na kolík DIN nové desky.
Spojení mezi Arduino a MAX7219CNG:
Arduino | MAX7219 |
---|---|
D12 | RÁMUS |
D11 | CLK |
D10 | ZATÍŽENÍ |
GND | GND |
Krok 5: Nahrání programu
Celý program je napsán v prostředí Arduino. Pro náčrt byly použity dvě externí knihovny. Jeden je pro modul RTC a druhý je pro MAX7219 IC. Stáhněte si knihovny z odkazu a přidejte je do Arduino IED před kompilací programu.
Nahrávání programu v Arduino Pro Mini je trochu složité. Podívejte se na tutoriál, pokud jste nikdy předtím nepoužívali 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" /* Nyní potřebujeme pracovat s LedControl. ***** Tato čísla pinů pravděpodobně nebudou fungovat s vaším hardwarem ***** pin 12 je připojen k DataIn pin 11 je připojen k CLK pin 10 je připojen k LOAD Máme pouze jeden MAX72XX. */ Hodiny DS3231; RTCDateTime dt; LedControl lc = LedControl (12, 11, 10, 1); int sekundy, minuty, hodiny; číslo bajtu [10] = {B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; neplatné nastavení () {//Serial.begin(9600); / * MAX72XX je při spuštění v úsporném režimu, musíme provést probuzení */ lc.shutdown (0, false); / * Nastavte jas na střední hodnoty */ lc.setIntensity (0, 15); / * a vymažte displej */ lc.clearDisplay (0); //lc.setLed(0, řádek, sloupec, 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); // Inicializace DS3231 clock.begin (); // Nastavit čas kompilace skici //clock.setDateTime(_DATE_, _TIME_); pinMode (5, INPUT_PULLUP); pinMode (6, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); } int nabídka = 0, nahoru, dolů; int hodiny_jedny; int hodin_ten; int minutes_one; int minutes_ten; int sekund_jedny; int seconds_ten; void loop () {if (digitalRead (5) == 0) {delay (300); nabídka ++; if (menu> 3) menu = 0; } if (menu == 0) {dt = clock.getDateTime (); hodiny = dt.hodina; minuty = dt.minuta; sekundy = dt.sekunda; pokud (hodiny> 12) hodiny = hodiny - 12; if (hodin == 0) hodin = 1; hours_one = hodin%10; hours_ten = hodiny/10; minutes_one = minuty%10; minutes_ten = minuty/10; seconds_one = seconds%10; seconds_ten = sekund/10; lc.setRow (0, 0, číslo [sekund_jeden]); lc.setRow (0, 1, číslo [sekundy_ten]); lc.setRow (0, 2, číslo [minut_jeden]); lc.setRow (0, 3, číslo [minuty_ten]); lc.setRow (0, 4, číslo [hodin_jeden]); lc.setRow (0, 5, číslo [hodin_ten]); } if (menu == 1) {if (digitalRead (6) == 0) {delay (300); hodiny ++; pokud (hodiny> = 24) hodiny = 0; } if (digitalRead (7) == 0) {delay (300); hodiny--; pokud (hodiny = 60) minuty = 0; } if (digitalRead (7) == 0) {delay (300); minut--; if (minutes <0) minutes = 0; } minutes_one = minuty%10; minutes_ten = minuty/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, číslo [minut_jeden]); lc.setRow (0, 3, číslo [minuty_ten]); } if (menu == 3) {clock.setDateTime (2020, 4, 13, hours, minutes, 01); nabídka = 0; } //lc.setLed(0, row, col, false); //lc.setLed(0, řádek, sloupec, true); //lc.setColumn(0, col, B10100000); //lc.setRow(0, 4, B11111111); //lc.setRow(0, řádek, (byte) 0); //lc.setColumn(0, col, (byte) 0); // Pokud jde o úvodní nulu, podívejte se na příklad DS3231_dateformat // Serial.print ("Raw data:"); // Serial.print (dt.rok); Serial.print ("-"); // Serial.print (dt.měsíc); 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 (""); // // zpoždění (1000); }
Krok 6: Umístění LED diod
V této fázi vložím všechny LED do otvorů na dřevěné desce. Zapojení LED je znázorněno na schématu. Protože k ovládání LED použijeme ovladač LED MAX7219, musí být všechny diody LED zapojeny v maticové formě. Podle schématu jsem tedy spojil anodové piny všech LED v každém sloupci dohromady a všechny katodové piny každé řady dohromady. Naše kolíkové kolíky jsou ve skutečnosti anodové piny LED a řádkové piny jsou vlastně katodové piny LED.
Pro napájení LED pomocí MAX7219 musíte připojit katodový pin LED k číslicovému kolíku IC a anodový pin LED k segmentovému pinu IC. Naše kolíkové kolíky by tedy měly být připojeny k pinům segmentů a kolíky řádků by měly být připojeny k číslicovému kolíku MAX7219.
Potřebujete připojit odpor mezi pin ISET a VCC IC MAX7219 a tento odpor ovládá proud kolíků segmentu. Použil jsem 10K odpor k udržení 20mA v každém segmentovém pinu.
Krok 7: Připojení LED diod
V této fázi jsem připojil všechny LED diody ve formátu matice řádků a sloupců. Potřeboval jsem použít nějaké další propojovací vodiče pro připojení LED, ale můžete provést připojení bez pomoci dalších vodičů, pokud jsou vodiče LED dostatečně dlouhé, aby se navzájem dotýkaly.
V této konfiguraci není vyžadován žádný odpor, protože MAX7219 se postará o proud. Vaší povinností je vybrat správnou hodnotu pro rezistor ISET a vytáhnout pin ISET tímto odporem. Před umístěním a připojením LED doporučuji zkontrolovat každou LED. Protože umístění špatné LED zabije spoustu času. V dalším kroku připojíme řádkové a sloupcové vodiče k MAX ic.
Krok 8: Spojení obvodové desky s LED diodami
Naše deska s obvody včetně RTC, Arduino a MAX7219 je připravena na dlouhou dobu a v předchozí fázi jsme také připravili matici LED. Nyní musíme všechny věci spojit dohromady podle schématu. Nejprve musíme k MAX7219IC připojit řádkové a sloupcové vodiče. Spojení bylo uvedeno ve schématu. Aby to bylo jasnější, postupujte podle níže uvedené tabulky.
LED matice | MAX7219CNG |
---|---|
Řádek 0 | DIGIT0 |
1. ŘADA | DIGIT1 |
2. ŘADA | DIGIT2 |
3. ŘADA | DIGIT3 |
SLOUPEC0 | SEGA |
SLOUPEC1 | SEGB |
SLOUPEC2 | SEGC |
SLOUPEC3 | SEGD |
SLOUPEC4 | SEGE |
SLOUPEC 5 | SEGF |
ROW0-> Horní řada
COLUMN0 -> Sloupec úplně vpravo (SS COLUMN)
Po provedení připojení musíte desku plošných spojů a Arduino upevnit dřevěným kusem, aby nedošlo k přerušení spojení. K upevnění všech obvodů na místě jsem použil horké lepidlo. Abyste předešli zkratu, použijte velké množství lepidla ke skrytí pájecího spoje na spodní straně desky plošných spojů.
Aby byly hodiny použitelné, musíte mít možnost upravit čas podle potřeby. Přidal jsem tři tlačítkové spínače pro nastavení času. Jeden pro změnu možnosti a dva pro zvýšení a snížení hodiny a minuty. Tlačítka jsou umístěna v pravém horním rohu, aby byla snadno přístupná.
Krok 9: Umístění kuliček
Toto je konečná fáze našeho projektu. Veškeré zapojení obvodu je dokončeno. Nyní musíte umístit mramor na horní stranu dřevěných hodin. K položení kuliček jsem použil horké lepidlo. K tomu použijte průhlednou bílou lepicí tyčinku. Do každé díry z vrchní strany jsem nanesl horké lepidlo a na LED diody jsem do každé dírky jemně umístil mramor. Rovnoměrné přidání lepidla zvýší záři LED. Na hodiny jsem použil MODROU LED. Dalo mi to nejlepší výsledek.
Dejte energii hodinám. Pokud ukazuje čas, pak Gratulujeme !!!
Dokázal jsi to!
Užívat si!
Runner Up in the Make it Glow Contest
Doporučuje:
Binární LED mramorové hodiny: 6 kroků (s obrázky)
Binární LED mramorové hodiny: Teď si myslím, že téměř každý má binární hodiny a tady je moje verze. Bavilo mě, že tento projekt kombinuje práci se dřevem, programování, učení, elektroniku a snad jen trochu umělecké kreativity. Ukazuje čas, měsíc, datum, den
Binární hodiny Arduino - 3D tisk: 5 kroků (s obrázky)
Arduino Binary Clock - 3D Printed: Už nějakou dobu se dívám na binární hodiny pro svůj kancelářský stůl, ale jsou docela drahé a / nebo nemají obrovské množství funkcí. Rozhodl jsem se tedy, že místo toho jeden vyrobím. Jeden bod, který je třeba vzít v úvahu při výrobě hodin, Arduino / Atmega328
Binární hodiny využívající neopixely: 6 kroků (s obrázky)
Binární hodiny využívající neopixely: Ahoj, lidi, miluji všechny věci související s LED a také je rád využívám různými zajímavými způsoby Ano, vím, že binární hodiny se zde dělaly už mnohokrát, a každý je skvělým příkladem toho, jak vytvořte si vlastní hodiny. Opravdu si přeji
Binární mramorové hodiny: 9 kroků (s obrázky)
Binární mramorové hodiny: Jedná se o jednoduché hodiny, které ukazují čas (hodiny/minuty) v binárním režimu pomocí LED skrytých pod skleněnými kuličkami. Pro průměrného člověka to vypadá jako hromada světel, ale čas poznáte podle jen letmý pohled na tyto hodiny. To
Binární hodiny: 5 kroků (s obrázky)
Binární hodiny: Zde je jednoduchý příklad, jak vytvořit skvěle vypadající binární 24hodinové hodiny. Červené LED diody ukazují sekundy, zelené LED minuty a žluté LED hodiny. Pouzdro obsahuje čtyři tlačítka pro nastavení času. Hodiny fungují s 9 volty. Tyto hodiny se snadno dělají a díly