Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Jak obsłużyć panel dotykowy z wyjściami typu X+ X- Y+ Y-

al555 18 Dec 2005 17:07 6724 11
  • #1
    al555
    Level 20  
    Witam,
    niektóre wyświetlacze mają wbudowany kontroler panelu dotykowego np. TSC2046 (TI) ale niektóre niestety nie :-(
    Czy to jest panel analogowy ( rezystancyjny?) - jest inna metoda obsłużenia takiego panelu niż kupno gotowego kontrolera?? (z ATmega128).

    A może ktoś zna jakiś w miarę dostępny (w Polsce) kontroler ?

    Będę wdzięczny za pomoc ...
  • #2
    crazy_phisic
    VIP Meritorious for electroda.pl
    Wystarczy przetwornik ADC i pomiar napięcia na osiach X i Y ;) robisz zwykły dzielnik i smiga...
    Code:

    $regfile = "m16def.dat"
    $crystal = 16000000
    Config Graphlcd = 128 * 128 , Dataport = Portb , Controlport = Portd , Ce = 4 , Cd = 5 , Wr = 2 , Rd = 3 , Reset = 6 , Fs = 7 , Mode = 8
    Dim X As Word
    Dim Y As Word

    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Start Adc


    Cls
    Cursor Off

    Do
    X = Getadc(2)
    Y = Getadc(3)
    Locate 10 , 1 : Lcd X
    Locate 12 , 1 : Lcd Y
    Waitms 250
    Loop

    U mnie w zupełności do testów wystarczyło ;)
  • #3
    elektryk
    Level 42  
    Możesz poszukać u TI, mają gotowe scalaki do takich ekranów które się obsługuje przez SPI. A jeśli chcesz to robić ręcznie to takie ekrany się obsługuje w następujący sposób. Polaryzujesz dwie przeciwległe elektrody na różne potencjały a z jednej z dwóch pozostały odczytujesz napięcie. Następnie zmieniasz polaryzowane elektrody i odczytujesz napięcie z jednej z dwóch pozostałych. Jeśli dobrze to przemyślisz możesz wykorzystać piny ADC w mikrokontrolerze na czas odczytu ustawiając jedne jako wyjscia logiczne i polaryzując je przeciwnie, jedno z pozostały na pomiar ADC, a drugie w stan wysokiem impedancji (wtedy wystarczają 2 piny i/o i 2 piny analogowe).
  • #4
    Augustyn
    Level 11  
    Witam!!!
    mam problem z panelem dotykowym - kupiłem niedawno taki z wyświetlaczem graficznym 240x64 i zamierzam sie za niego zabrać ALE jeszcze nie wiem jak. ten panel ma tylko 4 wyprowadzenia. podejrzewam ze to matryca rezystancyjna ale jestem pewien bo pierwszy raz mam styczność z takimi panelami. Prosze o jakieś wskazówki dotyczące podłączenia do uC i obsługi programowej w C lub Bascomie
  • #5
    elektryk
    Level 42  
    No przecież napisałem wyżej jak to działa i jak obsłużyć.
  • #6
    morph13
    Level 25  
    W ofercie Analog-a jest specjalnie do tego przeznaczony scalak. Odczytujesz z niego tylko dane cyfrowe o położeniu "punktu nacisku" dodatkowo dostępny jako sample.
  • #7
    MarasTej
    Level 11  
    Mógłby ktoś zamieścić schemacik jak podłączyć taki panel do chociażby atmego8. Z góry dziękuję :)
  • #10
    dj_max84
    Level 13  
    witam
    czy to mozliwe ze sa tylko 2 przewody do odczytu panelu dotykowego? mam wyswietlacz ze starego blackberry 5820 ale nigdzie nie moge znalezc zadnej specyfikacji. na pewno jest to panel dotykowy i na zewnatrz wychodza tylko 2 przewody chyba ze sa jakies ukryte polaczenia pod plytka
    co o tym sadzicie??
    pozdrawiam
  • #11
    Bigfoot
    Level 25  
    Pewnie to sa przewodu nie do samego panela ale do jego interfejsu, jakis I2C czy SPI na przyklad.
    BF
  • #12
    thorin00
    Level 14  
    witam
    ja do obsugi panela dotykowego uzywam takiej oto proceduru:

    Code:
    $regfile = "m32def.dat"
    
    $crystal = 7372800
    $hwstack = 64
    $swstack = 32
    $framesize = 64
    Config Graphlcd = 240 * 128 , Dataport = Portc , Controlport = Portd , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8
    Dim X As Word
    Dim Y As Word
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Enable Interrupts
    Start Adc
    Cls
    Cursor Off
    Do
    Config Pina.0 = Output
    Config Pina.2 = Output
    Set Porta.0
    Reset Porta.2
    Ddra.1 = 0
    Ddra.3 = 0
    Waitms 1
    Y = Getadc(3)
    Y = Y - 332
    If Y > 385 Then Y = 0
     Locate 7 , 2 : Lcd "Y: " ; Y ; "    "
    Config Pina.1 = Output
    Config Pina.3 = Output
    Reset Porta.1
    Set Porta.3
    Ddra.0 = 0
    Ddra.2 = 0
    Waitms 1
    X = Getadc(2)
    X = X - 170
    If X > 691 Then X = 0
     Locate 6 , 2 : Lcd "X: " ; X ; "    "
    Loop
    End

    podlaczenie
    -x - adc0
    x - adc2
    -y - adc1
    y - adc3


    i smiga bez problemu

    ps. wszystkie linie adc przez rezystory 100ohm


    Proszę umieszczać listingi programów w znacznikach "Code". [c_p]