Obsah:

LED hodiny využívající neopixely: 4 kroky (s obrázky)
LED hodiny využívající neopixely: 4 kroky (s obrázky)

Video: LED hodiny využívající neopixely: 4 kroky (s obrázky)

Video: LED hodiny využívající neopixely: 4 kroky (s obrázky)
Video: Arduino návody | RTC relé časovač 2024, Červenec
Anonim
LED hodiny využívající neopixely
LED hodiny využívající neopixely
LED hodiny využívající neopixely
LED hodiny využívající neopixely
LED hodiny využívající neopixely
LED hodiny využívající neopixely
LED hodiny využívající neopixely
LED hodiny využívající neopixely

Vítejte v mém návodu, jak vyrobit LED hodiny pomocí 60 Neopixelů.

Najdete zde 3 připojené soubory PDF pro segmenty hodin, další pro základnu a poslední je šablona, která pomáhá s lepením částí dohromady.

K dokončení budete tedy potřebovat následující

  • Prsten 60 neopixelů přichází ve 4 čtvrtinách. hledat „ws2812 ring 60“(£ 12,00)
  • Vyhledávání RTC pro „modul DS3231“(2,50 GBP)
  • Arduino Nano (4 £)
  • Překližka 3 mm/1/8"
  • kousky drátu. doufám, že budete mít nějaké kolem?
  • 5v USB napájecí jednotka. Typ, na kterém vaše děti zničily konektor.

Níže jsou položky napájené baterií Lipo, ale po testování hodiny spotřebovávaly příliš mnoho energie, takže baterie byla upuštěna ve prospěch napájecího zdroje USB.

  • Hledání převaděče dc-dc „boost converter“(3 £)
  • Nabíjecí obvod TP4056 hledat "tp4056" (2 £)
  • Jeden článek LiPo 1000 mAh. hledat „1000 mah lipo 3,7“NEBO „503450 lipo“(8,00 GBP)

Číslo LiPo je 503450 a mohlo by být hezké vědět, že to znamená 50 mm dlouhý 34 mm široký a 5,0 hluboký.

Krok 1: The Wood Bits

The Wood Bits
The Wood Bits
The Wood Bits
The Wood Bits
The Wood Bits
The Wood Bits

Na obrázcích byste měli vidět, že jsem vytiskl design a nalepil ho také na překližku. Co nemusí být zřejmé, je, že jsem vyřízl 3 sekce najednou a spodní část byla vyříznuta nejprve po obvodu, poté byla odstraněna jedna sekce (zezadu), poté byl otvor vyříznut ve zbývajících dvou sekcích a poté v další sekci odstraněny, přičemž zbývá pouze přední bit, a poté byla vyříznuta štěrbina pro dráty.

Když jsou všechny bity vyříznuty, měli byste nejprve zkontrolovat, jak do sebe všechny zapadají, a poté je všechny slepit. Postavil jsem 3 vrstvy na plán hodin, abych se ujistil, že je vše správně kruhové. Také se ujistěte, že máte spodní bity ve správné orientaci a celý střední plátek je připevněn vzhůru nohama, abyste překrývali klouby.

Otvory v předních částech umožňují pájené spoje ve čtvrtích sedět dovnitř a spodní část umožňuje průchod drátů.

Série obrázků také ukazuje, jak je základna sestavena.

Krok 2: Zapojení kroužku LED

Zapojení kroužku LED
Zapojení kroužku LED
Zapojení kroužku LED
Zapojení kroužku LED
Zapojení kroužku LED
Zapojení kroužku LED
Zapojení kroužku LED
Zapojení kroužku LED

O tomto kroku není moc co říci, ale jen v případě, že jste nepoužili pás WS2812LED, jsou inteligentní, takže každý má data dovnitř a ven. V obloucích 15 LED zvládne PCB všechna připojení, ale když se připojíte k sekcím, musíte provést připojení napájení a data. Spojení nemůžete dostat špatně, protože jsou v kruhu, ale když jste kruh dokončili, měl by vám chybět jeden odkaz na datovém vstupu/výstupu, abyste mohli připojit vodiče k datovému vstupu. Tam, kde se vodiče připojí k datům, bude první LED dioda, nebo jak je správně očíslována NULOU.

Zajímalo by mě, jak byl nejlepší způsob, jak upevnit prstenec LED na dřevěný kroužek? ale nakonec jsem se rozhodl použít rýsovací šňůru a tkalcovský stav po celém obvodu, přičemž pokaždé vynechám LED diodu.

Krok 3: Zapojení Arduino Nano a napájení

Zapojení Arduino Nano a napájení
Zapojení Arduino Nano a napájení
Zapojení Arduino Nano a napájení
Zapojení Arduino Nano a napájení
Zapojení Arduino Nano a napájení
Zapojení Arduino Nano a napájení

Původně jsem se rozhodl použít LiPo na tomto projektu, ale když jsem to vyzkoušel, baterie se přes noc vybila. Nejprve jsem si myslel, že baterie může být vadná, takže jsem změřil proud a zjistil, že obvod čerpá 73mA, což znamená, že na baterii to bude více. Ve skutečnosti jsem změřil proud na baterii (před posilovačem) a zjistil jsem, že je přes 110mA. Bylo tedy zřejmé, že tyto hodiny nepoběží na baterii.

Místo toho jsem se rozhodl použít 5V USB nabíječku. Mám tendenci mít kolem sebe spoustu mrtvých USB nabíječek, protože konektory jsou zneužívány dvěma malými dětmi.

Protože používáme LED diody WS2812, máme k Arduino Nano pouze 3 připojení.

  • Napájení
  • Přízemní
  • Data IN. Oranžová až D2 na Nano

Dále máme RTC, který má pouze 4 vodiče.

  • Napájení 5 voltů
  • Přízemní
  • SCL (hodiny I2C) modrá až A5 na Nano
  • SDA (data I2C) žlutá až A4 na Nano

Nakonec potřebujeme napájení a to jde na napájecí 5 V terminál na Nano.. Vin je navržen tak, aby měl napětí větší než 5 voltů (tj. 7-12 voltů) a zem.

Krok 4: Program

Programování mě opravdu baví, jen mi to moc nejde.

Problém 1

Sekundy a minuty jsou správně uvedeny jako číslo od 0 do 59. Nicméně první LED, a tedy nula, je dole. Bylo tedy potřeba toto opravit.

void correctPos (int A)

{if (A 30) {A = A - 31; }} temp = A; }

Problém 2

Zkoušel jsem vymazat všechny LED před zobrazením nové polohy, ale to způsobilo, že LED diody blikají. Rozhodl jsem se tedy rozsvítit další LED a poté předchozí vypnout. Fungovalo to dobře? NOPE, protože pokud by nová pozice byla nulová, pokusila by se vypnout -1. takže se to řešilo současně.

void deletePrevious (int B)

// smažte předchozí LED, pokud byla nulová, pak // vypněte 59 jinak odečtěte 1 // a vypněte tuto. {if (B == 0) {strip.setPixelColor (59, 0, 0, 0); // All off} else {strip.setPixelColor (B - 1, 0, 0, 0); // all off}}

Problém 3

Dělat výše uvedené fungovalo opravdu dobře, dokud nebyla nová druhá pozice na místě staré minuty. Což znamenalo, že minuta, která byla aktualizována po sekundách, ji vypnula! Totéž pro hodinu/minutu také

if (secs == mins-1)

{strip.setPixelColor (min-1, 0, 30, 0); }

Problém 4

Věci začínají vypadat dobře, pojďme tedy míchat barvy, když padnou do stejné polohy?

if (mins == secs)

{strip.setPixelColor (mins, 15, 13, 0); // zelená a červená, aby byla žlutá. }

Problém 5

Hodiny začínají ve formátu 24 hodin. tak toto potřebuje nejprve opravu

pokud (hodiny> 12)

{hodiny = hodiny -12; }

Problém 6

A nesmíme zapomenout, že je 24 hodin denně a mám 60 LED diod. Easy to opravdu do 5

hodiny = hodiny * 5;

Problém 7

Když jsme provedli výše uvedené, máme nyní hodinové skákání 4 LED diod, vypadalo by to mnohem lépe, kdyby používalo všechny LED diody a správně ukazovalo zlomky hodiny? Opět to byla snadná oprava, jen jsem k hodinám přidal původní počet minut dělený 12.

hodiny = hodiny + (addMin/12);

Problém 8

Když je dioda LED hodiny nebo minuty dole, sekundy předtím na jednu sekundu zmizí.

hodin = if (mins == 0)

{if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // green}} if (hours == 0) {if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // zelená}}

Problém 9

Nastavení času. Rozhodl jsem se, že tuto sestavu ponechám velmi jednoduchou, takže jsem nezahrnoval tlačítka pro úpravu času. Jde tedy jen o připojení hodin k počítači a načtení nového času. Jednoduše odkomentujte níže uvedenou část, nastavte požadovaný čas a poté načtěte program. Po správném opětovném okomentování řádku a opětovném odeslání programu, v opačném případě znovu spustí nastavení a znovu načte starý čas.

// 12. dubna 2020 v 23:20 zavoláte:

//rtc.adjust(DateTime(2020, 4, 12, 23, 20, 0));

Doporučuje: