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