19-09-2018, 02:51
1. To jest ustawianie bardziej Nexion niż Arduino. Tak samo jak ustawiasz zmienną dM1 powinieneś mieć ekran, gdzie napełnisz zmienne czasu i dodatkową zmienną, która informuje, że czas został zmieniony na ekranie i należy go przesłać do RTC. Potem już w arduino gdzieś w pętli używasz tego co masz w swojej bibliotece RTC, np:
Clock oczywiście zamień na swój obiekt, a metody dostępne znajdziesz w przykładach i samej bibliotece, której używasz.
2. Masz już użyte millis to sobie zmień, że dozownik włączasz na np. 10s, warunek włączenia bez zmian, ale od razu ustawiaj przy jakiej wartości millis, czy tam sekund w oparciu o nie wyliczonych, wyłączasz. I zliczaj sobie te sekundy pracy dozownika w DozUzyte. Jak już ustalisz, że cały zbiornik to np. już ustalona zmienna stała DozMax=3245 sekund dozowania, to w drugiej zmiennej DozUzyte trzymaj aktualną ilość zużytą, na wyświetlaczu pokazuj DozMax-DozUzyte.
3. Tu za bardzo nie rozumiem. Korzystanie z wartości w tabeli to ta prostsza metoda. Można wyliczać kolejne wartości w krokach rozjaśniania używając skomplikowanych obliczeń, tak by rozjaśnianie było zgodne z tym co nasze ludzkie oko odbiera. To ma dawać wizualnie ładny i płynny efekt. Nie wiem czy to tak działa na roślinki, czy dla niech po prostu nie można by zwiększać liniowo, bo im zależy tylko na tym ile energii dostają od światła. Poszukaj sobie o korekcji gamma, np. https://learn.adafruit.com/led-tricks-ga...-quick-fix .
Jeśli natomiast zależy Ci tylko na ustawieniu max to co za problem ustawić sobie zmienną na ekranie, przesyłać do arduino i w funkcji analogWrite(pin,X); dodać sobie wcześniej ifa gdzie wartość X ustalasz z tabeli, a jeśli Max jest mniejsze od tej wartości to X=Max.
Kod:
if(NXtimechange) //jeśli zmiana czasu==1
{
Clock.setYear(NXYear);
Clock.setMonth(NXMonth);
Clock.setDate(NXDate);
Clock.setDoW(NXDoW);
Clock.setHour(NXHour);
Clock.setMinute(NXMinute);
Clock.setSecond(NXSecond);
timechange=0;//wyzeruj zmiane czasu
}
2. Masz już użyte millis to sobie zmień, że dozownik włączasz na np. 10s, warunek włączenia bez zmian, ale od razu ustawiaj przy jakiej wartości millis, czy tam sekund w oparciu o nie wyliczonych, wyłączasz. I zliczaj sobie te sekundy pracy dozownika w DozUzyte. Jak już ustalisz, że cały zbiornik to np. już ustalona zmienna stała DozMax=3245 sekund dozowania, to w drugiej zmiennej DozUzyte trzymaj aktualną ilość zużytą, na wyświetlaczu pokazuj DozMax-DozUzyte.
3. Tu za bardzo nie rozumiem. Korzystanie z wartości w tabeli to ta prostsza metoda. Można wyliczać kolejne wartości w krokach rozjaśniania używając skomplikowanych obliczeń, tak by rozjaśnianie było zgodne z tym co nasze ludzkie oko odbiera. To ma dawać wizualnie ładny i płynny efekt. Nie wiem czy to tak działa na roślinki, czy dla niech po prostu nie można by zwiększać liniowo, bo im zależy tylko na tym ile energii dostają od światła. Poszukaj sobie o korekcji gamma, np. https://learn.adafruit.com/led-tricks-ga...-quick-fix .
Jeśli natomiast zależy Ci tylko na ustawieniu max to co za problem ustawić sobie zmienną na ekranie, przesyłać do arduino i w funkcji analogWrite(pin,X); dodać sobie wcześniej ifa gdzie wartość X ustalasz z tabeli, a jeśli Max jest mniejsze od tej wartości to X=Max.
Miło być decenianym https://buycoffee.to/kaczakat