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



Teraz jest 13 sty 2025, o 18:08


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: 1967
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 ]
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ł: Brak zidentyfikowanych użytkowników i 6 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