Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

wyswietlanie po 10 sekund na wyswietlaczu

chris18404 18 Mar 2017 12:39 561 15
  • #2 18 Mar 2017 12:48
    Press
    Poziom 22  

    Algorytm sam już opisałeś.
    A żeby Ci pomóc to schemat i język w jakim piszesz.

    P.S.
    Co to za plik z rozszerzeniem *.ino, który podlinowałeś? Czym to otworzyć?

  • #4 18 Mar 2017 13:23
    Wojciech.
    Poziom 29  

    @Press W ArduinoIDE.
    Dodano po 10 [minuty]:
    @chris18404


    Kod: c
    Zaloguj się, aby zobaczyć kod


    Spróbuj taki szablon

  • #5 18 Mar 2017 13:29
    chris18404
    Poziom 19  

    Wojciech. napisał:
    @Press W ArduinoIDE.
    Dodano po 10 [minuty]:
    @chris18404


    Code:
    void setup(){
    

    }

    void loop(){

    lcd.print("STACJA POGODOWA");
    delay(5000);

    temperatura();
    delay(ile chcesz);
    wilgotnosc();
    delay(ile chcesz);


    }

    void temperatura(void){

    lcd.clear();
    lcd.print(temperatura);

    }



    void wilgotnosc (void){

    lcd.clear();
    lcd.print(wilgotnosc);

    }


    Spróbuj taki szablon


    błąd wyskoczył.

  • #6 18 Mar 2017 13:34
    Wojciech.
    Poziom 29  

    @chris18404 Bo powtórzyły Ci się zmienne. Zmień nazwę void temperatura(void) na np void temp(void), wilgotnosc tak samo.

  • #7 18 Mar 2017 13:46
    chris18404
    Poziom 19  

    Wojciech. napisał:
    @chris18404 Bo powtórzyły Ci się zmienne. Zmień nazwę void temperatura(void) na np void temp(void), wilgotnosc tak samo.


    niestety źle wyswietla:

  • #8 18 Mar 2017 14:13
    Wojciech.
    Poziom 29  

    w tych funkcjach po lcd.clear() ustaw sobie pozycje kursora.

  • #9 18 Mar 2017 14:32
    chris18404
    Poziom 19  

    Wojciech. napisał:
    w tych funkcjach po lcd.clear() ustaw sobie pozycje kursora.



    nie działa.

  • #12 18 Mar 2017 15:04
    Wojciech.
    Poziom 29  

    No ale to nie jest ten kod.

  • #13 18 Mar 2017 15:12
    adasikp
    Poziom 12  

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Poprawione złe pozycje kursora pierwsza oś x druga y .

  • #14 18 Mar 2017 15:25
    chris18404
    Poziom 19  

    adasikp napisał:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Poprawione złe pozycje kursora pierwsza oś x druga y .



    przeciez tutaj jest cały czas na ekranie wszystko (stacja pogody, temperatura , wilgotność ) a ja chce po 10 sekund w pętli wilgotnosc i temperaturę)

    Dodano po 3 [minuty]:

    Wojciech. napisał:
    No ale to nie jest ten kod.

  • #15 18 Mar 2017 23:05
    chris18404
    Poziom 19  

    Nikt nie pomoże?

  • #16 18 Mar 2017 23:18
    emarcus
    Poziom 34  

    [quote="chris18404"]

    adasikp napisał:
    a ja chce po 10 sekund w pętli wilgotnosc i temperaturę)



    Jeżeli nie chcesz aby salut powitalny na LCD był ciągle wyświetlany i odświerzany, - umieśc go w części programu wykonywanego jednokrotnie, tylko podczas startu i tak pozostaw, pózniej zadbasz o jego nadpisanie w odpowiednim momencie:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Stosowanie w programie opóźnień delay() większych niż kilka lub kilkadziesiąt milisekund jest z natury błędną praktyką. W tym czasie program jest zatrzymany i cały program za wyjątkiem interruptów, oraz timerów odczekuje aż to opóźnienie zostaje wypełnione.
    Do odmierzenia dłuższych odcinków czasu możesz wykorzystac fukcję millis() , która jest specyficznym dla arduino zegarem obsługiwanym przez timer0 , podobnie jak milisekundy delay(), z tą różnica że millis() nie blokuje processora, bo polega na cyklicznym odpytywaniu (polling) tego zegara i porównywaniu z wartością oczekiwaną.
    Potrzebowałbyś na początku wprowadzic dodatkową zmienną przechowującą ostatni znaczący odczyt millis(), na przykład:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    - i w każdym obrocie pętli nieskończonej ‘loop’ porównujesz róznicę: aktualnego odczytu millis, minus ostatni zapamiętany odczyt; do zadanego przedziału . Jezeli ta funkcja warunkowa jest spełniona znaczy że zadany czas upłynął i wywołujesz przygotowaną funkcję nadpisu treści LCD (w tym akurat aspekcie), może to byc zupełnie dowolna funkcja oczekująca upływu czasu. W tej funkcji jednocześnie umieszczasz nową wartośc ostatniego odczytu/(update).
    Tu praktycznie nie ma limitu co do długości zadanego przedziału czasu do odmierzenia, gdyż zawsze operujesz tylko różnicą wartości zmiennych.
    W pętli głównej powinien pojawic się warunek porównania tych zmiennych i wywołania funkcji wyświetlania:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    To wszystko co potrzebujesz.

    e marcus

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