logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Niezawodność klawiatury rezystancyjnej, macie realne doświadczenie?

bolek 12 Wrz 2024 23:32 555 16
  • #1 21224482
    bolek
    Poziom 35  
    Posty: 4099
    Pomógł: 86
    Ocena: 299
    Z waszego doświadczenia klawiatura oparta na ADC 10 bitów oraz czterech klasycznych (więc zapewne i lipnych) tact switch'ach wciąż będzie pomyłką?.

    Osobiście nigdy tego nie robiłem, wystarczająco drażniły mnie manetki w autach, choć one chyba celowały w większą ilość kombinacji w stosunku do rozdzielczości ADC :)
  • #3 21224510
    bolek
    Poziom 35  
    Posty: 4099
    Pomógł: 86
    Ocena: 299
    >>21224497
    Raczej nie ma tam nic praktycznego w kwestii tego jak to działa po kilku latach. ;/
  • #4 21224543
    rb401
    Poziom 39  
    Posty: 3001
    Pomógł: 750
    Ocena: 983
    bolek napisał:
    Raczej nie ma tam nic praktycznego w kwestii tego jak to działa po kilku latach. ;/


    Trochę dziwnie stawiasz problem. Jeśli cokolwiek ma się popsuć to mikroswitche. I to niezależnie od przyjętej metody odczytu. Czyli kwestia wybrania lepszych gatunkowo czy w ogóle zastosowanie bardziej wytrzymałych np. przemysłowych styków czy wręcz innych rozwiązań przycisków np. hallotronowych. Dużo ma też znaczenia intensywność używania, czynniki środowiskowe itp. .
    Co do metody z ADC to zaletą jest to że kilka klawiszy zajmuje jeden pin mikrokontrolera i może iść sygnał z klawiatury jednym przewodem a jeśli jest w nim ADC to czemu go nie użyć. Ale to chyba koniec zalet tej metody, bo są i wady np. kłopot z interpretacją przy naciśnięciu kilku przycisków na raz.
    Po prostu czasem się stosuje metodę z ADC bo taniej, prościej. A nie że lepiej działa.
  • #5 21224684
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2203
    rb401 napisał:
    Ale to chyba koniec zalet tej metody, bo są i wady np. kłopot z interpretacją przy naciśnięciu kilku przycisków na raz.

    Tu bym się nie zgodził. Jeśli podłączymy przyciski tak, że każdy ma dwukrotnie większą wagę niż poprzedni, to mamy w efekcie zwykły DAC, gdzie kombinacja przycisków zapodaje wartość binarną. W takiej sytuacji nie ma problemu, aby rozróżnić dowolną kombinację wciśniętych przycisków, w przeciwieństwie do klawiatury multipleksowanej, gdzie właśnie musimy robić specjalne kombinacje - diody - aby móc rozróżnić sytuację, w której wciśnięty jest więcej niż jeden przycisk naraz.
    Co do trwałości rozwiązania - jest ona determinowana trwałością elementu mechanicznego, stąd nie różni się od innych rozwiązań.
  • #6 21224778
    bolek
    Poziom 35  
    Posty: 4099
    Pomógł: 86
    Ocena: 299
    Czy dziwnie stawiam problem, to może nie do końca. Switch jak się zdegraduje to jego rezystancja podczas naciśnięcia będzie sięgać stosunkowo dużych wartości i stawiam że większych niż użyte wartości w drabince. Sam nie raz spotkałem się z tym że zmęczone sztuki miały pojedyncze, czy dziesiątki kΩ i był problem nawet z klasycznym odczytem pinu podciągniętego pull up'em. I to mnie właśnie zastanawia, metoda z ADC wysypie się znacznie szybciej niż klasyczny pullup. Drabinkę dobrze by było robić na dużych wartościach co też nie do końca lubi ADC ze względu na swoją impedancję.
  • #8 21224900
    miszcz310
    Poziom 25  
    Posty: 717
    Pomógł: 46
    Ocena: 178
    bolek napisał:
    Z waszego doświadczenia klawiatura oparta na ADC 10 bitów oraz czterech klasycznych (więc zapewne i lipnych) tact switch'ach wciąż będzie pomyłką?.


    4 przyciski i 10bitów. Pytanie w jakich warunkach. Jak będziesz miał dużo pyłów, opiłków, kurzu, jakieś żrące kwasy/opary etc. To nawet najdroższe i najlepsze przyciski "szybko" padną. Pytanie też jak długo ma to działać 5lat? 15lat? Jak często przyciskane, o czystości napisałem, w jakiej temperaturze etc. Producenci w datasheetach podają liczbę wciśnięć, które ma wytrzymać przycisk w danych warunkach.
    Moim zdaniem przy zachowaniu pewnej ostrożności i w miarę typowej aplikacji elementów to powinno przetrwać lata.
  • #9 21225076
    Konto nie istnieje
    Poziom 1  
  • #10 21225729
    rb401
    Poziom 39  
    Posty: 3001
    Pomógł: 750
    Ocena: 983
    tmf napisał:
    Jeśli podłączymy przyciski tak, że każdy ma dwukrotnie większą wagę niż poprzedni, to mamy w efekcie zwykły DAC, gdzie kombinacja przycisków zapodaje wartość binarną. W takiej sytuacji nie ma problemu, aby rozróżnić dowolną kombinację wciśniętych przycisków


    Ale to tylko takie fajne jest w teorii. Praktycznie tolerancja oporników musi być wysoka, by taki przetwornik był monotoniczny czyli metoda miała sens. A poza tym do jako takiego przetwornika droga daleka bo sumujemy prądy nie napięcia, czyli na opornikach napięcie musi być stałe niezależne od kombinacji a to pociąga za sobą konieczność użycia np. sumatora na wzmacniaczu operacyjnym z wirtualną masą. Co prawda robiłem kiedyś taki DAC z klawiszy, i koszmarne było jego "strojenie" ale cel był inny.

    Już lepszy byłby DAC na sieci R-2R ale niestety wymaga styków przełącznych.



    Tak na marginesie tematu oszczędzania pinów, to jest ciekawy układ gdzie tylko czterema pinami dwukierunkowymi odczytuje się aż 21 klawiszy (w porównaniu z czterema w metodzie klasycznej, matrycowej). Ale potrzeba garści diod i odczyt jest bez rozpoznawania naciśnięć kilku klawiszy na raz:
    https://ww1.microchip.com/downloads/en/appnotes/4_012.pdf
  • #11 21225850
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2203
    bolek napisał:
    I to mnie właśnie zastanawia, metoda z ADC wysypie się znacznie szybciej niż klasyczny pullup. Drabinkę dobrze by było robić na dużych wartościach co też nie do końca lubi ADC ze względu na swoją impedancję.

    A klawiatura matrycowa wg ciebie przy takich założeniach się nie wysypie? Masz ten sam problem - są tam pull upy, jeśli rezystancja danej gałęzi znacznie wzrośnie, to też nie rozróżnisz pomiędzy 0 i 1.
    Tak BTW, przy szybkości działania klawiatury, to impedancja ADC jest bez znaczenia, a z kolei rezystancja wejścia jest rzędu dziesiątek Momów. Ograniczeniem dla rezystancji drabinki są raczej zakłócenia.
    grzegorz77xxx napisał:
    Po swoich doświadczeniach, uważam że w przypadku urządzeń zasilanych bateryjnie, gdzie liczy się każdy mA. taka klawiatura jest wielkim błędem.

    Jaka? Oparta na ADC, czy ogólnie klawiatura oparta na switchach? Są różne przełączniki, trzeba dobrać odpowiednie. Tact-switche są raczej projektowane na sporadyczne naciśnięcia. W notach jest wszystko podane, trzeba użyć rozwiązania dostosowanego do problemu.
    rb401 napisał:
    Ale to tylko takie fajne jest w teorii. Praktycznie tolerancja oporników musi być wysoka, by taki przetwornik był monotoniczny czyli metoda miała sens.

    Zależy ile bitów efektywnie chcemy wykorzystać. Np. jak mamy 8-bitowy ADC, wykorzystujemy np. 5 bitów, to mamy 5 przycisków i 3 bity tolerancji, więc wymogi co do rezystorów nie są wielkie. Jeśli ktoś chce podłączyć w ten sposób np. 9-10 lub więcej przycisków to oczywiście życzę powodzenia :)
    rb401 napisał:
    A poza tym do jako takiego przetwornika droga daleka bo sumujemy prądy nie napięcia, czyli na opornikach napięcie musi być stałe niezależne od kombinacji a to pociąga za sobą konieczność użycia np. sumatora na wzmacniaczu operacyjnym z wirtualną masą.

    Możesz to rozrysować, bo jakoś nie widzę tego problemu...
    Co do trwałości - takie rozwiązania są powszechnie stosowane w samochodach, gdzie raczej mamy jedno z najgorszych środowisk i działa to ok.
  • #12 21226165
    Konto nie istnieje
    Poziom 1  
  • #13 21226444
    bolek
    Poziom 35  
    Posty: 4099
    Pomógł: 86
    Ocena: 299
    tmf napisał:
    bolek napisał:
    I to mnie właśnie zastanawia, metoda z ADC wysypie się znacznie szybciej niż klasyczny pullup. Drabinkę dobrze by było robić na dużych wartościach co też nie do końca lubi ADC ze względu na swoją impedancję.

    A klawiatura matrycowa wg ciebie przy takich założeniach się nie wysypie? Masz ten sam problem - są tam pull upy, jeśli rezystancja danej gałęzi znacznie wzrośnie, to też nie rozróżnisz pomiędzy 0 i 1.


    No właśnie ADC wysypie się o wiele wcześniej niż zwykły odczyt przywieranego do masy portu. Może fajnie to działa na stole i zabawach z Arduino, ale jeśli tam dobiera się rezystory dość precyzyjnie i bierze się pod uwagę dryft, to nieznanej jakości switch'e szybko położą temat. Pull up będzie działać z klawiszami które mają kilo omy, ADC przy małej ilości klawiszy, wywali się na poziomie setek omów.

    @grzegorz77xxx mnie przekonał i kończę dyskusje.
  • #14 21226600
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2203
    bolek napisał:
    No właśnie ADC wysypie się o wiele wcześniej niż zwykły odczyt przywieranego do masy portu. Może fajnie to działa na stole i zabawach z Arduino, ale jeśli tam dobiera się rezystory dość precyzyjnie i bierze się pod uwagę dryft, to nieznanej jakości switch'e szybko położą temat. Pull up będzie działać z klawiszami które mają kilo omy, ADC przy małej ilości klawiszy, wywali się na poziomie setek omów.


    Skoro wiesz lepiej, to po co zadajesz pytanie? Ja pomijam, że przemysł samochodowy to powszechnie wykorzystuje, pewnie się nie znają, albo to świadome postarzanie produktów :) Niemniej, wynik zawsze zależy od przyjętych założeń. Jeśli założeniem jest użycie switchy, których wstydzi się nawet "chińska" firma, do tego rezystorów o tolerancji gorszej niż cokolwiek co jest dostępne na rynku, to nie za bardzo jest o czym dyskutować. W normalnym świecie, oba rozwiązania są równoważne, posiadając specyficzne zalety, a co za tym idzie przewagę, w konkretnej sytuacji.
    BTW, nie wiem czy zdajesz sobie sprawę, ale podłączenie switcha pod port IO, to specyficzna sytuacja, równoważna 1-bitowemu ADC. Co powinno dać do myślenia...
  • #15 21226711
    simw
    Poziom 27  
    Posty: 754
    Pomógł: 94
    Ocena: 286
    bolek napisał:
    Może fajnie to działa na stole i zabawach z Arduino,

    Przecież takie zastosowanie klawiatur to jest w prawie każdym sprzęcie audio lat dziewięćdziesiątych, dwutysięcznych. Amplitunery, magnetofony, odtwarzacze CD.
    Oczywiście przyciski się degradują, ale bez przesady. To sprawdzone rozwiązanie.
  • #16 21229087
    rb401
    Poziom 39  
    Posty: 3001
    Pomógł: 750
    Ocena: 983
    tmf napisał:
    Zależy ile bitów efektywnie chcemy wykorzystać. Np. jak mamy 8-bitowy ADC, wykorzystujemy np. 5 bitów, to mamy 5 przycisków i 3 bity tolerancji, więc wymogi co do rezystorów nie są wielkie.



    Problem w istocie nawet nie sięga kwestii jakościowej ADC.
    Po prostu taki składany z oporników DAC według Twojej propozycji, przy długości większej niż gdzieś 3-4 bity sam w sobie jest trudnym zadaniem w praktycznym wykonaniu.
    Zauważ że dla takiego DAC najbardziej krytycznym punktem jest przejście z kombinacji np. 011111 na 100000. Jeśli wymagamy by niezawodnie te dwie sytuacje rozróżnić, to ten wymóg narzuca nam dokładność opornika od najstarszego bitu poniżej ułamka LSB. A jak dojdzie nawet nieduża oporność styku to detekcja kombinacji naciśniętych przycisków się całkowicie przewraca.


    tmf napisał:
    Możesz to rozrysować, bo jakoś nie widzę tego problemu...


    Jeśli chcemy prostoty i zrobimy tak, to DAC będzie niemonotoniczny:
    Schemat przetwornika DAC zbudowanego z oporników i przycisków.

    Jeśli zrobimy to porządniej, to uzyskamy ujemne napięcie na wyjściu np.:
    Schemat przetwornika DAC z przyciskami i rezystorami



    Czyli tak czy inaczej klawiatura analogowa z możliwością odczytu dowolnej kombinacji wciśniętych przycisków, składana z oporności w stosunku potęg dwójki, jest w zasadzie praktycznie kiepskim pomysłem, pomimo teoretycznej atrakcyjności.
  • #17 21234613
    jarek_lnx
    Poziom 43  
    Posty: 22611
    Pomógł: 4178
    Ocena: 6056
    bolek napisał:
    No właśnie ADC wysypie się o wiele wcześniej niż zwykły odczyt przywieranego do masy portu. Może fajnie to działa na stole i zabawach z Arduino, ale jeśli tam dobiera się rezystory dość precyzyjnie i bierze się pod uwagę dryft, to nieznanej jakości switch'e szybko położą temat. Pull up będzie działać z klawiszami które mają kilo omy, ADC przy małej ilości klawiszy, wywali się na poziomie setek omów.
    Rezystancja wadliwego elementu stykowego nie zmienia się w sposób monotoniczny. Sprawdź sam, miernikiem. Naciskając raz za razem uzyskasz inne wartości rezystancji. Mimo szerokiego zakresu możliwych wskazań omomierza, wynik pomiaru przyjmuje tylko dwie wartości:
    sprawny (za każdym razem taka sama niska wartość <1Ω)
    zepsuty (za każdym razem inna wartość, od kilku Ω w górę)
    Nigdy nie widziałem wadliwego styku który miał by kilkaset omów czy kilka kΩ w więcej niż jednym pomiarze.
    Dlatego parametrami układu elektrycznego nie można wydłużyć żywotności wadliwej klawiatury. Trzeba kupować dobrej jakości elementy i nie ma dróg na skróty. Tact-switchy 6x6mm staram się unikać bo często spotykałem nietrwałe.

Podsumowanie tematu

✨ Dyskusja dotyczy niezawodności klawiatury rezystancyjnej opartej na 10-bitowym ADC i czterech taktycznych switchach. Uczestnicy podkreślają, że głównym problemem są mikroswitche, które mogą ulegać degradacji, co wpływa na ich rezystancję i funkcjonalność. Zaletą metody ADC jest oszczędność pinów, jednak pojawiają się wady, takie jak trudności w interpretacji wielu jednoczesnych naciśnięć. Wskazano na znaczenie jakości używanych komponentów oraz warunków pracy, które mogą wpływać na trwałość klawiatury. Uczestnicy dzielą się doświadczeniami, sugerując, że klawiatury oparte na ADC mogą być mniej niezawodne w dłuższym okresie w porównaniu do tradycyjnych rozwiązań.
Wygenerowane przez model językowy.
REKLAMA