Skocz do zawartości

Zaawansowany zegar


Pomocna odpowiedź

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

Dziękuje🙂

@Belferek masz rację jest dokładniejszy ale na wiele różnych sposobów próbowałem zrobić możliwość ustawiania czasu ale nie mogłem. Pracowałem długo nad tym  modułem i nic nie wykombinowałem. 

Pozdrawiam!

Link to post
Share on other sites

Ja do obsługi DS3231 używam biblioteki Rtc_by_Makuna (dostepna z menadżera bibliotek). Biblioteka dokładnie przedstawiona przez autora - tutaj

Ustawienie czasu tego zegara realizuję tak:

Rtc.SetDateTime(RtcDateTime(_rok,_mc,_dzien,_godz,_min,_sek));  //w _rok, _mc itd. data i czas do ustawienia)

Oczywiście to wszystko po wcześniejszym zaimportowaniu bibliotek, uruchomieniu i2c, sprawdzeniu obecności DS3231. Zegar "reprezentowany" jest przez wcześniej zadeklarowany obiekt Rtc, a deklaruję go tak:

RtcDS3231<TwoWire> Rtc(Wire);

i ... wszystko działa jak należy.
Autor dokładnie opisuje w podanym WIKI sposób korzystania ze swoich bibliotek.

 

Edytowano przez Belferek
  • Lubię! 2
Link to post
Share on other sites

Super projekt. Możesz napisać do czego używasz przekaźnika. Do czego jest przycisk tact switcha oraz przycisk pilota ? Możesz narysować schemat ?

  • Lubię! 1
Link to post
Share on other sites
(edytowany)

Kiedy 5 minut zastanawiasz się po co dwuwymiarowa tablica przy daysOfWeek i dopiero zauważasz, że tam nie ma wskaźnika... 🙂

Jak na taki młody wiek, to gratuluję pasji i projektu.

Jak zawsze muszę mieć swoje "ale" - proponuję poprawić, by nie było pojedynczych cyfr 🙂

char n[3] = {'0', '0', '\0'};

void numToText(char number)
{
    n[0] = '0' + (number / 10);
    n[1] = '0' + (number % 10);
}

Tutaj masz przykładowe rozwiązanie. Da się to zrobić lepiej, ale na początek powinno wystarczyć 😉 Funkcja przetwarza liczbę (0-99) na dwa znaki. Dla liczb < 10 pierwszy znak to '0'.

Edytowano przez H1M4W4R1
poprawka kodu
  • Lubię! 1
Link to post
Share on other sites

Jak już komuś doradzamy, to ja radziłbym uważać na oszczędności w wykorzystaniu pamięci:

10 minut temu, H1M4W4R1 napisał:

char n[2];

Napisy w języku C mają najczęściej \0 na końcu, a w tej tablicy brakuje dla końcowego zera miejsca, więc wbrew nazwie numToText wynikiem nie jest typowy string. Kod może i działa, ale łatwo zrobić błąd i mieć piękne przepełnienie bufora.

  • Lubię! 2
Link to post
Share on other sites
(edytowany)
5 minut temu, Elvis napisał:

Napisy w języku C mają najczęściej \0 na końcu

To akurat odruch - mój kompilator automatycznie to poprawia 😄 Ale zaraz się poprawię 😛 

EDIT:

Znaczy podświetla przepełnienia bufora...  

12 minut temu, ethanak napisał:

Przecież '0' i '0'+0 to jakby to samo...

Nie zawsze... czasem można się nieźle zdziwić np. w C# istniał bug z listami, który potrafił zwrócić, że 1 > 12 😄 O ile pamiętam to było coś z System.Collections.Generics.List`1:Capacity 

Jak coś poprawiłem 😛 

 

Edytowano przez H1M4W4R1
  • Lubię! 1
Link to post
Share on other sites
19 minut temu, H1M4W4R1 napisał:

w C# istniał bug z listami

Nieśmiało przypominam, że to C a nie C#.

 

  • Lubię! 1
Link to post
Share on other sites
6 godzin temu, hashpl napisał:

Super projekt. Możesz napisać do czego używasz przekaźnika. Do czego jest przycisk tact switcha oraz przycisk pilota ? Możesz narysować schemat ?

Dzięki, przekaźnika używałem do sterowania ledami podświetlającymi półkę, po wciśnięciu tact switcha wyświetlały się temperatury tak samo jak przy pomocy pilota. Schematu niestety nie jestem w stanie zrobić, ponieważ nie używam projektu od około roku. Jeśli uda mi się go znaleźć to rozrysuję ale nie chcę nic obiecywać.😉 Widzę ile błędów miał ten projekt ale tak naprawdę robiłem go z kilku innych projektów, które tylko sklejałem w jeden. Teraz pewnie napisał bym ten program inaczej i nie było by w nim tyle błędów🙂 

  • Lubię! 1
Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.