Problemy z rezystancyjnym panelem dotykowym...

Witam

Na wstępie - mój problem opiszę na przykładowym programie do rysowania po LCDku :). Jedzie się palcem/rysikiem po LCD no i to samo ma się pojawić na wyświetlaczu. JEśli nie dotykam wyświetlacza, to pojawiają mi się na nim śmieci! Grupy punktów, w miarę stałych miejscach, trochę na prawo od środka, oraz dalej na prawo i trochę wyżej. Problem występuje na dwóch egzemplarzach podobnego wyświetlacza. Oczywiście, mogę z tym walczyć, przez:

- zwiększenie czasu martwego na ustalenie się stanu na wejściu ADC

- wymaganie, aby N kolejnych pomiarów znalazło się w pewnym określonym obszarze, tu mogę regulować N oraz promień R...

Wszystko fajnie, tylko nie potrafię dojść do satysfakcjonującego mnie kompromisu:). Albo są śmieci, albo całość działa za wolno. Jeśli ustawię zbyt wysoką ilość powtórzeń, to mam spore opóźnienie przy "kliknięciu". Jeśli zaś dam małe opóźnienie, ale też mały promień, wówczas ciężko zrealizować przeciąganie palcem po ekranie (wymagany jest bardzo powolny ruch). Nie wiem, czy to wina samego panelu, mojej metody, czy sposobu podłączenia... Generalnie próbowałem:

- zmienić kanał ADC na drugi (ten sam sygnał powinniśmy mieć na X1 i X2, jak i na Y1 i Y2)

- zmieniać polaryzację

- inaczej układać kabelek połączeniowy (całość pracuje na płytce prototypowej). Nic to nie pomagało... Trochę mnie to wkurza, bo sprawa niby banalna, a ciągle mam z tym problemy. Mam telefon z panelem rezystancyjnym (starszy model) i tam to działa świetnie! Czyli ogólnie się da. Tylko nie wiem, czy to wina wyświetlacza, czy mojego algorytmu?? Patrzyłem na gotowce, ale znajdowałem same prymitywne, bez kalibracji nawet i oczywiście tak samo źle to działało... nawet nie umiałem dopatrzyć się w nich kodu, który wykrywa dotknięcie panelu... Może ktoś coś doradzi?? :)...

Reply to
Konop
Loading thread data ...

W dniu 2011-02-17 23:15, Konop pisze: ...

Zgaduję że coś jest nie tak z samym algorytmem albo sposobem dokonywania pomiarów. Dobrze obsłużyć panel rezystancyjny wcale nie jest tak łatwo jakby się mogło wydawać. Polecam lekturę:

formatting link
Kiedyś przerabiałem ten temat tyle że w moim przypadku sporym problemem było uzyskanie precyzyjnych wyników na całej powierzchni ekranu

pozdrawiam

Reply to
Robert Zemła

Użytkownik "Konop" snipped-for-privacy@gazeta.pl napisał w wiadomości news:ijk6m3$3a8$ snipped-for-privacy@inews.gazeta.pl...

Zakładam, że przetwornik to AD7843 albo coś pokrewnego. Czy korzystasz z wyjścia PENIRQ? To chyba najprostszy sposób na detekcję tego, czy panel jest dotykany, czy nie.

Maciek

Reply to
Maciek

Nie, korzystam z wbudowanego w uC LPC2378 przetwornika ADC. Ale to nie powinno mieć istotnego znaczenia - rozumiem, że ucierpi dokładność, ale te "fałszywe" kliknięcia??

Pozdrawiam Konop

Reply to
Konop

Tu głównie piszą o kalibracji... OK, przyda się na pewno, no ale to nie odfiltruje mi zakłóceń, jakie pojawiają się we "właściwym" obszarze pracy... tak mi się przynajmniej wydaje ;)...

Pozdrawiam Konop

Reply to
Konop

No tak :). Y1 do VCC, Y2 do GND. Napięcie sprawdzam na X1 lub X2 (ale tylko na jednej nodze). Analogicznie mierzę współrzędną Y. Problem mam niezależnie, czy włącze rezystory do VCC czy do GND...

Pozdrawiam Konop

Reply to
Konop

Nie no, nie jestem na tyle pomysłowy, żeby robić radio na LPCku ;)... Włączone mam "pull-upy" do VCC na tych pinach... Próbowałem też włączać podciąganie do GND, jak i coś w stylu X1 podciągnięte do VCC, X2 podciągnięte do GND itp... nie pomagało... właśnie nie wiem, może powinienem dać mniejszy rezystor podciągający? W sumie mogę go dać na stałe, nie?

Pozdrawiam Konop

Reply to
Konop

Użytkownik "Konop" snipped-for-privacy@gazeta.pl napisał w wiadomości news:ijk6m3$3a8$ snipped-for-privacy@inews.gazeta.pl...

Najszybciej i niedrogo, specjalizowany interface do paneli dotykowych rezystancyjnych np. TSC2046

Roman F

Reply to
Infotank

No tak, ale to może by się udało obejść kalibracją... choć - wtedy, to przstałoby to być liniowe... no to to jednak zły pomysł ;)...

Hmmm... ok, spróbuję później Twoją metodą i dam znać... Może faktycznie to będzie dobry pomysł. Pomierzę jakie mam napięcia w takiej konfiguracji gdy dotykam panelu i gdy tego nie robię ;)...

Nie pamiętam teraz jaki jest pull-up w LPC :(...

Pozdrawiam Konop

Reply to
Konop

OK, zrobiłem prawie tak jak napisałeś i działa!!! Moje modyfikacje to:

- do GND zwieram obie końcówki Y

- stan na pinie X+ sprawdzam co 5ms

- jeśli w 2 kolejnych próbach stan jest niski, rozpoczynam pomiary, pomiary wykonuję na przemian ze sprawdzeniem stanu "cygrowo"

- odczytaną wartość uważam za poprawną, jeśli przed pomiarem jak i po stan na pinie X+ jest niski.

- jeśli którekolwiek sprawdzenie stanu wykazało stan wysoki, wszystko wraca do punktu wyjścia ;)...

Stoi już to ładnych kilka minut i nic, żadnych "śmieci". Rysuje się za to ładnie!! Teraz czas na kalibrację!! :)... W tej kwestii też możesz coś polecić? O linku z początku dyskusji pamiętam ;)...

Reply to
Konop

Dobra, teraz się wziąłem za kalibrację, skorzystałem z tego kodu "wprost"... i niespodzianka, nie działa za dobrze... Wszystko jest jakieś poprzesuwane (łatwo wyjechać poza obszar ekranu), i odwrócone (ruch w lewo rysuje mi linię w prawo, ruch w górę - linię w dół itp). Pewnie gdzieś trzeba zmienić - na + czy coś, ale ciężko to teraz znaleźć... Korzystałeś może z tego kodu? Coś w nim zmieniałeś??

Reply to
Konop

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.