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 10 lip 2025, o 20:05


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
    Autor Wiadomość
    PostNapisane: 21 sie 2016, o 15:02 
    Offline
    Nowy

    Dołączył(a): 29 maja 2016
    Posty: 2
    Pomógł: 0

    Witam, proszę o radę jak podejść do tematu sterowania czasowego żarówką przez przekaźnik. Potrzebuję regulować czas świecenia oraz czas przerwy w świeceniu. Realizowane jest to poprzez dwa przełączniki wieloobrotowe (12 trybów) ze zrobioną drabinką rezystorową na ADC z tą częścią sobie poradziłem (odczyt konkretnych wartości ADC) natomiast nie wiem jak zabrać się za ustawienie czasów jak niżej.

    1) 0s - sterownik wyłączony
    2) 15s
    3) 30s
    4) 45s
    5) 1min
    6) 3min
    7) 5min
    8) 10min
    9) 15min
    10) 20min
    11) 25min
    12) 30min

    Czy da się w jakiś sposób regulować czasem timera sprzętowego od zadanej wartości ADC lub wartości zmiennej? może ktoś przerabiał podobny temat.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2016, o 15:14 
    Offline
    Użytkownik

    Dołączył(a): 26 lip 2015
    Posty: 269
    Pomógł: 34

    Mam pomysł :D zrób sobie timer 100hz i zmienną time_ms time_s i time_min i poprostu dodawaj do tych zmiennych

    jakoś tak to powinno wyglądać :)

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

    być może jest tu jakiś błąd, ale to pewnie dasz radę ogarnąć.. To co tu jest powinno być w przerwaniu 100hz :). I w pętli sprawdzaj czy zmienna time_m jest równa ustawiony twój czas jak tak to wyzeruj timer zrób co trzeba i dalej będzie sobie tykać ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2016, o 16:04 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 sie 2013
    Posty: 3797
    Lokalizacja: Grudziądz
    Pomógł: 143

    wszystko zależy od tego czy potrzebne tobie jest dokładne 20 cz 30 minut czy różnica kilki / kilkunastu sekund nie robi różnicy.

    Jeżeli ma być dokładne to najlepiej użyć np rtc i z niego brac dokładną sekundę wtedy pokusić się można o jego tryb alarm. Rozwiązanie czysto programowe też jest dobre ale musisz liczyć się z tym że timer programowy nie jest dokładny i temperatura otoczenia kwarca również wpływa na jego dokładność.

    Wysłane z mojego Tab2A7-10F przy użyciu Tapatalka

    _________________
    Usługi druku przestrzennego - www.drumik.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2016, o 17:00 
    Offline
    Nowy

    Dołączył(a): 29 maja 2016
    Posty: 2
    Pomógł: 0

    RTC niestety odpada - cały układ jest już poskładany, na szczęście czas nie musi być dokładny co do sekundy. Jeszcze dodam że wykorzystany uC to atmega88 taktowany 8 MHz



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2016, o 19:17 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1978
    Lokalizacja: Lipsko
    Pomógł: 125

    Pomysł z timerem liczącym jakiś interwał jak najbardziej ok i teraz zrób sobie tabelę zakresów adc połączoną z odpowiednią wartością dla licznika, który bęczie odliczał Twój zadany czas. Dodatkowo aby zawsze prawidłowo zaczął odliczać zapamiętuj ostanie wartości adc i gdy będzie znacząca zmiana na tym wejściu to zeruj głowną zmienną licznika (tą która zwiększa się co odliczony interwał).

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2016, o 19:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 sie 2013
    Posty: 3797
    Lokalizacja: Grudziądz
    Pomógł: 143

    jak rtc nie moźe już być a dokładniść co do sek. nie jest istotna to napisz kod bez delay bo on blokuje procek a powolaj do zycia timer ktory ustaw na 1 sek. i w nim odliczaj sekundy-- jak sekundy dojdą do 0 to sprawdz czy minuty == 0 jeżeli tak to zgas swiatlo jezeli nie to minuty-- a sekundy =59 i tak do skutku aż otrzymasz minuty = 0 i sekundy = 0

    a waryościami adc ustawiaj zmienne minuty sekundy

    Wysłane z mojego Tab2A7-10F przy użyciu Tapatalka

    _________________
    Usługi druku przestrzennego - www.drumik.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sie 2016, o 23:35 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2015
    Posty: 1448
    Lokalizacja: okolice Warszawa
    Pomógł: 149

    witam,
    Jeżeli jesteś w stanie ustawić timer wystawiający flagę co 1sek.- to proszę. :D
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    a w pętli głównej można:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    może jeszcze coś w tym stylu do wyłączania i włączania dopisać.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    może jakoś tak :)
    na pewno są lepsze sposoby, ale taki mi przyszedł do głowy. ;)



    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: 7 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Google [Bot] i 9 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