Obsah:

LED hodiny s použitím neopixelov: 4 kroky (s obrázkami)
LED hodiny s použitím neopixelov: 4 kroky (s obrázkami)

Video: LED hodiny s použitím neopixelov: 4 kroky (s obrázkami)

Video: LED hodiny s použitím neopixelov: 4 kroky (s obrázkami)
Video: WS2812 [Programmable LED Strip] 2024, Júl
Anonim
LED hodiny s použitím neopixelov
LED hodiny s použitím neopixelov
LED hodiny s použitím neopixelov
LED hodiny s použitím neopixelov
LED hodiny s použitím neopixelov
LED hodiny s použitím neopixelov
LED hodiny s použitím neopixelov
LED hodiny s použitím neopixelov

Vitajte v mojom návode, ako vyrobiť LED hodiny pomocou 60 neopixelov.

Nájdete tu 3 priložené dokumenty PDF pre segmenty hodín, ďalšie pre základňu a posledný je šablóna, ktorá má pomôcť pri lepení jednotlivých častí k sebe.

Na dokončenie tohto postupu budete potrebovať nasledujúce

  • Prsteň 60 neopixelov sa dodáva v 4 štvrtinách. hľadať „ws2812 prsteň 60“(12,00 GBP)
  • Hľadanie RTC pre „modul DS3231“(2,50 GBP)
  • Arduino Nano (4 libry)
  • 3 mm/1/8 "preglejka.
  • kúsky drôtu. dúfame, že ich budete mať v okolí?
  • Napájací zdroj 5v USB. Typ, na ktorom vaše deti zničia konektor.

Nasledujú položky napájané batériou Lipo, ale po testovaní hodiny spotrebovali príliš veľa energie, a preto bola batéria vybitá v prospech napájacieho zdroja USB.

  • Hľadajte konvertor DC-DC „Boost Converter“(3 GBP)
  • Nabíjací obvod TP4056 hľadať "tp4056" (2 libry)
  • Jednobunkový LiPo 1 000 mAh. hľadať „1000 mah lipo 3,7“ALEBO „503450 lipo“(8,00 GBP)

Číslo LiPo je 503450 a mohlo by byť pekné vedieť, že to znamená 50 mm na dĺžku, 34 mm na šírku a 5,0 do hĺbky.

Krok 1: Drevo

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

Na obrázkoch by ste mali vidieť, že som vytlačil dizajn a prilepil ho aj preglejku. Čo nemusí byť zrejmé, je, že som vyrezal 3 sekcie naraz a spodná časť bola vyrezaná najskôr po obvode, potom bola odstránená jedna časť (zozadu), potom bol otvor vyrezaný v zostávajúcich dvoch častiach, potom v ďalšej časti. odstránený, pričom zostal iba predný bit, potom bol vyrezaný otvor pre drôty.

Keď sú všetky bity vyrezané, najskôr by ste mali skontrolovať, ako do seba zapadajú, a potom ich všetky prilepte. Postavil som 3 vrstvy na plán hodín, aby som sa ubezpečil, že je všetko správne kruhové. Dbajte tiež na to, aby boli spodné bity v správnej orientácii a celý stredný plátok bol namontovaný hore nohami, aby ste prekračovali kĺby.

Otvory v predných častiach umožňujú zapájanie spájkovaných spojov vo štvrtiach a v spodnej časti prechádzajú drôty.

Séria obrázkov tiež ukazuje, ako je základňa zostavená.

Krok 2: Zapojenie krúžku LED

Zapojenie krúžku LED
Zapojenie krúžku LED
Zapojenie krúžku LED
Zapojenie krúžku LED
Zapojenie krúžku LED
Zapojenie krúžku LED
Zapojenie krúžku LED
Zapojenie krúžku LED

K tomuto kroku nie je veľa čo povedať, ale iba v prípade, že ste nepoužili pás WS2812LED, sú inteligentné, takže každý z nich má údaje o vstupe a výstupe. V oblúkoch 15 LED diódy PCB zvládne všetky pripojenia, ale keď prídete k sekciám, musíte vykonať napájacie pripojenia a údaje. Pripojenia nemôžete pochopiť zle, pretože sú v kruhu, ale keď ste kruh dokončili, na dátovom vstupe/výstupe by vám mal chýbať jeden odkaz, ktorý vám umožní pripojiť vodiče k dátovému vstupu. Tam, kde sa vodiče pripájajú k údajom, bude prvá dióda LED alebo ako je správne očíslované NULA.

Zaujímalo by ma, ako bol najlepší spôsob pripevnenia krúžku diód LED k drevenému krúžku? ale nakoniec som sa rozhodol použiť rysujúcu sa šnúru a tkáčsky stav po obvode, pričom zakaždým preskočím diódy LED.

Krok 3: Zapojenie Arduino Nano a napájanie

Zapojenie Arduino Nano a napájania
Zapojenie Arduino Nano a napájania
Zapojenie Arduino Nano a napájania
Zapojenie Arduino Nano a napájania
Zapojenie Arduino Nano a napájania
Zapojenie Arduino Nano a napájania

Pôvodne som sa rozhodol použiť na tento projekt LiPo, ale keď som to vyskúšal, batéria sa vybila cez noc. Najprv som si myslel, že batéria môže byť vybitá, tak som zmeral prúd a zistil som, že obvod čerpá 73mA, čo znamená, že na batérii to bude viac. V skutočnosti som zmeral prúd na batérii (pred zosilňovačom zosilnenia) a zistil som, že má viac ako 110 mA. Bolo teda zrejmé, že tieto hodiny nebudú fungovať na batériu.

Namiesto toho som sa rozhodol použiť 5V USB nabíjačku. Mám tendenciu mať okolo seba veľa mŕtvych nabíjačiek USB kvôli zneužívaniu konektorov od dvoch malých detí.

Pretože používame LED diódy WS2812, máme k Arduino Nano iba 3 pripojenia.

  • Moc
  • Zem
  • Údaje IN. Oranžová až D2 na Nano

Ďalej tu máme RTC, ktorý má iba 4 vodiče.

  • Napájanie 5 voltov
  • Zem
  • SCL (hodiny I2C) modré až A5 na Nano
  • SDA (údaje I2C) žltá až A4 na Nano

Nakoniec potrebujeme napájanie, a to na napájací 5 V terminál na Nano.. Vin je navrhnutý tak, aby mal napätie vyššie ako 5 voltov (t.j. 7-12 voltov) a uzemnenie.

Krok 4: Program

Programovanie ma veľmi baví, len sa v ňom veľmi nevyznám.

Problém 1

Sekundy a minúty sú správne uvedené ako číslo od 0 do 59. Prvá LED dióda, a teda nula, je však v spodnej časti. Preto bolo potrebné to napraviť.

void correctPos (int A)

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

Problém 2

Pred zobrazením novej polohy som sa pokúsil vymazať všetky LED diódy, čo však spôsobilo, že LED diódy blikajú. Preto som sa rozhodol zapnúť ďalšiu LED diódu a potom vypnúť predchádzajúcu. Fungovalo to dobre ?? NOPE, pretože ak by bola nová pozícia nulová, pokúsila by sa vypnúť -1. takže sa to riešilo súčasne.

void deletePrevious (int B)

// odstráňte predchádzajúcu LED, ak bola nulová, potom // vypnite 59 inak odčítajte 1 // a vypnite túto. {if (B == 0) {strip.setPixelColor (59, 0, 0, 0); // All off} else {strip.setPixelColor (B - 1, 0, 0, 0); // all off}}

Problém 3

Vykonanie vyššie uvedeného fungovalo skutočne dobre, kým nová druhá pozícia nebola na mieste starej minúty. Čo znamenalo, že minúta, ktorá bola aktualizovaná po sekundách, ju vypla! To isté platí pre hodinu/minútu

if (secs == mins-1)

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

Problém 4

Veci začínajú vyzerať dobre, takže zmiešame farby, keď padnú do rovnakej polohy?

ak (minúty == sekundy)

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

Problém 5

Hodiny začínajú vo formáte 24 hodín. tak toto treba najskôr opraviť

ak (hodiny> 12)

{hodiny = hodiny -12; }

Problém 6

A nezabúdajme, že je 24 hodín denne a mám 60 LED diód. Easy to skutočne načasuje do 5

hodiny = hodiny * 5;

Problém 7

Keď sme urobili vyššie uvedené, máme teraz hodiny preskakujúce 4 LED diódy, vyzeralo by to oveľa lepšie, keby používalo všetky LED diódy a správne ukazovalo zlomky hodiny? Opäť to bola jednoduchá oprava, len som k hodinám pridal pôvodný počet minút delený 12.

hodiny = hodiny + (addMin/12);

Problém 8

Keď je dióda LED hodiny alebo minúty v spodnej časti, sekundy predtým na jednu sekundu zmiznú.

hodiny = ak (minúty == 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

Nastavenie času. Rozhodol som sa udržať túto zostavu veľmi jednoduchú, takže som neobsahoval tlačidlá na úpravu času. Ide teda len o prepojenie hodín s počítačom a načítanie nového času. Jednoducho odkomentujte nižšie uvedenú sekciu, nastavte požadovaný čas a potom načítajte program. Akonáhle opravíte riadok, znova ho okomentujte a program odošlite znova. V opačnom prípade, ak stratíte napájanie, znova sa spustí nastavenie a znova sa načíta starý čas.

// 12. apríla 2020 o 23:20 by ste zavolali:

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

Odporúča: