Jednoduché memu - I2C displej 20x4 + rotační enkodér
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Re: Jednoduché memu - I2C displej 20x4 + rotační enkodér
Nejdřív si vyzkoušej samotný enkodér, jak funguje, co vrací atd. Pak uvidíš.
https://www.pjrc.com/teensy/td_libs_Encoder.html
https://www.pjrc.com/teensy/td_libs_Encoder.html
Re: Jednoduché memu - I2C displej 20x4 + rotační enkodér
Ok, kouknu na to, díky moc!
Re: Jednoduché memu - I2C displej 20x4 + rotační enkodér
Před časem jsem věnoval spoustu času hledání nějakého rozumného menu pro LCD (ovládání maticovou klávesnicí 4x4), nakonec jsem se naštval a napsal si ho sám. Bylo to spoustu slepých cest, asi to není programátorsky zcela čisté, ale jede a vyhovuje. A spoustu věcí jsem se na tom naučil.
viewtopic.php?f=38&t=2656
viewtopic.php?f=38&t=2656
Re: Jednoduché memu - I2C displej 20x4 + rotační enkodér
Není menu, jako menu. Začal bych tím, že si ujasním vůbec jak má vypadat a jestli bude více úrovňové. Chci vůbec zobrazovat další položky v menu (jako list), nebo mi stačí zobrazit jen jednu ? Budou mít všechny měnitelné parametry jen číselnou hodnotu, nebo něco bude int, něco boolean, něco string ? A co je vlastně potřeba si pamatovat pro to menu ? ... Určitě potřebuješ vědět, na které položce v menu jsi ... určitě potřebuješ vědět jestli ta položka je aktivní a otáčením měníš její hodnotu, nebo aktivní není a otáčením měníš položku na které v menu jsi ... začal bych výtvorem pole názvů položek v menu a pomocí enkoderu měnil index toho pole ... jeden jediný (ten aktivní) název vypsat na displej ... jak bude funkční listovaní položkami, pak bych řešil vstup a výstup do menu.
Jinak zkus mrknout na to jak funguje třeba menu tady https://www.instructables.com/Open-Sour ... ltic-Pump/
Jinak zkus mrknout na to jak funguje třeba menu tady https://www.instructables.com/Open-Sour ... ltic-Pump/
Re: Jednoduché memu - I2C displej 20x4 + rotační enkodér
Jak má menu vypadat vím, hlavní nabídka šest položek a pak při stisknutí enkodéru na konkrétní položce vyvolání podmenu kde se nastavuje čas. (je to na obrázku v prvním příspěvku)
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Jednoduché memu - I2C displej 20x4 + rotační enkodér
No, on ti tu asi někdo stěží to menu naprogramuje.
Musíš použít nějaké co ti nejvíce vyhovuje a to upravit ....
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: Jednoduché memu - I2C displej 20x4 + rotační enkodér
Pod pojmem podmenu (submenu) si to představuji tak :
Tohle už je poměrně složitejší než jednovrstvé menu. Spíš začni tím jednoduchým, kdy menu bude mít vrstvu jen jednu a všechny položky budou v něm.
Co potřebuješ o menu si držet v paměti. 1) To na jakém indexu jsi. 2) To jestli je položka otevřena.
Co budeš potřebovat o položce držet si v paměti. 1) Její index, 2) Její textový název, 3) Její účel (spouští nějakou akci? mění hodnotu ?) 4) Její hodnotu.
Zkontroluješ Enkodér, změnil hodnotu, podívám se jestli je momentální položka otevřena, pokud ne, tak měním menuID a přepisuji displej. Jak mile uděláš tohle, teprve potom vůbec začni řešit stisk enkodéru a vstup/výstup z menu. Nic víc ... až budeš mít tohle tak pak teprve řeš, že při otevřeném menu v ID nastavení dávej + nebo - se ti bude měnit ta a ta hodnota. V programování velký problém neexistuje, vždy je složen z hromady menších a ty jsou taky složeny z dalších menších dílčích problémů.
Takže v podstatě krok jedna ... točím, hýbu se v menu, stisknu tím se mi otevře, točím nehýbu se v menu ( protože tu se bude dělat něco jiného v budoucnu ), stisknu tím se mi zavře, točím a opět se hýbu v menu.
Kód: Vybrat vše
1. Start
2. Test
3. Nastavení
3.1 Čas
3.2 Datum
3.3 Jinná funkce
3.4 Zpět
4. Restart
Co potřebuješ o menu si držet v paměti. 1) To na jakém indexu jsi. 2) To jestli je položka otevřena.
Co budeš potřebovat o položce držet si v paměti. 1) Její index, 2) Její textový název, 3) Její účel (spouští nějakou akci? mění hodnotu ?) 4) Její hodnotu.
Zkontroluješ Enkodér, změnil hodnotu, podívám se jestli je momentální položka otevřena, pokud ne, tak měním menuID a přepisuji displej. Jak mile uděláš tohle, teprve potom vůbec začni řešit stisk enkodéru a vstup/výstup z menu. Nic víc ... až budeš mít tohle tak pak teprve řeš, že při otevřeném menu v ID nastavení dávej + nebo - se ti bude měnit ta a ta hodnota. V programování velký problém neexistuje, vždy je složen z hromady menších a ty jsou taky složeny z dalších menších dílčích problémů.
Takže v podstatě krok jedna ... točím, hýbu se v menu, stisknu tím se mi otevře, točím nehýbu se v menu ( protože tu se bude dělat něco jiného v budoucnu ), stisknu tím se mi zavře, točím a opět se hýbu v menu.
Re: Jednoduché memu - I2C displej 20x4 + rotační enkodér
Hm, tak to nevím, to mi asi moc nepomůže. Přesto díky za reakci. Zkusím ještě pohledat.
_________________
arsenal trikot
_________________
arsenal trikot
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti