• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 1 głosów - średnia: 5
  • 1
  • 2
  • 3
  • 4
  • 5
Zegar RTC PCF8563 lub inne zasilanie z baterii. Czy są takie dostępne?
#21
(19-10-2022, 17:06)Robson Kerman napisał(a): W ten sposób można napisać nieskończoną liczbę alarmów.
Tylko, że jak piszę sprzęt dla klienta, to upycham też WDG, obsługę błędów, reakcje na nieprzewidziane w programie zdarzenia itp.,  to jak mi zresetuje przed ustawieniem drugiego alarmu, to maszynka obudzi się dopiero jutro z pierwszym alarmem, więc wyskoczy zwiecha systemu i nieobsługiwany error do jutra.
Mój program nie robi jakiś nadzwyczajnych opercacji, wybudzam z wew RTC zwiecha nie nastąpi, timer ma tylko włączyć tryb nocny i nic poza tym w ustalonych godz jeśli z jakiś przyczyn by nie włączył to nic się nie stanie bo procek i tak z wew RTC wybudza sie okresowo robi pomiar idzie spać.
Jak rozumieć te linie co wcześniej pytałem rtc.setAlarm(10, 17, 19, 3);  Czy włączy się codziennie?
 
Odpowiedź
#22
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.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#23
(19-10-2022, 18:12)kaczakat napisał(a): 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.
Dokładnie tak jak piszesz i taka konfiguracja mi fajnie działa, bo testuje. Tylko nie wiem czy jak ustawie
rtc.setAlarm(10, 17, 19, 3);  Czyli zamiast cyfr 19(dzień miesiąca) i 3(dzień tygodnia) nie powinno być zer rtc.setAlarm(10, 17, 00, 00); ? Nie wiem czy wykona się codziennie czy w danym dniu i koniec?
 
Odpowiedź
#24
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);
 
Odpowiedź
#25
(19-10-2022, 19:32)Irvin napisał(a): 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);
Mimo otwartych oczów i linijki rtc.setAlarm(10, 17, 19, 3);  alarm się nie włączył na drugi dzień.  Wink
 
Odpowiedź
#26
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.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#27
(20-10-2022, 23:01)kaczakat napisał(a): 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.
Dzięki za wyjaśnienie bo już się zakręciłem z tymi alarmami strasznie to pokręcone. Spróbuję z tymi wartościami 99.
Jeśli w weekend się z tym nie uporam to zastosuje mój stary niezawodny sposób wtedy nic się na pewno nie zawiesi i 7 alarmów jest do dyspozycji.
 
Odpowiedź
#28
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.
 
Odpowiedź
#29
Spoko że działa, ale to jednak jeden alarm, który można przestawić pierdylion razy Big Grin - tak na wypadek jakby ktoś tu kiedyś zajrzał i nie chciało mu się przeczytać PDF z datasheet.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#30
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.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości