0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaGrafični LCD z zaslonom, občutljivim na dotik

    Grafični LCD z zaslonom, občutljivim na dotik

    Krmiljenje na dotik občutljive folije

    Bascom se je spet pokazal kot odlično orodje pri tej nalogi. Vse opravimo v subrutini Readtouch:

    Readtouch:                             'beri touch
    Config Porta.3 = Output            'pin1 (Y1)
    Config Porta.1 = Output            ' PIN3 (Y2)
    Set Porta.1                              'PIN2 (X1)
    Reset Porta.3                           'PIN4 (X2)
    Config Pina.2 = Input                'postavi kot vhod
    Config Pina.0 = Input                
    Waitms 20                                'pocakaj, da se port stabilizira
    Y = Getadc(0)                           'preberi vrednost A/D
    Y = 1024 - Y                             'jo invertiraj
    Config Porta.2 = Output             'ponovi isto za X koordinato
    Config Porta.0 = Output             
    Reset Porta.0
    Set Porta.2
    Config Pina.1 = Input
    Config Pina.3 = Input
    Waitms 20
    X = Getadc(3)                          
    X = 1024 - X
    Return

    V kratki subrutini vidimo, da za vsako os (x oziroma y) posebej postavimo logično stanje na priključke folije, nato pa beremo izhodno napetost, ki jo dobimo iz A/D pretvornika. Izhodi so pač neke številke, ki nam enoznačno pomenijo točno določen položaj na foliji. Pri tej foliji velja opozoriti, da najboljše dela, če na njo pritiskamo s trdim predmetom, kot je na primer plastična (ne ostra!) paličica oziroma kakšnim drugim neostrim predmetom, ki ne poškoduje folije. Seveda lahko po foliji pritiskamo tudi s prsti, vendar boste opazili, da pritisk s

    prstom ni dovolj natančen tako glede pritiska na folijo kot tudi pritiska na točno določeno mesto – še zlasti, če imate velike prste. Za določanje koordinat pritiska sem si naredil preprost program, s katerim sem na displej narisal koordinatno mrežo in izpisoval izmerjeno število mesta na foliji, kjer sem pritisnil. S pomočjo tega števila lahko s programom določamo naslednje korake. Za ta namen smo uporabili subrutino Whichkey, kjer določimo vrstico in stolpec v navidezni mreži na foliji:

    Whichkey:              'sub, kjer ugotovimo, kje je bil pritisnjen touchscreen
    Select Case X                  ' razlicne vrednosti X
                Case 300 To 480 : Col = 10             '
                'Case 341 To 486 : Col = 20            '
                'Case 487 To 635 : Col = 30
                'Case 636 To 774 : Col = 40
                Case Else
    Col = 0                           'ce ni nic pritisnjeno
    End Select                      ' vrednosti za Y koordinato
    Select Case Y                 'razlicne vrednosti Y
                Case 200 To 250 : Row = 1                       
                Case 260 To 290 : Row = 2                       
                Case 300 To 330 : Row = 3              'ce ni nic pritisnjeno
                Case Else
    Row = 0
    End Select
    Key = Col + Row               'sestejemo, da dobimo vrednost
    If Key > 0 Then                'Touchscreen Je Pritisnjen
      Keyarray(keylus) = Key  'ce zelimo debounce
    '  Incr Keylus
    '  If Keylus > 3 Then Keylus = 1
    '   If Keyarray(1) = Keyarray(2) Then
    '       If Keyarray(2) = Keyarray(3) Then    '3x preberemo
    'Sound Speaker , 1 , 65000                 'zapiskaj
    Keypressed = Key
    'Timecount = 0
    '       End If
    '   End If
     End If
    Return

    Deli subrutine, ki so komentirani, so namenjeni ugotavljanju debounce efekta. Če želite, ga uporabite. Jaz ga pri testiranju nisem uporabil. V subrutini Whichkey je zanimiva uporaba ukaza Select case, kjer se vrednosti Case gibljejo v določenem razponu. To še kako pride prav pri foliji, saj nikoli ne pritisnemo na isto mesto, pač pa pritiskamo v nekem širšem območju.

    Zaključek

    Grafični LCD displej in folija, občutljiva na dotik, nista več nedosegljiva, pravzaprav ravno nasprotno: lepo in preprosto je delati z njima. Seveda je potrebno veliko dela, da nam bo naša aplikacija zaživela na polno, kar pomeni veliko narisanih predlog, ki jih izrisujemo na LCD-ju in jih v kombinaciji s folijo občutljivo na dotik ustrezno prikazujemo. Verjamem, da bo grafični LCD našel prostor v vaših naslednjih napravah.

    Datasheet

    Program

    Nakup v virtualni trgovini

    PDF članek

    Grafični LCD z zaslonom, občutljivim na dotik
    2009_SE162_44
    Avtor: Jure Mikeln