Obsah:

LEDura - analogové LED hodiny: 12 kroků (s obrázky)
LEDura - analogové LED hodiny: 12 kroků (s obrázky)

Video: LEDura - analogové LED hodiny: 12 kroků (s obrázky)

Video: LEDura - analogové LED hodiny: 12 kroků (s obrázky)
Video: как сделать Propeller LED Pendulum Clock, используя Arduino NANO, JLCPCB 2024, Červenec
Anonim
LEDura - analogové LED hodiny
LEDura - analogové LED hodiny
LEDura - analogové LED hodiny
LEDura - analogové LED hodiny
LEDura - analogové LED hodiny
LEDura - analogové LED hodiny

Projekty Tinkercad »

Po dlouhé době, co jsem dělal různé projekty, jsem se rozhodl udělat instruktáž sám. Pro první vás provedu procesem výroby vlastních analogových hodin vyrobených s úžasným adresovatelným LED kroužkem. Vnitřní prstenec ukazuje hodiny, vnější prstenec minuty a sekundy.

Kromě zobrazení času mohou hodiny také zobrazovat pokojovou teplotu a může to být velmi pěkná dekorace v místnosti. Každých 15 minut hodiny také vytvářejí speciální efekty - video je všechny zobrazuje, nezapomeňte se na ně podívat. Pomocí 2 tlačítek a potenciometru si uživatel může vybrat mezi různými režimy a upravovat barvy podle svého přání. Také jsem upgradoval, aby automaticky ztlumil LED diody, pokud místnost ztmavne, takže uživatel nebude v noci rušen.

Hodiny lze umístit na stůl, postel nebo zavěsit na zeď.

Poznámka: Obrázky nejsou tak dobré jako zobrazení ve skutečnosti kvůli vysokému jasu.

Krok 1: Jak si to přečíst?

Jak to přečíst?
Jak to přečíst?

Hodiny mají 2 prsteny - menší pro zobrazení hodin a větší pro zobrazení minut a sekund. Některé LED diody neustále svítí - takzvaný kompas, který ukazuje polohu hlavních hodin. V hodinovém kruhu to představuje hodiny 3, 6, 9 a 12'o, v minutovém prstenci to představuje 15, 30, 45 a 0 minut.

Krok 2: Co budete potřebovat

Co budete potřebovat
Co budete potřebovat

Materiály:

  • 1x Arduino Nano (můžete použít i jakékoli jiné Arduino)
  • 1x modul DS3231 RealTimeClock
  • 1x adresovatelný LED kroužek - 60 LED
  • 1x adresovatelný LED kroužek - 24 LED diod
  • 2x tlačítka (NE - normálně otevřené)
  • 1x potenciometr 100 kOhm
  • 1x 5V napájecí zdroj (schopný dodávat 1 A)
  • 1x napájecí konektor
  • Nějaké dráty
  • 1x 10kOhm odpor
  • 1x fotorezistor
  • Prefboard (volitelně)
  • Konektory vodičů svorkovnice (volitelně)
  • Dřevo o tloušťce 25 mm, velikost alespoň 22 cm x 22 cm
  • 1 mm tenká podložka z plastu PVC o rozměrech 20 cm x 20 x m

Nástroje:

  • Základní nástroje pro stavební elektroniku (páječka, kleště, šroubovák, …)
  • Vrtačka
  • Horká lepicí pistole
  • Brusný papír a trochu laku na dřevo
  • CNC stroj (možná ho má nějaký přítel)

Krok 3: Elektronické komponenty - pozadí

Elektronické komponenty - pozadí
Elektronické komponenty - pozadí
Elektronické komponenty - pozadí
Elektronické komponenty - pozadí
Elektronické komponenty - pozadí
Elektronické komponenty - pozadí

DS3231

Čas jsme mohli určit pomocí oscilátoru Arduinos a časovače, ale rozhodl jsem se použít vyhrazený modul Real Time Clock (RTC), který dokáže sledovat čas, i když hodiny odpojíme od zdroje napájení. Deska DS3231 má baterii, která zajišťuje napájení, když modul není připojen k napájení. Je také přesnější v delších časových obdobích než zdroj hodin Arduinos.

DS3231 RTC používá ke komunikaci s mikrořadičem rozhraní I2C-velmi jednoduché použití a ke komunikaci s ním potřebujeme pouze 2 vodiče. Modul také poskytuje teplotní čidlo, které bude použito v tomto projektu.

Důležité: Pokud plánujete pro modul RTC použít nenabíjecí baterii, měli byste odpájet odpor 200 ohmů nebo diodu 1N4148. Jinak by se vám mohla vybít baterie. Více informací naleznete na tomto odkazu.

WS2812 LED kroužek

Rozhodl jsem se použít 60 LED kroužků pro sledování minut a 24 LED kroužků po celé hodiny. Najdete je na Adafruit (neoPixel ring) nebo některých levných verzích na eBay, Aliexpress nebo jiných webových obchodech. Mezi adresovatelnými LED pásy je velká rozmanitost a pokud si s nimi pohráváte poprvé, doporučuji vám přečíst si některé popisy použití - zde je několik užitečných odkazů:

https://www.tweaking4all.com/hardware/arduino/adr…

https://randomnerdtutorials.com/guide-for-ws2812b…

Adresovatelný LED pásek má 3 konektory: 5V, GND a DI/DO. První dvě jsou pro napájení LED, poslední pro data. Při připojování prstence k Arduinu buďte opatrní - vaše datová linka musí být připojena ke kolíku DI (data IN).

Arduino

Používám Arduino Nano, protože je pro tento projekt dostatečně malý a dostačující. Můžete použít téměř jakékoli jiné Arduino, ale pak musíte být opatrní, když k němu připojujete vše. Tlačítka a prstence LED mohou být na stejných pinech, ale konektory I2C (pro modul RTC) se mohou v různých platformách lišit - podívejte se do jejich datového listu.

Krok 4: Elektronika - napájení

Elektronika - napájecí zdroj
Elektronika - napájecí zdroj

Arduino i LED pásek musí být napájeny 5V zdrojem, abychom věděli, jaké napětí je potřeba. Vzhledem k tomu, že LED diody krouží, čerpá poměrně hodně zesilovačů, nemůžeme je napájet přímo pomocí Arduina, který na svém digitálním výstupu vydrží max. 20mA. Podle mých měření mohou LED kroužky dohromady čerpat až 500 mA. Proto jsem si koupil adaptér, který je schopen dodávat až 1A.

Se stejným napájecím zdrojem chceme napájet Arduino a LED - zde musíte být opatrní.

Varování! Při testování LED pásky buďte mimořádně opatrní - napájecí adaptér NESMÍ být připojen k Arduinu, když je Arduino připojeno také k PC pomocí USB konektoru (můžete poškodit USB port vašeho počítače).

Poznámka: V níže uvedených schématech jsem pomocí normálního přepínače vybral, zda je Arduino napájeno z napájecího zdroje nebo z konektoru USB. Ale na perfboardu můžete vidět, že jsem přidal pinovou hlavičku pro výběr, ze kterého zdroje energie je Arduino napájeno.

Krok 5: Elektronika - pájení

Elektronika - pájení
Elektronika - pájení
Elektronika - pájení
Elektronika - pájení
Elektronika - pájení
Elektronika - pájení
Elektronika - pájení
Elektronika - pájení

Když shromáždíte všechny části, je čas je spojit dohromady.

Protože jsem chtěl udělat elektroinstalaci úhlednou, použil jsem pro vodiče perfboard a nějaký konektor svorkovnice, abych je mohl v případě úprav odpojit. Toto je volitelné - vodiče můžete také připájet přímo k Arduinu.

Tip: Je jednodušší tisknout schémata tak, abyste je měli při pájení před sebou. A před připojením k napájení vše zkontrolujte.

Krok 6: Software - pozadí

Arduino IDE

Chystáme se programovat Arduino s jeho vyhrazeným softwarem: Arduino IDE. Pokud hrajete s Arduinem poprvé, doporučuji vám zkontrolovat si nějaké návody, jak na to. Na webu už je spousta návodů, takže nebudu zacházet do podrobností.

Knihovna

Místo populárního Adafruit jsem se rozhodl použít knihovnu FastLED. Má několik úhledných matematických funkcí, se kterými můžete dělat skvělé efekty (palec nahoru vývojářům!). Knihovnu najdete v jejich úložišti GitHub, ale já jsem přidal.zip soubor verze, kterou používám ve svém kódu.

Pokud vás zajímá, jak přidat externí knihovnu do Arduino IDE, můžete zkontrolovat některé již vytvořené pokyny

Pro hodinový modul jsem použil knihovnu Arduino pro hodiny reálného času DS3231 (RTC) (odkaz), kterou můžete snadno nainstalovat do Arduino IDE. Když jste v IDE, klikněte na Skica → Zahrnout knihovnu → Spravovat knihovny … a poté filtrovat vyhledávání podle výše uvedeného jména.

Poznámka: Z nějakého důvodu v současné době nemohu přidat soubory.zip. Knihovnu najdete v mém úložišti GitHub.

Krok 7: Software - kód

Software - kód
Software - kód
Software - kód
Software - kód

Struktura

Aplikace je vytvořena se 4 soubory:

  • LEDclokc.ino Toto je hlavní aplikace Arduino, kde najdete funkce pro ovládání celých hodin - začínají předponou CLOCK_.
  • LEDclokc.h zde jsou definovány pinové připojení a některé konfigurace hodin.
  • ring.cpp a ring.h zde je můj kód pro ovládání LED kroužků.

LEDclock.h

Zde najdete všechny definice hodin. Na začátku jsou definice pro zapojení. Ujistěte se, že jsou stejné jako vaše připojení. Pak jsou zde konfigurace hodin - zde najdete makro pro počet režimů, které hodiny mají.

LEDclock.ino

Na schématu je znázorněna hlavní smyčka. Kód nejprve zkontroluje, zda není stisknuto nějaké tlačítko. Vzhledem k povaze přepínačů musíme ke čtení jejich hodnot použít metodu debbouncing (více o tom můžete přečíst na odkazu).

Když je stisknuto tlačítko 1, režim proměnné se zvýší o 1, pokud se stiskne tlačítko 2, typ proměnné se zvýší. Tyto proměnné používáme k určení, který režim hodin chceme vidět. Pokud jsou obě tlačítka stisknuta současně, zavolá se funkce CLOCK_setTime (), takže můžete změnit čas.

Později kód přečte hodnotu potenciometru a uloží ji do proměnné - přičemž uživatel této proměnné může měnit barvy hodin, jas atd.

Pak je tu příkaz switch-case. Zde určíme, ve kterém režimu jsou aktuálně hodiny, a v tomto režimu se nazývá odpovídající funkce, která nastavuje barvy LED diod. Můžete přidat vlastní režimy hodin a přepisovat nebo upravovat funkce.

Jak je popsáno v knihovně FastLED, musíte na konci zavolat funkci FastLED.show (), která změní LED na barvu, na kterou jsme je dříve nastavili.

Mezi řádky kódu najdete mnohem podrobnější popisy

Celý kód je připojen níže v níže uvedených souborech.

TIP: celý projekt najdete na mém úložišti GitHub. Zde bude kód také aktualizován, pokud do něj přidám jakékoli změny.

Krok 8: Vytvořte hodiny

Vyrobte si hodiny
Vyrobte si hodiny
Vyrobte si hodiny
Vyrobte si hodiny
Vyrobte si hodiny
Vyrobte si hodiny

Rám hodin

Rám hodin jsem postavil pomocí CNC stroje a dřeva o tloušťce 25 mm. Náčrt nakreslený v ProgeCADu naleznete níže. Sloty pro prsten LED jsou o něco větší, protože výrobci poskytují pouze měření vnějšího průměru - vnitřní se může dost lišit … V zadní části hodin je spousta prostoru pro elektroniku a vodiče.

PVC kroužky

Protože jsou LED diody celkem jasné, je dobré je nějak rozptýlit. Nejprve jsem zkoušel s průhledným silikonem, který má za úkol rozptylovat, ale je docela nepořádný a je těžké ho nahoře vyhladit. Proto jsem si objednal kus „mléčného“PVC plastu o rozměrech 20x20 cm a nařezal do něj pomocí CNC stroje dva prstence. K zjemnění okrajů můžete použít brusný papír, aby kroužky vklouzly do drážek.

Boční otvory

Poté je čas vyvrtat otvory pro tlačítka, potenciometr a konektor napájecího zdroje. Nejprve nakreslete každou polohu tužkou a poté vyvrtejte otvor. Zde záleží na tom, jaký typ tlačítek máte - šel jsem s tlačítky s mírně zakřivenou hlavou. Mají průměr 16 mm, takže jsem použil vrták do dřeva této velikosti. Totéž platí pro potenciometr a napájecí konektor. Nezapomeňte poté vymazat všechny kresby tužkou.

Krok 9: Nakreslete dřevo

Nakreslete do dřeva
Nakreslete do dřeva
Nakreslete do dřeva
Nakreslete do dřeva
Nakreslete do dřeva
Nakreslete do dřeva

Rozhodl jsem se nakreslit nějaké ukazatele hodin do dřeva - zde můžete zapojit svou fantazii a navrhnout si vlastní. Dřevo jsem spálil pomocí páječky, zahřáté na maximální teplotu.

Aby byly kruhy pěkně kulaté, použil jsem kus hliníku, vyvrtal do něj otvor a páječkou jsem sledoval okraje otvoru (podívejte se na obrázek). Ujistěte se, že držíte hliník pevně, aby při kreslení neklouzal. A buďte při tom opatrní, abyste předešli zranění.

Pokud kreslíte a chcete, aby byly pěkně zarovnány s hodinovými pixely, můžete použít „Režim údržby“, který vám ukáže, kde se pixely budou nacházet (přejděte na kapitolu Sestavení).

Chraňte dřevo

Když jste s hodinami spokojeni, je čas je zbrousit a chránit lakem na dřevo. Na změkčení okrajů jsem použil velmi měkký brusný papír (hodnota 500). Doporučuji použít transparentní lak na dřevo, aby se barva dřeva nezměnila. Na štětec naneste malé množství laku a stáhněte ho ve směru letniček ve dřevě. Opakujte to alespoň 2krát.

Krok 10: Assamble

Assamble
Assamble
Assamble
Assamble
Assamble
Assamble

Jedle položily knoflíky a potenciometr na své pozice - pokud jsou vaše otvory příliš velké, můžete je pomocí horkého lepidla zafixovat na místě. Poté vložte prstencový proužek do slotů a připojte jeho vodiče k Arduinu. Než nalepíte prstenec LED na své místo, je dobré se ujistit, že pixely LED jsou na správném místě - vystředěny a zarovnány s výkresem. Za tímto účelem jsem přidal takzvaný režim údržby, který zobrazí všechny důležité pixely (0, 5, 10, 15, … na minutovém zvonění a 3, 6, 9 a 12 na hodinovém vyzvánění). Do tohoto režimu můžete vstoupit stisknutím a podržením obou tlačítek, než zapojíte napájecí zdroj do konektoru. Tento režim můžete opustit stisknutím libovolného tlačítka.

Až budete mít LED kroužky zarovnané, naneste horké lepidlo a držte je, dokud lepidlo neztvrdne. Potom vezměte své PVC kroužky a znovu: naneste na LED diody horké lepidlo, rychle je umístěte a několik sekund podržte. Nakonec, když jste si jisti, že vše funguje, můžete lepidlo na desku (nebo Arduino) za tepla přilepit na dřevo. Tip: neaplikujte na mnoho lepidla. Jen malé množství, takže drží na jednom místě, ale můžete jej snadno odstranit, pokud byste chtěli později něco změnit.

Na samém konci vložte knoflíkovou baterii do jejího držáku.

Krok 11: Upgrade - fotorezistor

Upgrade - fotorezistor
Upgrade - fotorezistor
Upgrade - fotorezistor
Upgrade - fotorezistor
Upgrade - fotorezistor
Upgrade - fotorezistor

Hodinové efekty jsou obzvlášť pěkné ve tmě. To ale může uživatele rušit v noci, když spí. Proto jsem se rozhodl upgradovat hodiny o funkci automatické korekce jasu - když místnost ztmavne; hodiny vypnou své LED diody.

K tomu jsem použil světelný senzor - fotoodpor. Jeho odpor výrazně stoupne; až několik mega ohmů, když je tma, a bude mít jen několik stovek ohmů, když na něj svítí světlo. Spolu s normálním odporem tvoří dělič napětí. Když se tedy změní odpor světelného senzoru, změní se také napětí na analogovém pinu Arduino (které můžeme měřit).

Před pájením a sestavováním jakéhokoli obvodu je rozumné jej nejprve simulovat, abyste viděli chování a prováděli opravy. S pomocí Autocad Tinkercad můžete přesně to udělat! Jen několika kliknutími jsem přidal komponenty, připojil je a napsal kód. V simulaci vidíte, jak se mění jas LED diod podle hodnoty fotorezistoru. Je to velmi jednoduché a přímočaré - můžete si hrát s okruhem.

Po simulaci nastal čas přidat funkci do hodin. Do středu hodin jsem vyvrtal díru, nalepil fotoodpor, zapojil, jak je vidět na obvodu a přidal pár řádků kódu. V souboru LEDclock.h musíte tuto funkci povolit deklarováním USE_PHOTO_RESISTOR jako 1. Můžete také změnit, při jakém jasu místnosti hodiny ztlumí LED diody změnou hodnoty CLOCK_PHOTO_TRESHOLD.

Krok 12: Užijte si to

Když je poprvé zapnete, hodiny budou ukazovat nějaký náhodný čas. Můžete jej nastavit stisknutím obou tlačítek současně. Otáčením knoflíku vyberte správný čas a potvrďte jej stisknutím libovolného tlačítka.

Inspiraci jsem našel v nějakém velmi úhledném projektu na internetu. Pokud se rozhodnete postavit hodiny svépomocí, podívejte se také na ně! (NeoClock, Wol Clock, Arduino Colorful Clock) Pokud se někdy rozhodnete zkusit se řídit pokyny, doufám, že vám to bude dělat tolik zábavy, jako mě.

Pokud během výroby narazíte na nějaké potíže, neváhejte se mě na cokoli zeptat v komentářích - rád se na to pokusím odpovědět!

Doporučuje: