Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek 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.

rhn 02 Sty 2011 20:34 3104 6
  • #1 02 Sty 2011 20:34
    rhn
    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.

    0 6
  • #2 02 Sty 2011 21:47
    Robert Kaminski
    Poziom 25  

    Można to zrobić na bramce Schmitt'a.

    0
  • #3 02 Sty 2011 21:54
    excray
    Poziom 38  

    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?

    0
  • #4 02 Sty 2011 22:19
    Broznvk
    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.

    0
  • #5 02 Sty 2011 22:29
    rhn
    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ć.

    0
  • #6 02 Sty 2011 22:52
    excray
    Poziom 38  

    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

    0
  • #7 02 Sty 2011 23:18
    rhn
    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 :)

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo