Skocz do zawartości

Podłączenie kilku czujników


matt90

Pomocna odpowiedź

Pytanie co chcesz uzyskać:

1. Możesz sygnały połączyć przez bramki OR - wtedy przerwanie zostanie wykonane przy pierwszym nadchodzącym sygnale (ale dopóki inny sygnał jest "1" kolejne przerwania nie nastąpią).

2. Możesz też wykorzystać bramki XOR - wtedy każda zmiana sygnału wejściowego da zmianę sygnału na wyjściu. Może wystąpić ew. problem jak dwa przerwania zostaną wykonane w idealnie tym samym momencie.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Kolega nie napisał jakie czujniki chce łączyć ? Jeżeli te czujniki są cyfrowe w sensie że można się z nimi komunikować przez jakąś magistrale nie ma problemu, wspomniana bramka OR wystarczy, ale jeżeli to czujniki z wyjściem I/O, nie ma bardzo takiej możliwości, aby użyć tylko jednego wejścia MCU. Chyba że jest dostępny w systemie I²C, wtedy można użyć PCF8574 w nietypowej roli kontrolera przerwań, ponieważ ukąld ten może wykryć zmianę stanu na swoich wejściach i sam zgłosić przerwanie. Resztę robi podprogram, który przepytuje PCFa, w sensie że odczytuje stan jego wejść, i na tej podstawie, rozróżnia poszczególne przerwania programowe. Ta metoda ma nawet jakąś fachową nazwę, ale jej nie pamiętam. Podobnie działa to w procesorach PIC16/18, jest jedno przerwanie, i rejestr(y), znaczników.

Link do komentarza
Share on other sites

czujniki to cyfrowe sharpy, uzywam je do okreslenia z ktorego kierunku wykonany jest ruch, procek zapala odpowiednie diody w zaleznosci od tego czy byl to czujnik polnoc/poludnie/wschod/zachod, dlatego nie moze to byc bramka OR bo procek nie bedzie wiedzial ktory zadzialal i ktora diode zapalic

Link do komentarza
Share on other sites

Jak tylko jeden czujnik w danym momencie może dostać sygnał to OR jest ok. Jak więcej czujników to najlepiej XOR. Oczywiście żeby wiedzieć który czujnik wywołał przerwanie musisz mieć jeszcze podłączone czujniki do innych pinów i w przerwaniu odczytać ich stan / porównać z poprzednim stanem.

Inna możliwość to jakieś urządzenie po I2C czy SPI, ale tutaj znowu musisz mieć odpowiednie peryferia wolne itd.

Link do komentarza
Share on other sites

Jeżeli masz dwa wolne piny, nieważne jakie, dodaj sobie PCF8574, i go użyj jako dodatkowego portu I/O. Sprawdzanie czujników będziesz robił w przerwaniu od jakiegoś Timera, tak że odczytasz stan wejść PCFa, to tzw. metoda z przepytywaniem. Ma pewne wady, ale nie powinny one być zbyt dokuczliwe w twoim przypadku.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.