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



Teraz jest 1 sie 2026, o 21:14


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 1 lip 2016, o 12:18 
Offline
Nowy

Dołączył(a): 02 maja 2016
Posty: 16
Pomógł: 0

Witam. Mam pewien problem, mianowicie nie potrafię prawidłowo napisać programu pod czujkę E18-D80NK, która gdy wykryje ruch, wysyła stan niski, a gdy ruchu nie ma - stan wysoki. Chciałem zrealizować zapalanie diod led właśnie przy pomocy tej czujki, ale pojawił się taki problem, że ledy automatycznie się zapalają i gaszą - i tak w kółko. Wnioskuję, że coś napisałem źle i pewnie funkcja "if" realizuje się sama. Chodzi oczywiście o pin PC3. Zastosowałem tam funkcję: if(!(PINC & (1<<PC3)))
Jednak nie do końca wiem, jak sterować stanem niskim. Domyślam się, że dany pin, pod który jest podłączony sygnał OUT z czujki, powinien być podciągnięty do VCC, dobrze myślę? Poniżej wstawiam cały napisany program. Z góry dzięki za pomoc.

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: 1 lip 2016, o 15:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sie 2013
Posty: 119
Lokalizacja: Cinisi
Pomógł: 12

Witam

Zajrzyj tutaj http://mirekk36.blogspot.it/2012/01/avr ... stawy.html
mozesz rowniez poczytac o obsludze klawiszy, moze w Twoim przypadku to nie jest klawisz ale obsluga bedzie prawie identyczna.

Pozdrawiam

_________________
sig off :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lip 2016, o 16:06 
Offline
Nowy

Dołączył(a): 02 maja 2016
Posty: 16
Pomógł: 0

Tylko, że ja nie wiem czego mam szukać, ponieważ nie wiem, co zrobiłem źle i co powoduje takie zachowanie ledów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lip 2016, o 17:40 
Offline
Użytkownik
Avatar użytkownika

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

Witam, if w 35 linijce jest spełniony ale tylko do linijki 38. W 38 już nie, wiec wyskakuje z ifa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lip 2016, o 17:45 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 224
Lokalizacja: Opole
Pomógł: 24

1.Zmień tego hexa na zapis (1<<nr_portu) lub _BV(nr_portu). Pewnie tutaj coś pomyliłeś.
2. W delay_ms nie można używać zmiennych. Trzeba wpisać liczbę bezpośrednio np. _delay_ms(500);

Trochę mnie poniosło, ale moim zdaniem tak jest czytelniej, poprawiłem kilka rzeczy:

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: 1 lip 2016, o 20:04 
Offline
Nowy

Dołączył(a): 02 maja 2016
Posty: 16
Pomógł: 0

Chciałem tylko dodać, że program działał dobrze, gdy posiadałem czujnik ruchu PIR, który gdy nie wykrywał ruchu miał stan niski, a gdy wykrywał, stan wysoki. Z przyczyn kosmetycznych zamieniłem go na E18-D80NK i wiem, że problem leży tylko po stronie prawidłowego napisania "if'a", z którym właśnie mam problem. Męczę się już z tym programem 2 tyg. jak nie dłużej i już mam dość doszukiwania się co jest grane. Gdyby ktoś potrafił napisać pod tę czujkę warunek, by zapalało mi ledy stanem niskim, byłbym mega wdzięczny.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lip 2016, o 21:40 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 224
Lokalizacja: Opole
Pomógł: 24

A ten program, który ja wrzuciłem ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lip 2016, o 22:03 
Offline
Nowy

Dołączył(a): 02 maja 2016
Posty: 16
Pomógł: 0

Nic się nie zmieniło. Cały czas zapalają się ledy i gaszą - tak jakby czujka cały czas wykrywała ruch. Dodam, że jest w 100% sprawna, sprawdzałem miernikiem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lip 2016, o 22:11 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 224
Lokalizacja: Opole
Pomógł: 24

tam jest chyba potencjometr do regulacji i dioda, która świeci gdy czujnik coś widzi, normalnie powinna być zgaszona. Może widzi ci ściany albo coś innego.

Dodaj może jakiegoś delay`a.

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


Z ciekawości do czego to jest, bo wykonuje się cały czas (PINC1 jest podciągnięty do VCC, czyli tam jest zawsze 1) ;)

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: 2 lip 2016, o 17:12 
Offline
Użytkownik
Avatar użytkownika

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

witam,
przypomnę, funkcja ma sie wykonywać jeżeli
PORTB==0; TAK?
to wykona się tylko do polecenia
PORTB=0X01; !
(czyli tylko do pierwszego polecenia z funkcji rozpalającej, i przeskoczy do else-funkcji wygaszającej)
może się mylę, ale chyba w obu kodazh jest ta sama sytuacja.

------------------------ [ Dodano po: 45 minutach ]

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


rozswietlanie i wygaszanie można by pokombinować z użyciem (przesunięcia bitowego, lub mnożenia przez 2) i (sumy oraz różnicy).

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


taka myśl, pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2016, o 08:01 
Offline
Użytkownik

Dołączył(a): 05 lut 2014
Posty: 252
Lokalizacja: obok Częstochowy
Pomógł: 14

kozak0211 napisał(a):
Domyślam się, że dany pin, pod który jest podłączony sygnał OUT z czujki, powinien być podciągnięty do VCC, dobrze myślę?

Spróbuj bez podciągania.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2016, o 17:37 
Offline
Użytkownik
Avatar użytkownika

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

witam,

opisz co ma się wywołać, jeżeli:
po stanie niskim załączy sie rozswietlanie i zanim się wygasi, ponownie zostanie podany stan niski z czujnika.?(w trakcie rozjaśnisnis lub wygaszania?)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2016, o 16:15 
Offline
Nowy

Dołączył(a): 02 maja 2016
Posty: 16
Pomógł: 0

Witam, sprawa rozwiązana. Okazało się, że czujnik na wyjściu miał spadek napięcia, przez co występowały takie akcje z zapalaniem i gaszeniem. Zastosowałem tranzystor, który wysterowałem i problem zniknął, dodatkowo był to tranzystor PNP, przez co na jego wyjściu gdy czujka wykryje ruch, pojawia się stan wysoki, także wszystkie problemy z programem zniknęły ;D Mimo wszystko dziękuję wszystkim za pomoc.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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