Liczba postów: 2,375
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
Nie bardzo rozumiem, jak chcesz ustawić alarm codziennie na 19:05 to tak ustawiasz i on nie zadziała raz, tylko dopóki będzie aktywny, w tym sensie masz dużo alarmów. Tylko by zadziałał ponownie to softem musisz klapnąć we flagę by uruchomił się znowu przy kolejnej 19:05.
Inaczej, jeśli uC zostanie wybudzony o 19:05, to teraz kasujesz ten alarm i ustawiasz 05:33.
I analogicznie o 5:33 przestawić na 19:05.
Ale nie da się ustawić jednocześnie 19:05 i 5:33, bo nie ma tylu komórek pamięci w tym RTC.
Liczba postów: 67
Liczba wątków: 1
Dołączył: Aug 2018
Reputacja:
7
Nie bawiłem się nigdy w alarmy, z opisu wynika, że jak dana komórka jest nieustawiona, to nie jest brana po uwagę, czyli program nie sprawdza czy jest jakiś określony dzień miesiąca, rok, dzień tygodnia, jeśli w alarmie go nie ustawiłeś. Ale jak ustawisz 00 to jest to ustawienie na 00.
Ale jak otworzysz przykład, i oczy:
* 99 = no alarm value to be set
*/
rtc.setAlarm(16, 99, 99, 99);
Liczba postów: 2,375
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
Bo nie tak miała wyglądać linijka, masz przykładową rtc.setAlarm(16, 99, 99, 99);, co oznacza 99, jaka to godzina, dzień tygodnia?
W bibliotece do DS3231 jest to zupełnie inaczej rozwiązane, trzeba wybrać wartości bitowe jako dodatkowe parametry w funkcji ustawiającej godzinę alarmu, ale w tej jest taki opis, by wstawić 99 gdy wartość ma być ignorowana.
Czy wtedy zadziała? Testuj, ja dopiero w trzeciej bibliotece znalazłem jak ustawić alarmy tak by to zadziałało. I jeszcze sporo czasu poszło na to, by to faktycznie zrobić jak trzeba.
Liczba postów: 128
Liczba wątków: 17
Dołączył: Jul 2019
Reputacja:
5
23-10-2022, 11:16
(Ten post był ostatnio modyfikowany: 23-10-2022, 11:32 przez brendy.)
Udało się sukces. Przepisałem funkcje i timer śmiga, aż miło 2 alarmy mam to czego chciałem. Myślę, ze jest temat ciekawy zakres napiecia, mały gabarytowo, mały pobór prądu i robi co trzeba o dokladnej godz i co najważniejsze tani i działa bezproblemowo z nową serią tiny.
Liczba postów: 2,375
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
31-10-2022, 03:14
(Ten post był ostatnio modyfikowany: 31-10-2022, 03:56 przez kaczakat.)
Kupiłem ten zegarek, podłączyłem baterię CR1220, w zwykłym stanby bez atakowania go komunikatami z Arduino pobór prądu ma 25-26uA, mniej niż DS3231, ale nie urywa nic w porównaniu . Pomiar zrobiony multimetrem, na granicy zakresu, więc może być +/- 100%. Zakładając pojemność CR2012 typowo 35mAh, to też nie starczy na rok bez zasilania. Vcc 4.7V, przy 3.3V spadło do 3.3uA, bez alarmów.
Pomyślałem że może rezystory podciągające, 2 do I2C, i trzeci do INT, to już 3x5/5k=3uA, ale rezystorów to w sumie nie ma na module, pewnie są wewnętrzne.
Przywróciłem temat na wypadek jakbyś chciał dodać swoje spostrzeżenia po dłuższym okresie używania.
Edit:
Po włączeniu alarmu na zgodność minut pobór prądu spadł do 1.2uA przy zasilaniu z 3.3V, może czerpie prund z pinu INT gdzie jest 4.7V? Zgłupiałem...
Edit2:
Potwierdziłem, że pobór prądu przez VCC spada z 3,3 do 1.2uA gdy INT podłączony do pinu 3, a pin 3 ma ustawione INPUT_PULLUP, pasożytuje, ale całościowo prądu mniej przez to raczej nie bierze. A po wyłączeniu INPUT_PULLUP prąd nawet rośnie o 4uA, płynie z zegarka przez INT do pinu 3 ustawionego na INPUT.
Ale jak podłączyłem multimetr pod pin 3 w szereg to nie widzi żadnego prądu, co jest logiczne, skoro wejście jest w wysokiej impedancji. Nie wiem o co mu chodzi.