RTV forum PL | NewsGroups PL

Jak poprawić działanie rezystancyjnego panelu dotykowego w projekcie LCD?

Problemy z rezystancyjnym panelem dotykowym...

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak poprawić działanie rezystancyjnego panelu dotykowego w projekcie LCD?

Konop
Guest

Thu Feb 17, 2011 11:15 pm   



Witam

Na wstępie - mój problem opiszę na przykładowym programie do rysowania
po LCDku Smile. 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?? Smile...

--
Pozdrawiam
Konop

Robert Zemła
Guest

Fri Feb 18, 2011 12:26 am   



W dniu 2011-02-17 23:15, Konop pisze:
....
Quote:
Może ktoś coś doradzi?? Smile...


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ę:
http://www.analog.com/static/imported-files/application_notes/AN-1021.pdf Kiedyś
przerabiałem ten temat tyle że w moim przypadku sporym problemem było
uzyskanie precyzyjnych wyników na całej powierzchni ekranu

pozdrawiam

Maciek
Guest

Fri Feb 18, 2011 8:30 am   



Użytkownik "Konop" <konoppo@gazeta.pl> napisał w wiadomości
news:ijk6m3$3a8$1@inews.gazeta.pl...
Quote:
Witam

Na wstępie - mój problem opiszę na przykładowym programie do rysowania po
LCDku Smile. 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!

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

Maciek
Guest

Fri Feb 18, 2011 9:55 am   



Użytkownik "Konop" <konoppo@gazeta.pl> napisał w wiadomości
news:37e6813e-e7e7-4baf-9dfe-ec4e06e43a7d@l18g2000yqm.googlegroups.com...
On 18 Lut, 08:30, "Maciek" <for...@interia.pl> wrote:
Quote:
Użytkownik "Konop" <kono...@gazeta.pl> napisał w
wiadomościnews:ijk6m3$3a8$1@inews.gazeta.pl...
(...)


Quote:
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??

A w jaki sposób wykrywasz kliknięcie? Rozumiem, że _jedna_ gałąź (np. Y- lub
Y+) jest podłączona do GND lub VCC, a na drugiej (X+ lub X-) sprawdzasz
napięcie?

Maciek

Konop
Guest

Fri Feb 18, 2011 10:36 am   



On 18 Lut, 08:30, "Maciek" <for...@interia.pl> wrote:
Quote:
Użytkownik "Konop" <kono...@gazeta.pl> napisał w wiadomościnews:ijk6m3$3a8$1@inews.gazeta.pl...

Witam

Na wstępie - mój problem opiszę na przykładowym programie do rysowania po
LCDku Smile. 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!

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.

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

Konop
Guest

Fri Feb 18, 2011 10:47 am   



Quote:
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 :http://www.analog.com/static/imported-files/application_notes/AN-1021...Kiedy
przerabia em ten temat tyle e w moim przypadku sporym problemem by o
uzyskanie precyzyjnych wynik w na ca ej powierzchni ekranu

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 Wink...

Pozdrawiam
Konop

Maciek
Guest

Fri Feb 18, 2011 10:51 am   



Użytkownik "Konop" <konoppo@gazeta.pl> napisał w wiadomości
news:04c8a044-8252-4e28-930a-8bc0808377f1@x11g2000yqc.googlegroups.com...
On 18 Lut, 09:55, "Maciek" <for...@interia.pl> wrote:
Quote:
U ytkownik "Konop" <kono...@gazeta.pl> napisa w wiadomo
cinews:37e6813e-e7e7-4baf-9dfe-ec4e06e43a7d@l18g2000yqm.googlegroups.com...
On 18 Lut, 08:30, "Maciek" <for...@interia.pl> wrote:> U ytkownik "Konop"
kono...@gazeta.pl> napisa w
wiadomo cinews:ijk6m3$3a8$1@inews.gazeta.pl...

(...)

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??

A w jaki spos b wykrywasz klikni cie? Rozumiem, e _jedna_ ga (np. Y- lub
Y+) jest pod czona do GND lub VCC, a na drugiej (X+ lub X-) sprawdzasz
napi cie?

No tak Smile. 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...

Zaraz... Więc jeżeli nie naciskasz, to X1 (lub X2) wisi w powietrzu? Dobrze
zrozumiałem?

Maciek

Konop
Guest

Fri Feb 18, 2011 11:25 am   



On 18 Lut, 09:55, "Maciek" <for...@interia.pl> wrote:
Quote:
U ytkownik "Konop" <kono...@gazeta.pl> napisa w wiadomo cinews:37e6813e-e7e7-4baf-9dfe-ec4e06e43a7d@l18g2000yqm.googlegroups.com...
On 18 Lut, 08:30, "Maciek" <for...@interia.pl> wrote:> U ytkownik "Konop" <kono...@gazeta.pl> napisa w
wiadomo cinews:ijk6m3$3a8$1@inews.gazeta.pl...

(...)

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??

A w jaki spos b wykrywasz klikni cie? Rozumiem, e _jedna_ ga (np. Y- lub
Y+) jest pod czona do GND lub VCC, a na drugiej (X+ lub X-) sprawdzasz
napi cie?

No tak Smile. 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

Maciek
Guest

Fri Feb 18, 2011 12:30 pm   



Użytkownik "Konop" <konoppo@gazeta.pl> napisał w wiadomości
news:3c5d8bf6-694d-4ec4-b895-aa5af633767d@p11g2000vbq.googlegroups.com...

Quote:
Zaraz... Więc jeżeli nie naciskasz, to X1 (lub X2) wisi w powietrzu?
Dobrze
zrozumiałem?

Nie no, nie jestem na tyle pomysłowy, żeby robić radio na LPCku Wink...
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?

Na stałe nie, bo zaburzy dokładność podziału dzielnika. U mnie sekwencja
jest taka:

- Y- do masy, X+ podwieszone do VCC (wejście ATMEGA128),
- jeżeli na X+ pojawi się stan niski, czekam 10 ms i ponownie sprawdzam,
- jeżeli na X+ jest nadal stan niski, wyłaczam pull-up i rozpoczynam
konwersję.

A jaką masz wartość tego pull-up'u? Nie przełączasz go aby tuż przed
sprawdzeniem wejścia?

Maciek

Infotank
Guest

Fri Feb 18, 2011 12:31 pm   



Użytkownik "Konop" <konoppo@gazeta.pl> napisał w wiadomości
news:ijk6m3$3a8$1@inews.gazeta.pl...
Quote:
Witam

Na wstępie - mój problem opiszę na przykładowym programie do rysowania po
LCDku Smile. 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...


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

Roman F






Quote:
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?? Smile...

--
Pozdrawiam
Konop


Konop
Guest

Fri Feb 18, 2011 12:41 pm   



On 18 Lut, 10:51, "Maciek" <for...@interia.pl> wrote:
Quote:
Użytkownik "Konop" <kono...@gazeta.pl> napisał w wiadomościnews:04c8a044-8252-4e28-930a-8bc0808377f1@x11g2000yqc.googlegroups.com...
On 18 Lut, 09:55, "Maciek" <for...@interia.pl> wrote:





U ytkownik "Konop" <kono...@gazeta.pl> napisa w wiadomo
cinews:37e6813e-e7e7-4baf-9dfe-ec4e06e43a7d@l18g2000yqm.googlegroups.com...
On 18 Lut, 08:30, "Maciek" <for...@interia.pl> wrote:> U ytkownik "Konop"
kono...@gazeta.pl> napisa w
wiadomo cinews:ijk6m3$3a8$1@inews.gazeta.pl...

(...)

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??

A w jaki spos b wykrywasz klikni cie? Rozumiem, e _jedna_ ga (np. Y- lub
Y+) jest pod czona do GND lub VCC, a na drugiej (X+ lub X-) sprawdzasz
napi cie?
No tak Smile. 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...

Zaraz... Więc jeżeli nie naciskasz, to X1 (lub X2) wisi w powietrzu? Dobrze
zrozumiałem?

Nie no, nie jestem na tyle pomysłowy, żeby robić radio na LPCku Wink...
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

Konop
Guest

Fri Feb 18, 2011 3:33 pm   



On 18 Lut, 12:30, "Maciek" <for...@interia.pl> wrote:
Quote:
Użytkownik "Konop" <kono...@gazeta.pl> napisał w wiadomościnews:3c5d8bf6-694d-4ec4-b895-aa5af633767d@p11g2000vbq.googlegroups.com...

Zaraz... Więc jeżeli nie naciskasz, to X1 (lub X2) wisi w powietrzu?
Dobrze
zrozumiałem?
Nie no, nie jestem na tyle pomysłowy, żeby robić radio na LPCku Wink...
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?

Na stałe nie, bo zaburzy dokładność podziału dzielnika. U mnie sekwencja
jest taka:

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ł Wink...

Quote:
- Y- do masy, X+ podwieszone do VCC (wejście ATMEGA128),
- jeżeli na X+ pojawi się stan niski, czekam 10 ms i ponownie sprawdzam,
- jeżeli na X+ jest nadal stan niski, wyłaczam pull-up i rozpoczynam
konwersję.

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ę Wink...

Quote:
A jaką masz wartość tego pull-up'u? Nie przełączasz go aby tuż przed
sprawdzeniem wejścia?

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

Pozdrawiam
Konop

Konop
Guest

Fri Feb 18, 2011 11:50 pm   



Quote:
Na stałe nie, bo zaburzy dokładność podziału dzielnika. U mnie sekwencja
jest taka:
- Y- do masy, X+ podwieszone do VCC (wejście ATMEGA128),
- jeżeli na X+ pojawi się stan niski, czekam 10 ms i ponownie sprawdzam,
- jeżeli na X+ jest nadal stan niski, wyłaczam pull-up i rozpoczynam
konwersję.

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 Wink...

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



--
Pozdrawiam
Konop

Konop
Guest

Sat Feb 19, 2011 3:05 pm   



Quote:
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ę:
http://www.analog.com/static/imported-files/application_notes/AN-1021.pdf Kiedyś
przerabiałem ten temat tyle że w moim przypadku sporym problemem było
uzyskanie precyzyjnych wyników na całej powierzchni ekranu

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ś??

--
Pozdrawiam
Konop

elektroda NewsGroups Forum Index - Elektronika Polska - Jak poprawić działanie rezystancyjnego panelu dotykowego w projekcie LCD?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map