Akwarium Komputer - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Akwarium Komputer (/watek-akwarium-komputer) |
Akwarium Komputer - Jacy_tcz - 26-07-2017 Witam, Przygodę z arduino zacząłem w momencie kiedy wpadłem na pomysł postawienia nowego akwarium. Z powodu tego iż muszę mieć pomiar parametry wody najprościej było zrobić to na arduino niż kupować komputer za parę tyś. zł. I oto moje wypociny: Podzespoły: Arduino Mega 2560 RTC DS1302 zegar czasu rzeczywistego Wyświetlacz 20x4 z modułem I2C Sterownik PWM LED RGB 3x6A P9813 Czujnik temperatury LM35 Lampa LED ( https://pl.aliexpress.com/item/1pcs-Led-Aquarium-Light-3W-5W-10W-14W-white-blue-LED-light-Coral-Reef-Grow-Light/32721135478.html?spm=2114.010208.3.65.ytZxuF&ws_ab_test=searchweb0_0,searchweb201602_4_10065_10068_433_434_10136_10137_10138_10060_10062_10056_10055_10054_302_10059_10099_10103_10102_10096_10052_10053_10050_10107_10051_10106_10084_10083_10080_10082_10081_10110_10111_10112_10113_10114_5000000_10078_10079_10073_10070_10122_10123_10126_10124,searchweb201603_3,afswitch_1,ppcSwitch_5,single_sort_0_default&btsid=ab20bf38-a233-46bb-bfc2-828b9bd3aa6b&algo_expid=6f972ebb-b24e-4a25-9302-f44c0600cc8d-10&algo_pvid=6f972ebb-b24e-4a25-9302-f44c0600cc8d ) Niedługo o ile dojedzie, będą dodane moduły: http://www.tme.eu/pl/details/df-sen0161/moduly-czujnikow/dfrobot/sen0161/ http://www.tme.eu/pl/details/df-sen0165/moduly-czujnikow/dfrobot/sen0165/ Niestety nie działa do końca tak jak powinno: Data - szaleje rok się zmienia godzina przy zaniku prądu pokazuje np. 34:34:23 (jak mu się podoba) Temperatura szaleje Poniżej link do filmiku: https://youtu.be/Wm7dY2N7K8c Opis działania: Zegar standardowo do zarządzania reszta parametrów, Pomiar temperatury wody Pomiar parametrów wody Sterowanie lampą - ściemnianie, rozjaśnianie wg. zegara - symulacja zachodu i wschodu słońca. KOD PROGRAMU: Kod: #include <stdio.h> Jakby mógł ktoś mi dopomóc dlaczego tak się dzieje?? Pozdrawiam. RE: Akwarium Komputer - Robson Kerman - 26-07-2017 Wymień baterię w RTC, albo jeśli masz w układzie zegara pin BAT, to podłącz do VCC. Swoją drogą, co to za przestrzeń nazw i w jaki sposób się wywołuje funkcje z tej przestrzeni nie mając przedrostka? To w ogóle ma jakiś głębszy sens, bo może jestem głupi i czegoś nie rozumiem? RE: Akwarium Komputer - Jacy_tcz - 27-07-2017 Zmiana baterii nic nie dała. RE: Akwarium Komputer - Robson Kerman - 27-07-2017 A zmieniłeś na dobrą baterię? Podłączyłeś pin BAT? Nie odpowiedziałeś mi na pytanie o przestrzeni nazw. RE: Akwarium Komputer - Jacy_tcz - 18-08-2017 hm..... 1) Nie wyciągnąłem baterie z zegarka i włożyłem używaną... 2) Jak byś dobrze przeczytał mój post i sprawdził jakie moduły użyłem to byś wiedział iż nie ma tam pina BAT. 3)Co do przestrzeni nazw... program jest pisany prze zemnie i jest moją własna inicjatywą więc mogę sobie zmienne nazywać jak mi się podoba. Raczej problemu nie ma z wywoływaniem ich. Ok Po dłuższej zabawie doszyłem do tego gdy lampa świeci z mocą 100% (wszystkie kolory) to zaczyna się dyskoteka na wyświetlaczu, gdy jest mniej niż 99% to wszystko działa poprawnie Analizując Int X wejście z zakresu 0 do 255 i chce to wyrazić w % na wyświetlaczu dla x=0 ma być 0,0% x=2 ma być 0.8% x=25 ma być 10% (pierwsza pozycja pusta) x=255 ma być 100% osiągając 100% czasem wychodzi tak że wyświetla 0.000.000 taki format i te kolejne zera nadpisują wiersze wyświetlacza dlatego inne linie szaleją. Pytanie: Czy ktoś wie w jaki sposób ustawić zmienne ułamkowe wyrażające procent (float)ograniczone do 3 znaków? od formatu 0,0 do 9,9 dla mniejszych od 10 natomiast dla reszty ma przyjmować dwie ostatnie pozycje (od 10 do 99)i 100% dla wartości 100 Pozdrawiam. RE: Akwarium Komputer - Robson Kerman - 18-08-2017 Przeczytałem Twój post, a tam piszesz, że masz DS1302. Ten zegarek ma wyprowadzony pin BAT do zasilania i ładowania baterii, więc pewnie Ty nie przeczytałeś własnego posta, a nie ja. Co do przestrzeni nazw, to owszem jest twój program i Ty nazywasz zmienne, ale owa przestrzeń nie tyczy się nazewnictwa zmiennych. Przeczytaj mój post jeszcze raz (szczególnie o przedrostku), potem naucz się C++, a następnie odpowiedz na pytania. To nie jest złośliwość z mojej strony, po prostu aby dać sobie pomóc, musisz jako autor kodu, wykazać się współpracą, ponieważ Ty znasz swój kod najlepiej, a my musimy zgadywać. Co się tyczy zaokrąglania liczb do określonej ilości znaków, to myślę że można wykorzystać funkcję round. Na przykład dla zmiennej 'i' mniejszej od 10, niech i=0,25 a chcesz aby było 0,2 to możesz dać round(ix10)/10; A co znaczy "przyjmować dwie ostatnie pozycje", to nie wiem, ale jak chcesz dla i>10 zrezygnować z miejsc po przecinku, to po prostu round(i); |