Skocz do zawartości

Podłączenie kilku czujników


Pomocna odpowiedź

Napisano

Jak można rozwiązać podłączenie 4 czujników cyfrowych pod wejście przerwań, aktualnie mam wolne tylko jedno takie wejście. Czy konieczna jest zmiana procesora czy istnieje jakiś układ elektroniczny który można tutaj zastosować?

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.

Można by użyć multipleksera.

Możesz rozrysować schemat jak chcesz go użyć żeby 4 czujniki jednocześnie mogły wywoływać przerwania z pomocą multipleksera?

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.

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

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.

Nie mogę jednoznacznie zinterpretować Twojej odpowiedzi ostatniej. matt90, masz dwa wolne piny z przerwaniami, czy ogólnie tylko dwa piny.

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.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...