ATNEL tech-forum https://forum.atnel.pl/ |
|
Klawiatura BCD dziadka Sławka https://forum.atnel.pl/topic20363.html |
Strona 1 z 1 |
Autor: | SylwekK [ 5 mar 2018, o 21:07 ] |
Tytuł: | Re: Klawiatura BCD dziadka Sławka |
Bardzo fajna metoda. Też ją pamiętam ze starych projektów na ttl Najprościej to wyłuskać te trzy bity operatorem AND i mamy gotową liczbę, a następnie używać bezpośrednio lub, np.przez switch/case |
Autor: | SP2LUB [ 5 mar 2018, o 21:42 ] |
Tytuł: | Re: Klawiatura BCD dziadka Sławka |
No właśnie ja tej metody używałem do ustawiania dzielników TTL 74192 w moich syntezerach PLL.. oj fajnie się bawiło z tymi kostkami, cieszyłem się jak dzieciak.. a teraz znowu cieszę się jak dzieciak przy zabawie z mikroprockami i ta stara wiedza ma szanse dostać nowe życie |
Autor: | MirkoT [ 5 mar 2018, o 22:06 ] |
Tytuł: | Re: Klawiatura BCD dziadka Sławka |
SP2LUB napisał(a): a teraz znowu cieszę się jak dzieciak przy zabawie z mikroprockami i ta stara wiedza ma szanse dostać nowe życie I to jest właśnie najfajniejsze |
Autor: | mczarny [ 6 mar 2018, o 07:11 ] |
Tytuł: | Re: Klawiatura BCD dziadka Sławka |
"dziadek Sławek" wymiata |
Autor: | ezgman [ 7 mar 2018, o 07:38 ] |
Tytuł: | Re: Klawiatura BCD dziadka Sławka |
Fajne rozwiązanie, ale tylko dla trzech, czy pięciu klawiszy. SP2LUB napisał(a): z Czterech pinów będziemy mogli mieć 16 klawiszy czyli już lepiej niż klawiatura matrycowa która potrzebuje całego portu. Widzę jedną, ale za to ogromną, wadę tego rozwiązania. Ilość diod.Przy dołożeniu czwartego bitu trzeba dodać 20 diod? Łącznie 32? Ile to miejsca na płytce zajmie? Odrobinę można usprawnić, bo dlaczego nie zrezygnować z diod D1, D4 i D5? Nic nie robią w tym układzie. A z 12 zrobi się 9... W ramach oszczędności miejsca można zastosować coś z tego: https://www.tme.eu/pl/katalog/diody_112 ... A394692%3B Ale gdybym miał zrobić klawiaturę z 16 klawiszami, a miał problem z portami, to pewnie dałbym jakiegoś małego tiny jako kontroler klawiatury. Zaoszczędziłbym na miejscu (a może i na kosztach).... A gdyby klawiszy miałoby być jeszcze więcej, powiedzmy 20, to rozwiązanie z drabinką diod zamienia się w koszmar. |
Autor: | SylwekK [ 7 mar 2018, o 07:46 ] |
Tytuł: | Re: Klawiatura BCD dziadka Sławka |
Idąc w nietypowe rozwiązania można też użyć rejestrów przesuwnych i na trzech linach zrobić w zasadzie dowolną ilość przycisków |
Autor: | SP2LUB [ 7 mar 2018, o 08:55 ] |
Tytuł: | Re: Klawiatura BCD dziadka Sławka |
ezgman napisał(a): Odrobinę można usprawnić, bo dlaczego nie zrezygnować z diod D1, D4 i D5? Nic nie robią w tym układzie. A z 12 zrobi się 9... Czy rzeczywiscie D1, D4, D5 nic nie robia? Pewny jestes? Oczywiscie jest masa rozwiazan z zastosowaniem dodatkowego ukladu scalonego (dedyowanego do taich rzastosowan albo i nie)... ale tez ja nie mowie ze klawisze w kodzie BCD to jedyna sluszna droga. |
Autor: | ezgman [ 7 mar 2018, o 14:59 ] |
Tytuł: | Re: Klawiatura BCD dziadka Sławka |
SP2LUB napisał(a): Czy rzeczywiscie D1, D4, D5 nic nie robia? Pewny jestes? Nie jestem, dlatego chętnie poznam wyjaśnienie ich roli.Schemat jest niekompletny, a etykiety sygnałów nieczytelne, ale widać że: D5 jest podłączone do linii PB4, D1 do PB5 a D4 do PB6 Katody idą zapewne to mikroswitchy. To są jedyne switche które zwierają tylko jedną linię do masy. Reszta powoduje stan niski na więcej niż jednej linii. Wciśnięty switch daje stan niski na podłączonej linii, prąd płynie przez diodę. Mamy, powiedzmy, 0,7V na linii. Zwolniony switch powoduje, że katoda diody wisi w powietrzu, a na linii jest Vcc. Bez diody powinno działać tak samo, tyle, że przy wciśniętym przycisku będzie 0V zamiast 0,7V. A przy zwolnionym i tak końcówka wisi w powietrzu, więc nie ma różnicy. W mojej opinii, diody potrzebne są tylko tam, gdzie jest ich dwie lub trzy podłączone do jednego switcha. Gdzie popełniam błąd? |
Autor: | SP2LUB [ 7 mar 2018, o 17:25 ] |
Tytuł: | Re: Klawiatura BCD dziadka Sławka |
Sama obecność tych diod już sprawia że mają one coś do "zrobienia" Masz rację że schemat jest niekompletny a etykiety nie są czytelne. Jednak wystarczy ten schemat aby przedstawić ideę i pomóc zrozumieć jak funkcjonuje, komuś ktoś nie zna takiego rozwiązania, a internet mu go nie podsuwa. Etykiety w tym momencie nie mają kompletnie żadnego znaczenia, chodzi wyłącznie o ideę klawiaturowania Masz rację że nie widać jak wygląda klawiatura, a rzeczywiście ma to znaczenie gdy chcesz oszczędzać na diodach, ponieważ Twoja sugestia z wywaleniem tych diod jest słuszna, klawiatura będzie działać tak samo. W moim układzie ta klawiatura steruje nie tylko Atmegą128, jest do niej podłączony jeszcze jeden układ będący częścią interfejsu użytkownika. Ten sterownik powstał z potrzeby chwili żeby ratować stare urządzenie które poległo w konfrontacji z zębem czasu Czyli diody mają za zadanie w pewnym sensie izolowanie sterownika od reszty układu. Kolejna kwestia jaką poruszyłeś to priorytety. To prawda że diody zajmują miejsce szczególnie jeżeli są przewlekane, ale nie zawsze priorytetem jest rozmiar jakkolwiek to zabrzmi Czasami po prostu wala się w szufladzie stado diod, a czasami jakieś multipleksery czy inne cosie.. Ja mam tysiące takich diod i z przyjemnością je tam umieściłem. Nie musiałem nic zamawiać i tworzyć dodatkowych kosztów, tym bardziej że PCB zrobiłem sobie tak jak potrzebowałem w rozmiarze który był już uwarunkowany miejscem w istniejącym urządzeniu. Reasumując, diody robią co powinny robić w tym przypadku a sama idea została przedstawiona i mam nadzieję że komuś się przyda. Przydało by się opracowanie jakiejś bardziej eleganckiej metody programowego dekodowania stanów na pinach klawiatury. Przyszła mi do głowy metoda tablicowa, ale ponieważ chciałem mieć możliwość korzystania z dowolnych pinów które czasem zostają na różnych portach, i nie bardzo widzę jak to zgrabnie poskładać żeby na koniec mieć fajną biblioteczkę do takiego twora. Przyglądam się temu rozwiązaniu z Mirkowej biblioteki enkodera.. może jak przyjdą Święta i będzie nieco więcej czasu to postaram się to ogarnąć. Zrobić taką "matrycę" BCD w tablicy i potem przez callbacki obsługiwać to dalej. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |