Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 9 cze 2025, o 16:32


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
    Autor Wiadomość
    PostNapisane: 11 wrz 2017, o 17:17 
    Offline
    Nowy

    Dołączył(a): 11 wrz 2017
    Posty: 11
    Pomógł: 0

    Witam,
    Mam problem z użyciem funkcji zapisu do pamięci arduino. Otóż mam sterownik czasu działąnia kompresora, na wyświetlaczu wyświetla się czas który zmniejsza się o 10 sekund jednym przyciskiem bądź zwiększa używając drugiego, trzeci przycisk służy do zatwierdzenia zmiany. Chciałbym żeby po wciśnięciu przycisku OK czas zapisywany byl od EEPROM'u ale niestety nie wiem jak to zrobić :(
    Aktualnie po uruchomieniu arduino (UNO) wyświetla sie napis "start odliczania" i odliczanie idzie od 15:23
    Mógłby ktoś pomóc ?

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 wrz 2017, o 17:38 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    zapoznaj się z :

    http://arduino.cc/en/Reference/EEPROMRead

    http://arduino.cc/en/Reference/EEPROMWrite

    ------------------------ [ Dodano po: 4 minutach ]

    musisz pamiętac że zapisujesz wartość do określonej komórki od 0 do 255
    każda komórka to jeden bajt czyli 8 bitów

    wiec jak zapiszesz coś ...

    np: wartość 255 do komórki 1

    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    to odczytujesz:

    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    jasne ??

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 wrz 2017, o 18:16 
    Offline
    Nowy

    Dołączył(a): 11 wrz 2017
    Posty: 11
    Pomógł: 0

    Odpis i zapis jest "jasny " ( wiem o co chodzi) , nie umiem sobie własnie poradzić z tą konwersją minut i sekund na bajty nie mam pojęci jaka się wziąć za to. Układ będzie pracował w zakresie od 1-5 minut.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 wrz 2017, o 18:35 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    możesz zapisywać jako wartość ms -- tylko musisz wtedy uzywać zapisu wartości większych od 255 w kilku bajtach zależnie od potrzeb ....
    albo zapisywać fizycznie wartość min np 1 - 2 - 3 ... 5
    a w programie sobie zienna np eepwar1 = 1 // 1 min

    eepwar1 = EPROM.read(1);
    minuta = 59999 + eepwar1 ;

    i dalej już z górki bo min = 60000 ms :)
    to tylko przykład

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 wrz 2017, o 20:20 
    Offline
    Użytkownik

    Dołączył(a): 14 sie 2016
    Posty: 905
    Pomógł: 39

    A nie szybciej zapisać czas w sekundach na góra 3 komórkach?

    Wysłane ze srajfona.

    _________________
    Moje porady są błędne,nie czytać,zbanować od razu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 wrz 2017, o 20:26 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Harry napisał(a):
    A nie szybciej zapisać czas w sekundach na góra 3 komórkach?

    oczywiście ... jest kilka tysięcy rozwiązań .... :) a ja tylko próbuję zmusić autora do myslenia :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 wrz 2017, o 20:37 
    Offline
    Użytkownik

    Dołączył(a): 14 sie 2016
    Posty: 905
    Pomógł: 39

    Domyślam się :)
    Teraz dopiero policzyłem, że te moje 3 komórki wystarczą na ponad 194 dni :P

    Wysłane ze srajfona.

    _________________
    Moje porady są błędne,nie czytać,zbanować od razu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 wrz 2017, o 07:32 
    Offline
    Nowy

    Dołączył(a): 11 wrz 2017
    Posty: 11
    Pomógł: 0

    Sun uwielbiam te Twoje zgadywanki ;) fajnie zachęcają do myślenie. Ale możesz mi powiedzieć czemu minuta = 59999+ wartość zapisana ? Kurde nie mogę sobie jakoś wyobrazić żeby zapisać minuty i sekundy ; ( czy da się zrobić tak aby dodać zmienna sekundy i minuty, potem żeby to co ustawiłem za pomocą przycisków zapisać właśnie do tych zmiennych (digitalWrite) a następnie to zapisać do EEPROM'U ?

    Wysłane z mojego GT-I9305 przy użyciu Tapatalka



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 wrz 2017, o 08:05 
    Offline
    Użytkownik

    Dołączył(a): 23 kwi 2016
    Posty: 58
    Pomógł: 9

    Proponuję zainteresować się dwiema funkcjami : EEPROM.put (), EEPROM.get ().
    Jedna zapisuje jakiekolwiek dane do pamięci, a druga jest do odczytu tychże danych:)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 wrz 2017, o 16:59 
    Offline
    Nowy

    Dołączył(a): 11 wrz 2017
    Posty: 11
    Pomógł: 0

    Tylko problem polega na tym że w tych funkcjach używa się typów float :/ a u mnie jest int. Kurde nie mam zielonego pojęcia jak to ugryź żeby było oki.

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    po zrobieniu czegoś takiego czas liczy od 15:32 po naciśnięciu przycisku ok :(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 wrz 2017, o 17:43 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Jankoss napisał(a):
    Ale możesz mi powiedzieć czemu minuta = 59999+ wartość zapisana ?



    hehehe.... bo minuta = 60000ms jako że uprościłem do wartości 1 jedną minutę , itd ...
    zostaje nam odczytać z eeprom wartość 1 co ma sie nijak wiec dodajemy do 1 brakującą ilość ms czyli 59999 co nam w efekcie da
    60000ms czyli 1min :)

    w sumie tak dla jaj ... ale wymusiło nieco myślenia :)

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 wrz 2017, o 03:15 
    Offline
    Użytkownik

    Dołączył(a): 14 sie 2016
    Posty: 905
    Pomógł: 39

    Jankoss, tak na przyszłość - nie musisz wrzucać cały czas całego kodu, tylko ten fragment który sprawia trudności. Niektórzy przeglądają forum z komórki, a na nich kod się nie zwija ;)

    A co do twojego problemu, to musisz się zastanowić jak rozdzielić czas, albo sprowadzić go do sekund i wtedy zapisać.
    Co prawda to dział rybny, ale narazie dostajesz tylko wędkę ryby nie dostaniesz, bo wtedy nic nie wyniesiesz z lekcji ;)

    Wysłane ze srajfona.

    _________________
    Moje porady są błędne,nie czytać,zbanować od razu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 wrz 2017, o 08:00 
    Offline
    Nowy

    Dołączył(a): 11 wrz 2017
    Posty: 11
    Pomógł: 0

    Kurde no nie mam pojęcia jak zapisać ten czas w EEPROM ... czarna dziura w głowie :(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 wrz 2017, o 17:43 
    Offline
    Użytkownik

    Dołączył(a): 14 sie 2016
    Posty: 905
    Pomógł: 39

    A jak próbowałeś?

    _________________
    Moje porady są błędne,nie czytać,zbanować od razu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 wrz 2017, o 08:03 
    Offline
    Nowy

    Dołączył(a): 11 wrz 2017
    Posty: 11
    Pomógł: 0

    Próbowałem według poradników i gotowych rozwiązań w z zapisem czasu w arduino. Tworzylem nowa strukturę Time a w niej :
    Byte minute;
    Byte second;
    I kombinowalem jak zapisać równanie / funkcje. Ale za każdym razem arduino na wyświetlaczu pokazywało 15:23 i albo nie dało się niżej zejść z czasem, albo zaczynało liczyć zaraz po zasileniu arduino.
    Próbowałem też robić tak że zapisywać ten czas do pamięci a następnie kombinowalem żeby tą nową zmienna zapisać w takiej formie aby można było zapisać do EEPROM'U ale za każdym razem albo błąd przy kompilacji występował albo na wyświetlaczu pojawiały się "krzaki".
    Nie chce w 100% gotowego rozwiązania to faktycznie wtedy zero nauki z tego będzie.


    Wysłane z mojego GT-I9305 przy użyciu Tapatalka



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 paź 2017, o 12:01 
    Offline
    Nowy

    Dołączył(a): 11 wrz 2017
    Posty: 11
    Pomógł: 0

    Nie ma pojęcia jak to zrobić tak aby działało :/ mókłby ktoś pomóc ..... ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO