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



Teraz jest 3 gru 2024, o 20:18


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 ]
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
Avatar użytkownika

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

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
Avatar użytkownika

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

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
Avatar użytkownika

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

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 ]
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
Avatar użytkownika

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

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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO