Jak podłączyć wyjście CD 4013 do matrycy klawiatury?

Tutaj mozesz poruszać tematy ogólne powiązane z elektroniką, np. dyskusje na temat podzespołów, układów, zasad ich działania. Czyli można pisać o wszystkim czego nie da się przyporządkować do innych działów.
ODPOWIEDZ
Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Jak podłączyć wyjście CD 4013 do matrycy klawiatury?

Post autor: dondu » 24 maja 2005, 10:17

Witam,

Opis:
Buduję do symulatora FS2004 kokpit w oparciu o mikrokontroler ATmega8. Do niego jest podłączona matryca przycisków (klawiszy) standardowo zorganizowana w kolumny i rzędy. Na przecięciu kolumn i rzędów podpięte są mikroprzyciski. ATmega8 skanuje klawisze i wysyła info przez USB do komputera.

Problem:
Wykonałem tzw. rotary switch (pokrętło które generuje impulsy w czasie kręcenia) w oparciu o rozwiązanie spotykane w myszkach do komputera (wiatraczek, LEDy i fototranzystory). Dodatkowo pokrętło wykrywa w którą stronę jest kręcone. Wykorzystałem do tego przerzutnik typu D (CD 4013) + CD bramki NAND (CD 4011). Rezultat mam dwa sygnały (nazwę je S1 i S2), które generują falę prostokątną w zależności od kierunku kręcenia kółkiem i ilości obrotów. Chciałbym podłączyć je zamiast dwóch przycisków z matrycy w/w klawiatury - S1 jako przycisk nr 1, S2 jako nr 2. I tu mam braki w mojej wiedzy na temat techniki CMOS. Gdyby to było oparte o TTL wyjścia Si i S2 wpiąłbym do baz dwóch tranzystorów, a emitery i kolektory odpowiednio do odpowiedniej kolumny i rzędu (i powinno działać). Czyli wysterowana baza tranzystora powodowałaby zwieranie rządu i kolumny tak jak to robi zwykły przycisk.

A Jak to zrobić w CMOS ? Pewnie jest to proste.
Proszę o "łopatologiczne" wytłumaczenie jak to zrobić, bo z CMOS-ami jestem na bakier.

Pozdrowienia,
Dondu

PS. Czy ktoś wie gdzie można kupić tanie przełączniki o działaniu opisanym wyżej ?

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 24 maja 2005, 12:18

z tymi tranzystorami (wpięcie C i E w matrycę) to może Ci się
sztuczka nie udać, bo emitery niekoniecznie będą na potencjale masy (klaw. matrycowa...) i będą problemy ze sterowaniem,
ale może pomyśl tak:
bierzesz jakikolwiek tani transoptor i jego tranzystor zapinasz równolegle
ze switch-em (S1/S2) (pamiętając o polaryzacji),
diodkę transoptora możesz sterować ze swojego układu, nie wiem czy
cmos zaświeci diodą bezpośrednio, jak coś, dajesz "podpórkę" w postaci
tranzystora npn, w jego kolektor wpinasz led+odpowiedni rezystor...
to Ci da efekt: wysterowana baza => świecąca diodka => wysterowany tranzystor w tr.opt => zwarty klawisz

ja tu widzę dla odmiany inny problem - czasy.
nie wiem jak szybko chcesz tym kółkiem zakręcać, ale licz się z tym
że tak szybkich "naciśnięć" przycisku procesor może nie załapać (to zależy jak często skanuje klawiaturkę, nie?), więc pomiędzy tranzystor
sterujący led-em a Twój układ może wstaw jakiś przedłużacz impulsu...
możesz go zmajstrować na przykład na bazie kostki CD4528 :
http://www.futurlec.com/4000Series/CD4528.shtml
lub czegoś podobnego (nawet na NE555)
i będzie tak, że krótka szpilka z impulsatora pobudzi przerzutnik na dłuższy czas, tak jakbyś nacisnął normalny przycisk

miłej zabawy!
tasza

Awatar użytkownika
AndrzejS
-
Posty: 38
Rejestracja: 04 sie 2005, 19:56

Post autor: AndrzejS » 10 sie 2005, 12:17

Impulsy lepiej byłoby zliczać w liczniku UP/DOWN z odczytem szeregowym (ew równoległym)
Po każdym odczytaniu kasować zawartość licznika.
Możnaby wykorzystać licznik wewnątrz uP ale pozostaje problem zliczania w górę i w dół.
W miarę rozsądnie możnaby wykorzystać przerwanie dla nadchodzącego impulsu,
które wykona bardzo krótki kod:
odczyta stan pinu określającego UP/DOWN
zwiększy lub zmniejszy zawartość zmiennej trzymającej aktulny "stan pokrętła"
W programie głównym poprostu mamy skwencyjny (lub przerwanie może ustawiać dodatkową flagę zmiany) dostęp do zmiennej. Odczytujemy i zerujemy.

Co do rozwiązania Taszy COMS wysteruje standardową diodę w transoptorze.

mariuz
-
Posty: 40
Rejestracja: 30 sie 2005, 13:38

Post autor: mariuz » 03 wrz 2005, 16:23

Hmm... Ja bym poszedł na łatwiznę i kupił fabryczny impulsator :P
impulsatory w AVT
I tutaj chyba wszystkie problemy są rozwiązane mechanicznie :mrgreen: :mrgreen:
Obrócenie gałką w jedną stronę zwiera powiedzmy "S1" a w drugą "S2".
I problem z głowy :)

:oops: nie pomyslałem o długości impulsu :oops:
Na zdjęciu na sronie AVT jest skrócona nota katalogowa :)

ODPOWIEDZ