Stránka 1 z 1

LED - PWM, 2 tlačítka, spouštění, regulace

Napsal: 14 črc 2019, 16:39
od abuk8
Ahoj, předem se omlouvám, jestli se to zde někde řešilo, ale potřebuji pomoct s programem. Nějaké základy mám, ale na tohle se necítím.
Mám arduino, LED a dvě tlačítka. Chci, aby se při krátkém zmáčknutí 1. tlačítka rozsvítila LED a při krátkém zmáčknutí 2. tlačítka zhasnula. Při delším podržení 1. tlačítka by se zvyšoval jas při podržení 2. tlačítka se jas snižoval. Ve fórech a návodech jsem našel pouze, stmívání pomocí dvou tlačítek, ale chtěl bych s tím ovládat světlo na chatě a přijde nahouby, abych musel pokaždé držet vypínač pro rozsvícení. Žádný kód zatím nemám. Kdyby se našel někdo kdo by mi to pomohl napsat byl bych moc vděčný.

Re: LED - PWM, 2 tlačítka, spouštění, regulace

Napsal: 14 črc 2019, 17:38
od pavel1tu
Pokud něco neumíš - pohledej knihovnu.
Existuje mnoho knihoven na obsluhu tlačítek, která umí i měřit jak dlouho je stisknuté tlačítko a vrací zda byl krátký/dlouhý stisk tlačítka.

třeba tahle https://github.com/JChristensen/JC_Button

Knihoven je spousty na obsluhu tlačítek.

Pokud nepořešíš do týdne, napiš PM, teď jsem na dovolené a pořešíme to spolu (je to otázka 10 min), kdysi jsem dělal ovládání MP3 přehrávače na 2 tlačítka, kdy krátký stisk je skok mezi skladbami a dlouhý hlasitost. Třeba to ještě najdu.

Omluvte překlepy - tablet ....

Re: LED - PWM, 2 tlačítka, spouštění, regulace

Napsal: 14 črc 2019, 21:16
od abuk8
Díky moc, podívám se na to. Jsem docela začátečník. Skončil jsem u if, elsif :D

Re: LED - PWM, 2 tlačítka, spouštění, regulace

Napsal: 14 črc 2019, 22:53
od gilhad
nebo si to napis sam :)

při stisknutí tlačítka si ulož čas stisknutí, při puštění tlačítka vem současný čas, odečti od něj čas stisknutí a když to bude větší než pár milisekund (takže to není jen nějaký zákmit) a menší, než nějaká hranice, tak je to stisk krátký, jinak je to stisk dlouhý.

Stisknutí tlačítka poznáš tak, že máš uloženou starou hodnotu, načteš novou a když se liší, tak došlo ke změně.

Postupné zvyšování uděláš tak, že pokud je tlačítko stisknuto déle, než krátce a je pořád ještě stisknuto, tak se podíváš, jestli je kam zvyšovat a jestli od posledního zvýšení uběhla dost dlouhá doba. Pokud ano, zvýšíš a zaznamenáš si dobu.

potřebuješ umět používat proměnné, funkci millis() - viz dokumentace, a pro rozsvěcení/stmívání analogWrite() (viz dokumentace, dělá to různě rychlé pulzy PWM, aby předstíralo změnu napětí - LED jsou dost rychlé, tak se jim mění jas)

Re: LED - PWM, 2 tlačítka, spouštění, regulace

Napsal: 15 črc 2019, 22:46
od abuk8
Tak vyřešeno, díky. Nakonec mi pomohl kámoš a udělali jsme to trochu jinak. Kdyby se vám chtělo mi ukázat jak na to přes tu knihovnu, klidně můžete.