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

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

al555 18 Gru 2005 17:07 6892 11
REKLAMA
  • #1 2095218
    al555
    Poziom 20  
    Posty: 485
    Pomógł: 32
    Ocena: 8
    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 ...
  • REKLAMA
  • #2 2095363
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 131
    Wystarczy przetwornik ADC i pomiar napięcia na osiach X i Y ;) robisz zwykły dzielnik i smiga...
    
    $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 ;)
  • REKLAMA
  • #3 2095364
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    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).
  • REKLAMA
  • #4 2327616
    Augustyn
    Poziom 11  
    Posty: 13
    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 2328388
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    No przecież napisałem wyżej jak to działa i jak obsłużyć.
  • REKLAMA
  • #6 2439532
    morph13
    Poziom 25  
    Posty: 987
    Pomógł: 25
    Ocena: 32
    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 3985693
    MarasTej
    Poziom 12  
    Posty: 28
    Mógłby ktoś zamieścić schemacik jak podłączyć taki panel do chociażby atmego8. Z góry dziękuję :)
  • #10 4950137
    dj_max84
    Poziom 13  
    Posty: 138
    Pomógł: 2
    Ocena: 20
    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 4950170
    Bigfoot
    Poziom 25  
    Posty: 982
    Pomógł: 74
    Ocena: 13
    Pewnie to sa przewodu nie do samego panela ale do jego interfejsu, jakis I2C czy SPI na przyklad.
    BF
  • #12 4950881
    thorin00
    Poziom 14  
    Posty: 163
    Pomógł: 2
    witam
    ja do obsugi panela dotykowego uzywam takiej oto proceduru:

    $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]

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy obsługi paneli dotykowych rezystancyjnych z wyjściami X+, X-, Y+, Y- bez wbudowanego kontrolera, np. TSC2046 (TI). Panele takie można obsłużyć za pomocą mikrokontrolera (np. ATmega128) wykorzystując przetwornik ADC do pomiaru napięć na osiach X i Y. Metoda polega na polaryzowaniu naprzeciwległych elektrod panelem i pomiarze napięcia na pozostałych, co wymaga przełączania pinów mikrokontrolera między wyjściami logicznymi a wejściami ADC. Przykładowe implementacje w Bascomie pokazują konfigurację pinów i odczyt wartości ADC. Wskazano także dostępność dedykowanych układów scalonych do obsługi takich paneli, np. AD7843 firmy Analog Devices, które komunikują się cyfrowo (SPI). W dyskusji pojawiły się także sugestie dotyczące schematów podłączenia oraz uwagi o możliwych interfejsach I2C lub SPI w panelach z mniejszą liczbą przewodów.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA