logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Arduino LCD + RTC: błędny czas UTC, nie działa zegar i przyciski 9, 11, 15

wosiekpl 04 Sie 2025 20:11 696 23
REKLAMA
  • #1 21625955
    wosiekpl
    Poziom 21  
    Posty: 1260
    Pomógł: 2
    Ocena: 35
    Witam wszystkich

    Znowu prosze o pomoc. Mam problem z prostym programem. Wpisalem i dzialac dziala ale zle pokazuje czas UTC. Probowalem cos zmienic ale zegar ani sie uruchamia ani zmienia UTC.
    Zegar pokazuje date , czas lokalny i czas UTC.Tak ma dzialac.
    Niestety po wgraniu , pokazuje sie ale nie wszystko . Na dodatek zegar nie uruchamia sie. Takze nie dzialaja wejscia 9 . 11 i 15

    Po wgraniu pokazuja sie bledy ale na wyswietlaczu wyswietlane sa niektore dane


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    Tak jest

    Wyświetlacz LCD z datą 7 października 2094 i godziną lokalną i UTC

    Tak powinno byc

    Wyświetlacz LCD pokazujący datę, dzień tygodnia i godziny lokalną oraz UTC

    Zegar RTC3231 jeszcze nie jest podlaczony
  • REKLAMA
  • #2 21626064
    inot
    Poziom 38  
    Posty: 3551
    Pomógł: 439
    Ocena: 798
    Jak zegar nie jest podłączony, to wyświetlacz nie dostaje prawidłowych informacji.
  • #3 21626096
    gps79
    Poziom 37  
    Posty: 2190
    Pomógł: 495
    Ocena: 792
    Jeśli dobrze kojarzę, to RTClib.h nie jest zegarem, a jedynie udczytuje/pozwala ustawić czas w sprzętowym zegarze, którego nie podłączyłeś. Powinieneś zakończyć działanie programu po wywołaniu rtc.begin(); i odebraniu kodu błędu zwróconego przez tą metodę, bo po niej wszystkie odwołania do niezainicjalizowanego rtc zwrócą dziwne wyniki.
  • #4 21626098
    wosiekpl
    Poziom 21  
    Posty: 1260
    Pomógł: 2
    Ocena: 35
    Witam

    Po dolaczeniu RTC3231 zegar uruchomil sie ale dalej nie wyswietla poprawnie.


    Niebieski ekran LCD z datą „1 ENERO 2000”, godziną i informacją o czasie UTC

    Brakuje jednej lini

    Autor zrobil dwa zegary i nie jestem pewien czy program jest odpowiedni. Jego strona od dawna nie dziala i nie mam jak sprawdzic czy program jest poprawny
  • #5 21626104
    gps79
    Poziom 37  
    Posty: 2190
    Pomógł: 495
    Ocena: 792
    wosiekpl napisał:
    nie wyswietla poprawnie

    Co na to wskazuje? Raczej nie brak tekstów, których nie ma w programie.
  • #6 21626111
    inot
    Poziom 38  
    Posty: 3551
    Pomógł: 439
    Ocena: 798
    Co ma wyświetlić ta brakująca linia?
    W oryginale ten fragment jest wyświetlany w dwóch liniach, natomiast w Twoim programie tylko w jednej linii
    Kod: Arduino
    Zaloguj się, aby zobaczyć kod
    ponieważ wartość zmiennej row_hour nie uległa zmianie.
  • #7 21626140
    wosiekpl
    Poziom 21  
    Posty: 1260
    Pomógł: 2
    Ocena: 35
    Tak jak na zdjęciu, które wcześniej zamieściłem .
    Tj w 3 linii godzinę lokalną zaś w 4 UTC
    Przeglądając korespondencję z autorem okazało się, że mi wysłał zrzut z programu o błędzie zegara .
    A było to we wrześniu 2020 . Jutro postaram się go skopiować .

    Pozdrawiam i wielkie dzięki za zainteresowanie się tym tematem i pomoc
  • #8 21626143
    inot
    Poziom 38  
    Posty: 3551
    Pomógł: 439
    Ocena: 798
    Wystarczy tylko mała zmiana.
    Kod: Arduino
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #9 21626894
    wosiekpl
    Poziom 21  
    Posty: 1260
    Pomógł: 2
    Ocena: 35
    Witam ponownie

    Po zmienie , o ktorej napisales jest teraz tak

    Wyświetlacz LCD z datą, dniem tygodnia, czasem lokalnym i czasem UTC

    Czy jest mozliwe taka zmiana w programie aby w trzeciej lini napisac Czas lokalny i w czwartej Czas UTC ?
    Autor programu kiedys wyslal mi taki fragment programu ale za bardzo nie widac o co chodzi .
    Załączniki:
    • error-reloj-enio.docx (166.12 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #11 21626952
    wosiekpl
    Poziom 21  
    Posty: 1260
    Pomógł: 2
    Ocena: 35
    To jest opis w programie , gdzie autor wykryl blad . Ja sie okazuje , w tym oprogramowaniu , ktore wpisalem jest juz poprawiony


    Zrzut ekranu z kodem C++ z błędem składniowym w funkcji init_settings()


    Tam na koncu ma byc ;

    Napisalem do niego ponownie aby napisal co moze byc powodem , ze brakuje 4 lini

    I szukam na pendrive , ktorych mam kilkanascie orginalnego programu

    tutaj jest strona autora z programami

    https://github.com/argulab
  • Pomocny post
    #12 21626989
    inot
    Poziom 38  
    Posty: 3551
    Pomógł: 439
    Ocena: 798
    Czy to wystarczy?
    Kod: Arduino
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #14 21627915
    inot
    Poziom 38  
    Posty: 3551
    Pomógł: 439
    Ocena: 798
    Teraz należałoby jeszcze sprawdzić, czy nastawianie prawidłowo działa.
    Oprócz tego można jeszcze po dwukropku dodać SPACJĘ, aby lepiej wyglądało.
  • #15 21627920
    wosiekpl
    Poziom 21  
    Posty: 1260
    Pomógł: 2
    Ocena: 35
    To zrobie jutro , teraz jest juz pozno , plytka zegara nie ma wsadzonej baterii wiec zawsze zaczyna od tej samej godziny.
    Przyciski tez nie sa podlaczone.

    A czy trudna jest zmiana w oprogramowaniu aby tam gdzie jest UTC pokazywalo tez sekundy ?

    Probowalem sam to zrobic ale pokazuje tylko dwa punkty wiecej

    PS metoda prob udalo sie zamienic = na : HORA UTC:HH:MM ale to w sumie proste . Sekund nie jestem w stanie zaprogramowac

    Ja w pracy nie tyle co programuje co raczej odczytuje programy do PLC Omrona y Rockwell ale to inny jezyk i cos tam pojmuje.
    Arduino nic a nic , jedynie to metoda prob .
  • #16 21627922
    inot
    Poziom 38  
    Posty: 3551
    Pomógł: 439
    Ocena: 798
    wosiekpl napisał:
    A czy trudna jest zmiana w oprogramowaniu aby tam gdzie jest UTC pokazywalo tez sekundy ?

    Muszę przeanalizować kod źródłowy.
  • #17 21627926
    wosiekpl
    Poziom 21  
    Posty: 1260
    Pomógł: 2
    Ocena: 35
    OK


    Myślę , ze dzis dużo mi już pomogłeś.
    Ja teraz będę szedł spać , jak się będzie dało z uwagi na gorąco jakie jest w pokoju

    Tak więc póki co wielkie dzięki


    Ekran aplikacji z odczytami temperatury w różnych pomieszczeniach domu


    Dobranoc

    Dodano po 18 [minuty]:


    Tak mi sie udalo , sekundy zmieniaja sie tak samo


    Ekran LCD z datą 1 stycznia 2000 i czasem lokalnym 01:52:51 oraz UTC 00:52:50
  • REKLAMA
  • #18 21627945
    inot
    Poziom 38  
    Posty: 3551
    Pomógł: 439
    Ocena: 798
    Nie jestem pewien, ale można wypróbować to zmienić.
    Kod: Arduino
    Zaloguj się, aby zobaczyć kod
  • #20 21627964
    inot
    Poziom 38  
    Posty: 3551
    Pomógł: 439
    Ocena: 798
    wosiekpl napisał:
    UTC jest o 2 godziny mniej

    Ale w styczniu obowiązuje czas zimowy.
  • Pomocny post
    #22 21627972
    inot
    Poziom 38  
    Posty: 3551
    Pomógł: 439
    Ocena: 798
    Dobranoc, ale ja jeszcze nie idę spać (zalety rencisty).
    Wracając do programu, ja bym wstawił SPACE po dwukropku, a nie przed (ale to rzecz gustu).
  • Pomocny post
    #23 21628672
    efi222
    Poziom 21  
    Posty: 749
    Pomógł: 12
    Ocena: 1196
    wosiekpl napisał:
    W Madrycie taki jest czas

    UTC 21:28

    Local 23:28

    UTC jest o 2 godziny mniej

    UTC to czas uniwersalny. To czas bez poprawki na strefę czasową (lokalizację geograficzną). Inaczej GMT +0
    Ostatnio krotkofalowiec zamawiał u mnie zegarek właśnie z UTC.
    Zdaje się, że ta grupa posługuje się takim czasem.
  • #24 21630522
    wosiekpl
    Poziom 21  
    Posty: 1260
    Pomógł: 2
    Ocena: 35
    Witam

    Odpiszę tak na szybko. Tak , taki czas używa się w krótkofalarstwie.
    Autorem tego projektu jest hiszpański krótkofalowiec

    Do emerytury trochę mi jeszcze zostało , ok 7 lat. Tylko nie wiem czy dociągnę. Strasze mamy tutaj upały.

    Już zmieniłem ten dwukropek


    Pozdrawiam Wszystkich

Podsumowanie tematu

✨ Dyskusja dotyczy problemów z wyświetlaniem i poprawnym działaniem zegara opartego na Arduino z wyświetlaczem LCD I2C oraz modułem RTC DS3231. Początkowo zegar nie uruchamiał się poprawnie, a wyświetlane były błędne wartości czasu UTC oraz nie działały przyciski podłączone do pinów 9, 11 i 15. Wskazano, że biblioteka RTClib.h służy jedynie do komunikacji z modułem RTC i wymaga poprawnej inicjalizacji sprzętowego zegara (rtc.begin()), co było wcześniej pomijane. Po podłączeniu modułu DS3231 zegar zaczął działać, jednak wyświetlanie czasu lokalnego i UTC było nieprawidłowo rozmieszczone na wyświetlaczu LCD. Poprawiono to przez zmianę pozycji kursora LCD, aby czas lokalny i UTC wyświetlały się na osobnych liniach. Użytkownik uzyskał również możliwość wyświetlania sekund w czasie UTC, modyfikując format bufora czasu na "hh:mm:ss". Dyskusja poruszyła także kwestie różnic między czasem lokalnym a UTC, uwzględniając zmiany czasu zimowego i letniego. Wskazano, że czas UTC jest uniwersalny i nie uwzględnia strefy czasowej, co jest istotne w zastosowaniach krótkofalarskich, do których projekt jest dedykowany. Ostatecznie problem z wyświetlaniem i funkcjonowaniem zegara został rozwiązany, a użytkownik otrzymał wskazówki dotyczące dalszej konfiguracji i estetyki wyświetlania.
Wygenerowane przez model językowy.
REKLAMA