Pytanie:
Dobry obwód dla dużej liczby wejść przycisków?
Brad
2013-09-29 02:47:34 UTC
view on stackexchange narkive permalink

Planuję zbudować przyjaznego dzieciom „uniwersalnego pilota”, aby dzieci mogły włączać i wyłączać niezliczone urządzenia sterowane na podczerwień za pomocą jednego lub dwóch łatwych naciśnięć ...

Pilot będzie mieć może 20 dużych, masywnych przycisków, które po naciśnięciu wysyłają wiele sygnałów podczerwieni do wszystkich niezbędnych urządzeń, aby, powiedzmy, włączyć kanał dla dzieci, skonfigurować Wii itp., itd ...

Większość przycisków zostanie ułożona we wzór siatki, ale niektóre mogą być używane do poruszania się w górę / w dół / w lewo / w prawo, enter itp ....

Użyję Arduino Pro Mini lub Uno jako uC.

Czy są jakieś sprytne sposoby na połączenie tych przycisków? Obwód sieciowy? Wejścia analogowe z różnymi rezystorami między każdym przyciskiem? Układ scalony, który ułatwi pracę?

Trzy odpowiedzi:
Passerby
2013-09-29 02:57:16 UTC
view on stackexchange narkive permalink

Zasadniczo wymieniłeś je wszystkie.

  1. Macierz x wierszy i y kolumn. Potrzebujesz pinów x + y.

    Matrix

  2. Cyfrowy układ scalony ekspandera GPIO, najlepiej z przerwaniem. Dostępne są I2C, SPI, a nawet Serial. Kołki przerwań umożliwiają odczyt przerwania zamiast odpytywania. Musisz mieć sprzętowe I2C / SPI / UART lub dodać kod oprogramowania. To podejście jest stosowane głównie wtedy, gdy potrzebujesz znacznie więcej GPIO, niż masz dostępne w głównym mikrokontrolerze. W tym momencie zasadniczo nadal używasz opcji 1, 3 i 4 lub bezpośredniego jednego przycisku na pin.

  3. Resistor Ladder. Potrzebujesz ADC i ciągłego odpytywania. Lepiej jest podzielić się na kilka podobnych grup na wielu kanałach ADC, ale jeśli naprawdę potrzebujesz, możesz utworzyć dużą 20-przyciskową.

    enter image description here

  4. Charlieplexing. Jak macierz multipleksowana (nr 1), ale z \ $ N \ times (N - 1) \ $ , gdzie \ $ N \ $ to liczba użytych pinów. Wymaga tylu diod, co przycisków, więc zmieniasz liczbę pinów dla diod. Możesz jednak użyć diod LED.

enter image description here

W większości przypadków # 1 jest najpowszechniejszą metodą. Każdy telefon z klawiaturą lub telefonem z wybieraniem tonowym, jakiego kiedykolwiek używałeś, 1000 do 1, byłby z niego korzystny. Do diabła, używają go nawet telefony komórkowe (konkretnie Nokia 5110, którą znam). Dla 20 przycisków matryca 4x5 zajmie tylko 9 pinów, więcej niż wystarczająco.

Używanie diod podwaja liczbę obsługiwanych przycisków w porównaniu z brakiem diod, ale nawet bez diod można obsłużyć więcej przycisków niż przy standardowej matrycy. Dużym ograniczeniem tego stylu multipleksowania jest to, że nie ma jednego stanu, w którym można umieścić piny I / O, które zagwarantują, że naciśnięcie dowolnego przycisku spowoduje zmianę.
@supercat tak, wymaga odpytywania.
Jeśli nie wiadomo, który klucz powinien zostać przetworzony jako następny, wymagane jest odpytywanie. Jeśli aplikacja pozwala zignorować wszystkie klawisze do momentu wciśnięcia określonego klawisza (lub jednego klawisza z pewnych małych zestawów), można pozostawić kołki skonfigurowane do wykrywania tego / tych kluczy.
Możliwe jest również połączenie # 1 i # 3 - użyj drabinki rezystorów między pinem 1,3,5 i GND oraz oddzielnej drabinki rezystorów między 2,7,6,4 i jednym pinem ADC.Następnie kolejny rezystor między tym pinem ADC a + 5V.Będziesz musiał ustalić, których rezystorów zamierzasz użyć i jaki wynik uzyskasz, aby rozłożyć odpowiedzi tak równomiernie, jak to możliwe, między 0 a 5 woltami, zoptymalizowanymi pod kątem najmniejszej różnicy, która jest tak duża, jak to tylko możliwe.Zbuduj swój obwód i zmierz wyniki.
John R. Strohm
2013-09-29 04:17:54 UTC
view on stackexchange narkive permalink

Texas Instruments produkuje koder klawiatury i2C. Montaż powierzchniowy. Nie ma nic prostszego.

Ignacio Vazquez-Abrams
2013-09-29 03:16:45 UTC
view on stackexchange narkive permalink

Układ scalony, który ułatwi pracę?

Zdecydowanie.

LM8330 I / O - Expander and Keypad Controller to dedykowane urządzenie zaprojektowane do odciążenia procesora hosta od skanowania klawiatury adresowanej macierzowo oraz do zapewnienia elastycznych i uniwersalnych, programowalnych funkcji wejścia / wyjścia hosta. Trzy niezależne wyjścia timera z modulacją szerokości impulsu (PWM) zapewniają dynamiczną modulację jasności diod LED.

Komunikuje się z procesorem hosta poprzez interfejs szeregowy ACCESS.bus kompatybilny z I 2 C . Może komunikować się w trybie standardowym (100 kHz) i szybkim (400 kHz) tylko w trybie slave.

Dzięki temu prawdopodobnie możesz uciec od używania ATtinyX5 zamiast ATmega.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...