Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Domowa stacja pogody problem z kodem

Ziobrox10 10 Sie 2017 10:33 672 8
  • #1 10 Sie 2017 10:33
    Ziobrox10
    Poziom 3  

    Witam, niedawno rozpocząłem przygodę z elektroniką (Arduino). Zrobiłem już parę projektów, ale natknąłem się właśnie na problem, przez który nie mogę przebrnąć. Chciałem zrobić domową stacje pogody z zegarem i żeby pokazywało mi temperaturę na piecu drogą radiową (nie jestem jeszcze w posiadaniu przekaźników) . To wszystko jest zrobione na dotykowym wyświetlaczu TFT LCD 2,4 (shield),zegar to ds3231 i jeszcze czujnik AM3202, dotyk działa tylko nie wiem jak zrobić żeby odświeżało mi ekran co minutę po to aby aktualizowała się temperatura wraz z godziną. Próbowałem z pętlą while(1){} ale nie wychodziło. Tak wygląda program:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Z góry dziękuję za pomoc.

  • #2 10 Sie 2017 11:55
    JacekCz
    Poziom 32  

    nie wiem co masz na myśli z tym while().
    Podstawowa pętla arduino loop() to jest właśnie TA PĘTLA, tylko trzeba ją po swojemu wypełnić, u Ciebie w związku z upływem czasu.

    Wkleiłeś /nadałeś być może mylną nazwę start1() - słowa są ważne, złe identyfikatory komuś obcemu, a nawet autorowi sugerują coś innego.
    Aktywność kodu się "przemieszcza", tzn coś ustawiasz, inna funkcja to używa itd... inaczej mówiąc funkcje nie są "czyste", mi się to źle czyta i nie rozumiem.

    Być może funkcje nawzaje sobie zamazują ekran, ale nie umiem się w tym wyznać.

  • #3 10 Sie 2017 12:23
    Ziobrox10
    Poziom 3  

    Start1() to jest ekran główny i chodzi mi o to że kiedy wgrywam ten kod to wyświetla mi się na chwilę ekran startowy i zaraz gaśnie, dając opóźnienie wiadomo dłużej jest zapalony. A chodzi mi o to żeby ekran odświeżał się co minutę tylko nie wiem jak to ująć w kodzie.

  • Pomocny post
    #4 10 Sie 2017 14:08
    krzysiek_krm
    Poziom 29  

    Witam,
    odmierzanie upływu czasu, w Twoim przypadku jednej minuty, możesz zrealizować w oparciu o ten mechanizm:
    https://playground.arduino.cc/Code/TimingRollover
    Po zarejestrowaniu faktu upłynięcia jednej minuty wyświetlasz na nowo ekran, ewentualnie dla oszczędności czasu, wyświetlasz tylko to co może ulec zmianie.

    Pozdrawiam

  • #5 10 Sie 2017 16:27
    Ziobrox10
    Poziom 3  

    Spróbowałem, ale nic się nie dzieje mógłbyś mi powiedzieć co źle zrobiłem? Będę bardzo wdzięczny. Z góry dzięki.

    Kod: c
    Zaloguj się, aby zobaczyć kod

  • #6 10 Sie 2017 16:34
    JacekCz
    Poziom 32  

    Skąd to wytrzasnąłeś?

    Kod: c
    Zaloguj się, aby zobaczyć kod

    To jest data i godzina kompilacji (stałe stringowe)



    A to ... co poeta miał na myśli ... ja też zupę jem widelcem, to się w ogóle kompiluje?
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Chaosu, np w formatowaniu, jak na moje poczucie czytelności nie opanowałeś.

  • #7 11 Sie 2017 16:14
    Ziobrox10
    Poziom 3  

    Mam jeszcze jedno pytanie, mianowicie kiedy wgrywam ten kod(bez dotyku) :

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Wszystko działa dobrze tzn. odświeża się co 5 sek., natomiast kiedy wgrywam już z dotykiem wyświetlacz po paru przejściach pętli gaśnie tzn. jest biały ekran.
    Bardzo proszę o pomoc.

  • #8 11 Sie 2017 16:18
    JacekCz
    Poziom 32  

    Ziobrox10 napisał:
    Mam jeszcze jedno pytanie, mianowicie kiedy wgrywam ten kod(bez dotyku) :
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Wszystko działa dobrze tzn. odświeża się co 5 sek., natomiast kiedy wgrywam już z dotykiem wyświetlacz po paru przejściach pętli gaśnie tzn. jest biały ekran.
    Bardzo proszę o pomoc.


    jeśli na OKŁAMUJESZ czy się kompiluje czy nie, i jakie są błędy kompilatora, spodziewasz się odpowiedzi? Mamy na niekompilującym się kodzie gdybać, co w nim funkcjonalnie by mogło być?

    Co jeszcze masz do ukrycia?

    Jesli w każdym z twoich sub-postów "bardzo dobrze działa", to dlaczego pytasz?

    To ty chcesz aby ktoś tobie pomógł, w twoim interesie jest najważniejsze udzielanie ścisłych informacji, a nie wprowadzanie w błąd.

  • #9 11 Sie 2017 20:16
    Ziobrox10
    Poziom 3  

    Przepraszam, może rzeczywiście niedokładnie napisałem, a co do kompilacji to się wszystko kompiluje. Mój problem polega na tym, że kiedy mam wyłączony dotyk to program mi odświeża ekran startowy, czyli data, godz, i temp. i pod tym mam zrobione dwa przyciski i kiedy klikniesz na pierwszy to się powinno przejść na drugą stronę z temp i wilg. na polu, a kiedy drugi to temp. na piecu. Bez dotyku nie mogę przejść do tych stron. Kiedy natomiast włączam dotyk to ekran kilka razy się odświeża i po chwili jest cały biały, przy tym kiedy się odświeża to dotyk też nie działa . Kiedy nie miałem jeszcze zegara cały interfejs działał razem z dotykiem. Dlatego piszę, bo myślę, że ktoś może zna sposób jak to zrobić tzn. żeby odświeżało stronę startową i działał dotyk.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME