Potřebuji napsat Arduino knihovnu pro segmentový displej s LED WS2812b

Sem pište, hledáte-li někoho, kdo pro vás něco naprogramuje, či sestaví.
Odpovědět
Azuzula
Příspěvky: 2
Registrován: 23 črc 2020, 14:31
Reputation: 0

Potřebuji napsat Arduino knihovnu pro segmentový displej s LED WS2812b

Příspěvek od Azuzula » 24 črc 2020, 08:43

Poptávám napsání knihovny pro Arduino a ESP. Jedná se o vlastní výrobek, velký modulární segmentový displej osazený LEDkami WS2812b. Jednotlivé číslice a znaky se spojují do série. Následující funkce i design se dají projednat a případně upravit.
Nabízím finanční odměnu a displej na hodiny. Tedy 4x číslice 8 a dvojtečka. Výška číslic 78mm. Viz foto.
Další spolupráce na úpravách je možná.

Požadavky:
-zobrazit číslice a znaky z leva a nebo od zadaného indexu bez vymazání okolních zobrazených znaků
-funkce pro rozsvícení, zhasnutí dvojtečky
-funkce pro zhasnutí jednoho znaku, nebo celého displeje
-individuální změna barvy pro každou číslici/znak.
-možnost zobrazit další znaky jako je °, "C" a "F", do budoucna se počítá s dalšími znaky, např.: %, V, A apod. Bude pro ně vyrobena nová deska.
-lze využít knihovnu Adafruit NeoPixel pro zjednodušení ovládání diod.

Deklarace:
-ledsPerSegment = 2; // Počet diod na každý jeden segment číslice. Minimum 1, maximum 255. 7 segmentů na číslici, segment 8 je rezervovaný na tečku za číslem (1led). Bude přítomen u dalšího typu zobrazovačů s desetiným místem pro teploměry, voltmetry atd. Dvojtečka má 2 LED, ale počet diod by se měl taky dát nastavit.
Deklarace pro možné varianty poskládaného displeje:
-displayFormat[] = "88:88"` // pro krátký formát času hh:mm
-displayFormat[] = "88:88:88"` // pro dlouhý formát času hh:mm:ss
-displayFormat[] = "888888"` // například pro 6 místné číslo (záporné 5 místné číslo), "8888" pro 4 místné číslo (záporné 3 místné) atd.
-displayFormat[] = "888.888"; // pro zobrazení teplot jako třeba -12.7°C apod.

Funkce:
-showChars(char myChars[], int index, (volitelně byte R, byte G, byte B)); // Zobrazí skupinu znaků z leva nebo od zadaného indexu.*
-displayClear(volitelně int index**); // Zhasne displej, nastavení barev zůstává uloženo. při zadání indexu bude zhasnut jeden znak na pozici index.*
-setColor(int index, byte R, byte G, byte B); // nastaví barvu jednotlivých číslic/znaků. Pokud možno jednorázově na začátku programu, případně přidat barvu i jako volitelná vstupní proměnná u funkce např. showChars("11:23", 0, 50, 0, 0); // zobrazí čas od prvního znaku, červeně.
-setColon(bool show, byte index, (volitelně byte R, byte G, byte B)); // dvojtečka ON/OFF, index = první až Ntá dvojtečka.

* např: index = 2; // změní třetí číslici tak, aby okolní číslice zůstaly beze změny.
** displayClear() bez předaného indexu vymaže celý displej, nastavené barvy číslic zůstávají. Po předání proměnné index, funkce smaže jeden znak na dané pozici, ostatní zůstanou zachované vč. nastavení barev.

Video funkčního prototypu

Obrázek

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Potřebuji napsat Arduino knihovnu pro segmentový displej s LED WS2812b

Příspěvek od pavel1tu » 24 črc 2020, 15:59

Aby se bylo z čeho odpíchnout, ale nehlásím se ;)
https://www.instructables.com/id/RGB-7- ... h-WS2812B/

jinak máme z kroužku úpravu i pro 21/28 LED na segment znaky (je to jednoduché).
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Azuzula
Příspěvky: 2
Registrován: 23 črc 2020, 14:31
Reputation: 0

Re: Potřebuji napsat Arduino knihovnu pro segmentový displej s LED WS2812b

Příspěvek od Azuzula » 25 črc 2020, 12:57

Díky, podívám se na to.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů