Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wyłącznik czasowy. Coś do zmiany zbocza opadającego.

02 Sty 2011 20:34 3311 6
  • Poziom 10  
    Chcę użyć przełącznika/przycisku w projekcie opartym o mikrokontroler.
    Do tego potrzebne mi coś do zmiany zbocza opadającego sygnału z tego przycisku na impuls (rzędu kilku µs).

    Czy ktoś wie coś na temat takich układów? Udało mi się wymyślić coś na papierze, ale nie jestem elektronikiem, więc wolę sprawdzone rozwiązania.
  • Poziom 25  
    Można to zrobić na bramce Schmitt'a.
  • Poziom 39  
    Generator monostabilny. 555 albo 74121/123 lub CMOSowe odpowiedniki bądź najprościej kondensator rezystor i przerzutnik schmitta np z bramki 7414.
    BTW> Na jakim procku robisz? I czemu nie możesz tego "załatwić" programowo?
  • Poziom 11  
    Generator monostabilny 555 dla kolegi rhn:

    Wyłącznik czasowy. Coś do zmiany zbocza opadającego.

    Tryb monostabilny
    Działanie układu rozpoczyna się w momencie powstania na wejściu wyzwalającym TRIGGER napięcia niższego od 1/3 napięcia zasilania. Do tego momentu wyjście układu było w stanie niskim i tranzystor wewnętrzny zwierał kondensator
    C do masy. Podanie ujemnego impulsu na wejście wyzwalające powoduje natychmiastowe włączenie wewnętrznego
    przerzutnika i powstanie na wyjściu układu stanu wysokiego. Kondensator
    C przestaje być zwierany do masy i rozpoczyna się proces jego ładowania. Czas
    ładowania określony jest pojemnością C i rezystancją R. Możemy go łatwo obliczyć z wzoru:
    T [s] = 1,1 x R[Ω] x C[F].
    Proces ładowania trwa aż do momentu naładowania kondensatora do poziomu 2/3 napięcia zasilania. Kiedy ten poziom napięcia zostaje osiągnięty, komparator wyłącza przerzutnik wewnętrzny, wyjście układu ustawiane jest w stan niski i kondensator zostaje rozładowany. Układ pozostaje w stanie oczekiwania na kolejny impuls wyzwalający.
  • Poziom 10  
    555 jest blisko tego, co mi potrzeba, przyjrzę się bardziej. Szkoda, że dużo zachodu jest z podłączeniem.

    Nie jestem pewien, czy jasno opisałem, więc jeszcze raz:
    mam przycisk filtrowany RC podłączony do mikrokontrolera. Chcę, żeby zamiast przejścia 1->0 było przejście 1->0->1.

    excray - któryś z AtMega, załatwienie programowe wymagałoby zrezygnowania z zewnętrznych przerwań dla przycisków, czego bardzo nie chcę robić.

    EDIT:
    Broznvk, dzięki! Oszczędziłeś mi trochę czasu na szukaniu konkretów.

    excray - możesz przybliżyć rozwiązanie z 7414? Pasuje mi bardziej ze względu na to, że mam kilka takich przycisków i ograniczone miejsce na płytce. Sam nie potrafię sobie wyobrazić.
  • Poziom 39  
    Strasznie enigmatyczna ta konstrukcja. Nie wydaje mi się żeby nie dało się tego rozwiązać programowo. Po pierwsze dla wejść przerwań możesz sam decydować czy ma reagować na stan czy też na zbocze sygnału a dla pozostałych wejść masz przecież też przerwanie od dowolnej zmiany stanu na wejściach więc chyba coś można wymyślić innego niż zewnętrzna logika. Ale jak to mówią to Twoje małpy i Twój cyrk.

    EDIT>
    Wyłącznik czasowy. Coś do zmiany zbocza opadającego.
    W wersji A) impuls będzie 0-1-0 a w wersji B) będzie 1-0-1. Czas impulsu zależy od pojemności kondensatora i rezystorów R2/R4 w zależności od wersji
  • Poziom 10  
    excray napisał:
    dla pozostałych wejść masz przecież też przerwanie od dowolnej zmiany stanu na wejściach więc chyba coś można wymyślić innego niż zewnętrzna logika.


    Dokładnie w tym miejscu problem - w moim AtMega nie ma PCINT, więc próbuję to obejść sprzętowo. Inaczej bym się nawet nie bawił, ale dwa przerwania (INT0 i INT1) to dość niewiele dla kilku przycisków + sensorów.

    Dzięki za schematy!

    DUŻY EDIT:

    Oryginalny pomysł był taki, żeby brak PCINT zastąpić jednym z przerwań INTx oraz portem ogólnego przeznaczenia. Przyciski itp byłyby podłączone do portu bezpośrednio, a przez diodę każdy do INTx. W ten sposób zwarcie dowolnego przycisku wywołuje ustawienie odpowiedniego bitu na porcie i (po chwili) wywołanie przerwania przez zmianę stanu na INTx.

    Problem: wciśnięcie drugiego przycisku podczas gdy inny jest przytrzymany nie wywołuje przerwania.

    Jedno z rozwiązań to to, co mi podpowiedzieliście - po wywołaniu przerwania sygnał na INTx wraca do poprzedniego i można znów wciskać.

    Rozwiązanie, które przyszło mi do głowy przed chwilą: zamiast podłączyć każdy z przycisków przez diodę do INTx, podłączyć je wszystkie przez jeden zestaw bramek XOR. W ten sposób każda zmiana stanów przycisków zaowocuje zmianą stanu na INTx.

    Szczegóły do dopracowania :)