25-05-2019, 22:06
Załóżmy, że ma coś świecić 100s, czyli w momencie gdy uruchamiasz program deklarujesz zmienną dlugSwiecenia, po starcie ma wartość 0.
Wprowadzasz warunek, gdy dlugSwiecenia>0 to załączasz świecenie.
Co sekundę w trakcie działania programu zmniejszasz zmienną if(dlugSwiecenia>0) dlugSwiecenia--.
Gdy pir wykryje ruch ustawiasz zmienną dlugSwiecenia=100.
Jeśli ma działać niezależnie od przycisku to w warunku załączenia świecenia ma być warunek LUB od tej drugiej opcji. Stan przycisku zapisujesz do drugiej zmiennej, np. "przycisk", gdy włączony to przycisk=1, gdy wyłączony to 0.
if(dlugSwiecenia OR przycisk) zaświeć; - to zadziała gdy zmienna dlugSwiecenia LUB przycisk jest różne od 0.
Jak chcesz odwrócić wartości zmiennej przycisk to potem wstawiasz jej odwrotność do warunku:
if(dlugSwiecenia OR !przycisk) zaświeć - gdy ma świecić gdy przycisk ==0;
Jak zmierzyć upływ 1s masz podane w przykładzie blinkWithoutDelay, zamiast zmieniać stan led po prostu robisz to co ma się wydarzyć gdy minie sekunda.
Wprowadzasz warunek, gdy dlugSwiecenia>0 to załączasz świecenie.
Co sekundę w trakcie działania programu zmniejszasz zmienną if(dlugSwiecenia>0) dlugSwiecenia--.
Gdy pir wykryje ruch ustawiasz zmienną dlugSwiecenia=100.
Jeśli ma działać niezależnie od przycisku to w warunku załączenia świecenia ma być warunek LUB od tej drugiej opcji. Stan przycisku zapisujesz do drugiej zmiennej, np. "przycisk", gdy włączony to przycisk=1, gdy wyłączony to 0.
if(dlugSwiecenia OR przycisk) zaświeć; - to zadziała gdy zmienna dlugSwiecenia LUB przycisk jest różne od 0.
Jak chcesz odwrócić wartości zmiennej przycisk to potem wstawiasz jej odwrotność do warunku:
if(dlugSwiecenia OR !przycisk) zaświeć - gdy ma świecić gdy przycisk ==0;
Jak zmierzyć upływ 1s masz podane w przykładzie blinkWithoutDelay, zamiast zmieniać stan led po prostu robisz to co ma się wydarzyć gdy minie sekunda.
Miło być decenianym https://buycoffee.to/kaczakat