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



Teraz jest 25 maja 2026, o 04:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 16 kwi 2015, o 16:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 mar 2014
Posty: 197
Lokalizacja: Kielce
Pomógł: 3

Witam. Mam straszny problem z napisaniem warunków do sterowania mojego urządzenia. Urządzenie jakim chce sterować to napowietrzacz akwarystyczny.

Założenie jest proste, dwie zmienne jedna od czasu pracy druga od interwału czyli spoczynku urządzenia. Nie mam w ogóle pomysłu jak do tego podejść, siedzę już pare godzin i nic :( Wpadłem na pomysł, żeby zrobić coś na zasadzie jak u Pana Mirka w BB przy obsłudze temperatury.

Do celów testowych stworzyłem poniższy kod, wartość cmm zwiększam przyciskiem by obserwować co się dzieje. Wartość 5 wstawiłem na sztywno przy założeniu że czas pracy urządzenia to 5 sekund i czas spoczynku też 5 sekund. A przecież nie zawsze będą takie same czasy, raczej będą się różnić np. Czas pracy 20 sekund a czas spoczynku 12 sekund. Poprostu będą to zmienne które będzie można zmieniać.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Kod, który wyżej podałem działa tak że doliczam do 5 zapala diodę już przy 6 ją gasi kolejno zapala przy 10. No nic dziwnego czysta matematyka wszystko działa tak jak należy. No ale niestety nie tak jakbym chciał.

Chodzi o to, że nie umiem albo nie wiem którą drogą pójść.
Rozumiem kod, który napisałem tak dla jasności. Chodzi mi o to czy w ogóle w takie rozwiązania mam iść.

Bardzo proszę o wskazówki jak można rozwiązać sterowanie takim urządzeniem.

Pozdrawiam.

_________________
BlueBook



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2015, o 17:33 
Offline
Użytkownik

Dołączył(a): 18 kwi 2013
Posty: 183
Lokalizacja: Kraków
Pomógł: 30

Moim zdaniem można by to zrobić w następujący sposób. Po pierwsze konfigurujesz sobie jakiś timer tak aby wywoływał przerwanie co 1 sekundę (bo rozumiem, ze czasy działania i przerwy będa nastawiane w sekundach).
Zarys programu mógłby wyglądać następująco:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2015, o 14:54 
Offline
Użytkownik
Avatar użytkownika

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

A po co tak skomplikowanie ?

czas_calkowity = czas_zalaczenia + czas_wylaczenia;

Rozwinę to jak będe przy kompie bo ciezko pisac z telefonu.

Namazane ze smarta.


Ok jestem chwilowo przy komuterze więc napiszę jak ja to widzę:

Tworzysz sobie zmienną w timerze programowym zwaną timer_licz_sekunda


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



Następnie w funkcji lub pętli głównej programu robisz sobie to tak:


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

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



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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