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



Teraz jest 24 lut 2025, o 14:47


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 
Autor Wiadomość
PostNapisane: 29 mar 2017, o 23:34 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Proszę o pomoc problem polega na tym buduje sterownik automatycznego zapalania i gaszenia po kolei stopni schodów , na górze i na dole będzie bariera podczerwieni która będzie zapalała i gasiła ledy program do sterownika udostępnił mi na forum ‘anshar’ na 8 stopni ja przerobiłem na 16 stopni , wszystko działa bardzo dobrze tylko brakuje mi jednej opcji mianowicie gdy wejdę na pierwszy stopień uruchomię barierę podczerwieni i zejdę z tego stopnia ledy będą się cały czas świeciły czekając aż znowu uruchomię barierę podczerwieni i tu mam problem z dopisaniu kodu mianowicie po jednorazowym uruchomieniu bariery czyli wejściu i zejściu ze stopnia ledy ( świecą cały czas) zgasły by na przykład po 30 sek.

Kod kolegi ‘anshar’ z moją kosmetyczna przeróbka na 16 stopni
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Sterownik będzie obsługiwał 16 stopni a na każdym 30cm taśma led , po sprawdzeniu układu postaram się przedstawić cały projekt .

Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2017, o 06:56 
Offline
Użytkownik
Avatar użytkownika

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

Witam,
Co prawda ciężko mi się wczytać w kod z telefonu,
ale może w momencie załączenia czujnika uruchamiaj timer który wystawia flagę a po 30 sęk ją zeruje,
Pozostalą część programu uzaleznij od stanu tej flagi.
Jezeli flaga to wykonuj, jezeli nie to Diody OFF.
Może tak. ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2017, o 16:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1033
Lokalizacja: Trójmiasto
Pomógł: 190

Możesz zrobić jak kolega wyżej proponuje.
Odpal sobie sprzętowy timer i ustaw tak by tykał co np 1s
Zdefiniuj sobie dodatkową zmienną z operatorem volatile np flaga.
W funkcji do zapalania diod na początku załaduj do zmiennej flaga wartość czasu w sekundach +1 po których diody mają zgasnąć.
W przerwaniu od licznika wstaw:
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 pętli głównej programu wstaw warunek:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Tak więc jak ktoś wejdzie na schodek i zostanie wywołana funkcja zapalenia diod na początku zmienna flaga zostanie załadowana wartością czasu, która to wartość będzie co sekundę pomniejszana o 1 przez przerwanie od timera. Gdy zmienna flaga osiągnie wartość 1 przerwanie przestanie ją modyfikować a pętla główna programu sprawdzi warunek czy flaga równa 1 i wykona operację gaszenia diod a następnie ustawi flagę na 0 przez co zakończy całą operację...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2017, o 23:33 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Cały problem polega na tym że do TIMERów w BB jeszcze nie doszyłem praktycznie zatrzymałem się przed tym rozdziałem kończąc układ sterownika może jak by się dało jakiś łatwiejszy zestaw podpowiedzi .

Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2017, o 23:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Z tego co pamiętam to "męczysz" temat już jakiś czas.
Za wytrwałość, specjalnie dla Ciebie:

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


Mam nadzieję, że się przyda.
Pozdrawiam. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 01:50 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Wiem że marudzę ale chciałbym projekt doprowadzić do końca i wrócić do kolejnych rozdziałów BB, projekt jest już na finiszu po ukończeniu i przetestowaniu chcę go przedstawić w całości z twoim kodem jeśli pozwolisz .Wracając do kodu po skompilowaniu zrobiło się trochę kolorowo no i frytki poniżej zrzuty ekranu.

Obrazek Obrazek Obrazek

W głowie mam kolejny projekt ale najpierw BB do końca i postaram się jak najmiej marudzić .

Pozdrawiam. :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 02:21 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Najwyraźniej nie załadował z jakiegoś powodu "io.h", napewno masz wybranego procka w eclipse?
Jeśli tak, to spróbuj zrobić clean project.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 07:10 
Offline
Użytkownik
Avatar użytkownika

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

Ja jestem za tym żeby normalnie wykonała się procedura zapalania i gaszenia led z tym, że jeśli po drugiej stronie schodów sterownik nie doczeka się sygnału to, np. po minucie stopnie zostaną wygaszone z automatu. Z tego co zrozumiałem tobie zależy na włączeniu jeśli osoba wróci ze schodów, a co jeśli tuż za Tobą będzie szła następna i będzie to odebrane jako... powrót? :-)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 07:47 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Jest jeszcze jeden problem.
A co jeśli jedna osoba będzie szła z dołu a druga z góry?
Czy program jest przed tym zabezpieczony?

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 08:19 
Offline
Użytkownik
Avatar użytkownika

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

@MirkoT, to akurat nie jest wielki problem. Wystarczy aby po wykryciu osoby z drugiej strony zaczęły się tam dodatkowo zapalać stopnie i czas wygaszania od nowa liczyć. To nie jest trudne do realizacji jeśli program pisany jest nieblokująco.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 09:27 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Oczywiście, ale gdy "na dole zapala" i gasi gdy pojawi się sygnał "na górze" tudzież odwrotnie to zonk.
Natomiast zapala gdy sygnał w dowolnym miejscu a gasi po określonym czasie to OK.

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 09:40 
Offline
Użytkownik
Avatar użytkownika

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

Naprawdę nie ma problemu. Wystarczy zrobić sobie cztery funkcje: zapalanie, gaszenie z jednej strony i to samo dla drugiej strony. W momencie gdy aktywowana jest funkcja zapalania to z automatu dezaktywowana jest funkcja gaszenia z drugiej strony. Wszystko można zrobić na jednej tablicy, w której przechowywana jest jasność świecenia każdego schodka.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 12:11 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Po zrobieniu clean project nadal wszystko jest kolorowe wyskakuje błąd.

Obrazek

Poz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 12:26 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

A czy na pewno masz w pliku main.c?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jeśli tak to spróbuj jeszcze odbudować indeksy dla projektu.


Autor postu otrzymał pochwałę

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 12:50 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Najciemniej jest pod latarnią , wszystka zagrało dzięki za podpowiedz.

Poz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 14:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Biorąc pod uwagę słuszne uwagi kolegów wyżej oraz fakt, że będą zastosowane bariery podczerwieni, a nie właczniki, to proponuję takie rozwiązanie:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Gdy podświetlenie stopni jest wygaszone i zaczynamy wchodzić po schodach, stopnie zapalają się od dołu do góry. Wchodzimy na samą górę i po upływie zadanego czasu (opóźnienie np 30 sekund), stopnie powoli gasną od środka do góry i dołu.
Taka sama sytuacja będzie, gdy schodzimy schodami w dół tylko wszystko będzie się odbywało odwrotnie.
Jednak, gdy wchodzimy na przykład schodami do góry, a jednocześnie ktoś zacznie w tym samym czasie schodzić, opóźnienie zliczane jest od początku i stopnie zapalają się również od góry jednocześnie dalej zapalając się od dołu, aż do zapalenia wszystkich stopni. Po upływie zadanego czasu stopnie gasną jak poprzednio.
Nie ma możliwości włączenia i natychmiastowego wyłączenia podświetlenia stopni schodów, podświetlenie to wyłączy się automatycznie.
@Daro68 Możesz zrobić z tymi kodami co Ci się podoba. ;)
Pozdrawiam


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 21:47 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Dziękuje wszystkim za pomoc.

Pozdrawiam.



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

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