Close

Odpověď na: Osvětlení akvaria Led pásky

Úvodní stránka Fórum Vaše projekty Arduino Osvětlení akvaria Led pásky Odpověď na: Osvětlení akvaria Led pásky

#7235
posjirka
Účastník

podle mých výpočtu by to mělo resetovat po 21 minutách 🙂

Když se na ten program podívaáš, tak ve smyčce ( loop() ) ti neustále :
– nastavuje vstup „svetlo1“ jako výstupní (pinmode)
– pak ti zobrazí aktuální čas (displayTime)
– počká 1 s
– přečte si aktuální čas (readDS3231time)
– zjistí jestli není náhodou den (if (h>=8 ….)
– spustí sekvenci rozsvícení (podmíněnou dalšími faktory) a ta trvá 255 kroku * 5s zpoždění = cca 21minut.
….

po tu dobu rozsvěcení vlastně cykluje sám v sobě a tím pádem nezobrazuje na „serialmonitor“ žádné hodnoty. jestli to chceš vypisovat tak musíš příkaz „displayTime();“ dát i do symček „for“.

proč se ti resetuje / znovu načítá nevím, nekde je chybka v proměnných „den“, „sviti“, „brightness“. Když tak na to koukám, tak on ti vlastně nikdy nedojede v rozsvícení na „brightness = 255“, protože ve smyčce „for“ mu dáváš podmínku „brightness < 255“. Tzn. že ti skončí ve 254 kroku 🙂 .

Já bych celou tuto situaci řešil asi trochu jinak. Na počátku bych si nadefinoval pole o 24 pozicích (0-23 hodin) do nich bych si zapsal jakou intenzitu mají mít v nulté minutě a pomocí fuknce „map()“ bych plynule přecházel mezi jednotlivými hodnotami.
Ano trvalo by to 1 hodinu než by se rozsvítilo světlo naplno/zhasnulo ale bylo by to mnohem čistší řešení …

nemám moc rád tyhle vnořené podmínky, člověk se v nich ztrácí.