Obsah:

132 pixelů: 5 kroků (s obrázky)
132 pixelů: 5 kroků (s obrázky)

Video: 132 pixelů: 5 kroků (s obrázky)

Video: 132 pixelů: 5 kroků (s obrázky)
Video: Jak získávat zákazníky přes Profilové Trychtýře? (5 kroků Profile Funnels) 2024, Listopad
Anonim
Image
Image
132 pixelů
132 pixelů

Dokud si pamatuji, jsem posedlý LED diodami a časem. V tomto projektu jsem vytvořil velké nástěnné hodiny, které zobrazují aktuální čas pomocí 132 neopixelových LED namontovaných a svítících přes smrkovou desku. Je to hybridní analogový digitální s individuálním pixelem pro každou hodinu, minutu a sekundu.

Jednalo se o největší projekt, který jsem doposud přijal, začal jsem o tom přemýšlet před 6 měsíci a myšlenka se pomalu spojila. S výsledkem jsem opravdu spokojený a těším se, až se o něj s vámi podělím.

Krok 1: Shromažďování spotřebního materiálu a nástrojů

Shromažďování potřeb a nástrojů
Shromažďování potřeb a nástrojů
Shromažďování potřeb a nástrojů
Shromažďování potřeb a nástrojů
Shromažďování potřeb a nástrojů
Shromažďování potřeb a nástrojů
Shromažďování potřeb a nástrojů
Shromažďování potřeb a nástrojů

Komponenty

Tento projekt je postaven na mailové hobby desce z mého místního obchodu pro kutily. Deska měří šířku 850 mm, výšku 500 mm a hloubku 18 mm.

LED použité v tomto projektu jsou 5050 WS2812b namontované na kruhových deskách plošných spojů o průměru přibližně 9 mm s pájecími podložkami na zadní straně.

Používám mikrořadič kompatibilní s Arduino Pro Mini. Je to verze 5V 16 MHZ. Vybral jsem si tenhle, protože má super tenký design, malý potisk a všechny nezbytné porty plus nějaké náhradní pro budoucí upgrady. Je to také 5 voltů, takže mohu použít jeden napájecí zdroj pro LED diody, mikrořadič a RTC

O udržování času se stará modul RTC (Real Time Clock), který je vybaven čipem DS3231. Tento čip je velmi přesný, takže by se čas neměl příliš posouvat.

Také se používá:

Drát. Pájka a horké lepidlo.

Nástroje:

Elektrické vrtačky a vrtáky do dřeva (10 mm a 5 mm)

Páječka

Horká lepicí pistole

odstřižky drátu

Příslušenství routerů Dremel a ponorných routerů

Krok 2: Značení, vrtání a směrování

Značení, vrtání a směrování
Značení, vrtání a směrování
Značení, vrtání a směrování
Značení, vrtání a směrování
Značení, vrtání a směrování
Značení, vrtání a směrování

Vrtání

  • Pomocí úžinové hrany najděte střed desky nakreslením čáry z opačných rohů.
  • Pomocí kroužku a pera označte 3 kruhy. Vnější kruh by měl být asi 20 mm od okraje desky a ostatní 2 řádky by se měly pohybovat o 15 mm od posledního řádku.
  • Použil jsem tištěný ciferník, který mi pomohl označit pozice každé z minut a sekund na vnějších 2 řádcích a hodin na vnitřní čáře.
  • Vyvrtejte 10 mm otvory přibližně 5 mm hluboké každou hodinu, minutu a sekundu.
  • Pomocí vrtáku 5 mm vytvořte otvory na desce hodinu, minutu a sekundu.

Směrování

Ačkoli tento krok není nutný, umožní to, aby byly hodiny namontovány v jedné rovině se stěnou.

  • Pomocí routeru a kruhového průvodce nasměrujte drátové kanály v desce
  • Označte a nasměrujte vybrání, ve kterém budou žít RTC a mikrořadič.
  • Veďte kanál od vnějších čar k vybrání pro dráty

Krok 3: Tolik vojáků, řezání a odizolování

Tolik vojáků, řezání a svlékání
Tolik vojáků, řezání a svlékání
Tolik vojáků, řezání a svlékání
Tolik vojáků, řezání a svlékání
Tolik vojáků, řezání a svlékání
Tolik vojáků, řezání a svlékání

Tato další část se mnohem snáze řekne, než udělá. Moje rada by byla poznámka, abych to uspíšil. zkuste najít systém a dostat se do rytmu.

Každá z diod LED potřebuje 5 voltů, 5 voltů, vstup dat, výstup dat, uzemnění a uzemnění. včetně napájení pro mikrořadič a RTC jeho více než 400 vodičů, vše odizolované a pájené na obou koncích.

Pro tento krok je velmi užitečná lepkavá modrá látka.

  • Začal jsem umístěním 2 LED diod do jejich otvorů vedle sebe, abych vypočítal délku drátu potřebného k vzájemnému spojení.
  • Pomocí prvního kusu drátu jako vodítka jsem poté nastříhal 60 z každého barevného drátu.
  • Z konců každého drátu odizolujte 2 mm pouzdra a pocínujte je pájkou.
  • Na každou z LED diod připájejte malou kapku pájky.
  • Pájením vodičů k LED diodám vytvoříte dva řetězce po 60 minutách a sekundách a jeden řetězec po 12 hodinách. Použil jsem červený vodič pro 5V, žlutý pro data a modrý pro zem.
  • Dávejte pozor, abyste připojili každý datový výstup (DOUT) k datovému vstupu (DIN) další LED
  • Poslední LED v každé řetězové dávce nepotřebuje datový kabel.

Jakmile jsou všechny řetězy dokončeny, je dobré je před instalací vyzkoušet. Použil jsem svůj Arduino UNO a Adafruit NeoPixel Strand Test, abych potvrdil, že každá LED funguje.

Na každý z řetězů připájejte delší vodiče pro 5V, uzemnění a datový vstup.

V tomto okamžiku by mělo být pět vodičů 5 V, tři datové vodiče připojené k vodičům Arduino Pro Mini a 5 uzemňovacích vodičů.

Odizolujte 5 mm z konců 5v vodičů a všechny pájejte dohromady a opakujte pro zemnící vodiče.

Po dokončení tří řetězů připájejte 5V vodič na pin RAW Arduino Pro Mini a také na pin VCC pro RTC. Uzemňovací vodič na GND na Arduino Pro Mini a RTC a poté 2 další vodiče:

SCL z RTC do A5 na Pro Mini

SDA z RTC na A4 na Pro Mini

Datové linky z diod LED by se měly připojit k:

  • Sekundy - digitální pin 3.
  • Minuty - DigitalPin 4
  • Hodiny - DigitalPin 5

Krok 4: Instalace

Instalace
Instalace
Instalace
Instalace
Instalace
Instalace

Po pájení by instalace LED diod do jejich otvorů měla směřovat dopředu. LED diody je třeba nainstalovat tak, aby data běžela kolem proti směru hodinových ručiček, když se na ně díváte zezadu, protože kód je nastaven čelem.

Použil jsem malé množství horkého lepidla, abych je udržel, protože chci být schopen vyměnit jedinou LED, pokud v budoucnu selže.

Také jsem použil horké lepidlo, abych udržel všechny dráty čisté a uklizené a upevnil konektor hlavně k desce.

K dispozici je řada průvodců programováním arduino pro mini. K načtení tohoto kódu do Arduina používám metodu externího převaděče USB na sériový port:

Tento kód také nastaví čas v RTC na čas, kdy byl zkompilován. proto je důležité pouze zavřít tlačítko pro odeslání, aby vyhovovalo a odeslalo se co nejrychleji.

Velkou část tohoto kódu vypůjčil Andy Doro z prstenových hodin NeoPixel. Některé z Adafruit NeoPixel Strand Test a některé jsem dal dohromady.

Budete muset mít nainstalováno několik knihoven. Jsou k dispozici ve Správci knihoven v softwaru Arduino.

Adafruit NeoPixel pro LED diody ws2812b

Drát pro komunikaci s RTC přes I2C (je integrován jako standard)

a RTClib za to, že víte, na co se RTC zeptat

/******************************************************* ******************************NeoPixel Ring Clock od Andy Doro ([email protected]) ********************************************************* **************************

Historie revizí

Datum Podle čeho

20140320 AFD První návrh 20160105 AFD Vybledlé oblouky 20160916 AFD Trinket kompatibilní 20170727 AFD přidán STARTPIXEL pro 3D pouzdro, variabilní počáteční bod, přidána automatická podpora DST 20180424 AFD pomocí knihovny DST https://github.com/andydoro/DST_RTC *

/ zahrnout kód knihovny:

#include #include

#zahrnout

// definujte piny

#define SECPIN 3 #definovat MINPIN 4 #define HOUPIN 5

#define BRIGHTNESS 20 // nastavení maximálního jasu

#define r 10

#define g 10 #define b 10 RTC_DS3231 rtc; // Založení objektu hodin

Adafruit_NeoPixel stripS = Adafruit_NeoPixel (60, SECPIN, NEO_GRB + NEO_KHZ800); // svlékání objektu

Proužek Adafruit_NeoPixelM = Adafruit_NeoPixel (60, MINPIN, NEO_GRB + NEO_KHZ800); // objekt strip Adafruit_NeoPixel stripH = Adafruit_NeoPixel (24, HOUPIN, NEO_GRB + NEO_KHZ800); // pruh objektu byte pixelColorRed, pixelColorGreen, pixelColorBlue; // uchovává hodnoty barev

neplatné nastavení () {

Wire.begin (); // Začněte I2C rtc.begin (); // začít hodiny

Serial.begin (9600);

// set pinmodes pinMode (SECPIN, OUTPUT); pinMode (MINPIN, OUTPUT); pinMode (HOUPIN, VÝSTUP);

if (rtc.lostPower ()) {

Serial.println („RTC ztratil výkon, nastavíme čas!“); // následující řádek nastaví RTC na datum a čas, kdy byla tato skica sestavena rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // Tento řádek nastavuje RTC s explicitním datem a časem, například pro nastavení // 21. ledna 2014 ve 3 hodiny ráno byste volali: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); }

stripS.begin ();

stripM.begin (); stripH.begin (); //strip.show (); // Inicializace všech pixelů na 'vypnuto'

// spouštěcí sekvence

zpoždění (500);

colorWipeS (StripS. Color (0, g, 0), 5); // Blue colorWipeM (stripM. Color (r, 0, 0), 5); // Blue colorWipeH (stripH. Color (0, 0, b), 50); // Modrá

zpoždění (1000);

DateTime theTime = rtc.now (); // bere v úvahu byte DST secondval = theTime.second (); // získat sekundy byte minuteval = theTime.minute (); // get minutes int hourval = theTime.hour (); hourval = hourval % 12; // Tyto hodiny jsou 12 hodin, pokud 13-23, převést na 0-11`

for (uint16_t i = 0; i <secondval; i ++) {stripS.setPixelColor (i, 0, 0, b); stripS.show (); zpoždění (5); }

pro (uint16_t i = 0; i <minuteval; i ++) {stripM.setPixelColor (i, 0, g, 0); stripM.show (); zpoždění (5); }

for (uint16_t i = 0; i <hourval; i ++) {stripH.setPixelColor (i, r, 0, 0); stripH.show (); zpoždění (5); }

}

prázdná smyčka () {

// získejte čas

DateTime theTime = rtc.now (); // bere v úvahu DST

byte secondval = theTime.second (); // získejte sekundy

byte minuteval = theTime.minute (); // get minutes int hourval = theTime.hour (); // get hours hourval = hourval % 12; // Tyto hodiny jsou 12 hodin, pokud 13-23, převést na 0-11`

stripS.setPixelColor (sekundární, 0, 0, 20); stripS.show (); zpoždění (10); if (secondval == 59) {for (uint8_t i = stripS.numPixels (); i> 0; i--) {stripS.setPixelColor (i, 0, g, 0); stripS.show (); zpoždění (16);}}

stripM.setPixelColor (minuteval, 0, g, 0);

stripM.show (); zpoždění (10); if (secondval == 59 && minuteval == 59) {for (uint8_t i = stripM.numPixels (); i> 0; i--) {stripM.setPixelColor (i, r, 0, 0); stripM.show (); zpoždění (16);}}

stripH.setPixelColor (hodina, r, 0, 0);

stripH.show (); zpoždění (10); if (secondval == 59 && minuteval == 59 && hourval == 11) {for (uint8_t i = stripH.numPixels (); i> 0; i--) {stripH.setPixelColor (i, 0, 0, b); stripH.show (); delay (83);}} // pro sériové ladění Serial.print (hourval, DEC); Serial.print (':'); Serial.print (minuteval, DEC); Serial.print (':'); Serial.println (secondval, DEC); }

// Vyplňte tečky jednu za druhou barvou

void colorWipeS (uint32_t c, uint8_t wait) {for (uint16_t i = 0; i <stripS.numPixels (); i ++) {stripS.setPixelColor (i, c); stripS.show (); zpoždění (čekání); }}

void colorWipeM (uint32_t c, uint8_t čekání) {

pro (uint16_t i = 0; i <stripM.numPixels (); i ++) {stripM.setPixelColor (i, c); stripM.show (); zpoždění (čekání); }}

void colorWipeH (uint32_t c, uint8_t čekat) {

pro (uint16_t i = 0; i <stripH.numPixels (); i ++) {stripH.setPixelColor (i, c); stripH.show (); zpoždění (čekání); }}

Krok 5: Poslední dotyky

Image
Image
Poslední dotyky
Poslední dotyky

Vše, co by nyní mělo zůstat, je opravit RTC a mikrořadič dole ve výklenku.

Baterii RTC jsem namontoval stranou vzhůru, takže v případě potřeby mohu baterii snadno vyměnit.

Připojte vodiče 5 V ke straně + konektoru a uzemnění ke straně -

Zapněte to!

Mám ten svůj připojený k USB bateriové bance, ale USB telefonní nabíječka by fungovala stejně dobře.

Poznámka:

Jas kódu LED je nastaven v kódu. Bylo nastaveno nízko, aby udrželo aktuální čerpání na nízké úrovni. Při plném jasu se všemi rozsvícenými LED může čerpat téměř 8 ampérů. Při současném nastavení je to méně než 1.

Hodinová soutěž
Hodinová soutěž
Hodinová soutěž
Hodinová soutěž

Runner Up in the Clocks Contest

Doporučuje: