Linduino  1.3.0
Linear Technology Arduino-Compatible Demonstration Board
touchScreen.ino
Go to the documentation of this file.
1 #include <stdint.h>
2 #include <SeeedTouchScreen.h>
3 
4 #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) // mega
5 #define YP A2 // must be an analog pin, use "An" notation!
6 #define XM A1 // must be an analog pin, use "An" notation!
7 #define YM 54 // can be a digital pin, this is A0
8 #define XP 57 // can be a digital pin, this is A3
9 
10 #elif defined(__AVR_ATmega32U4__) // leonardo
11 #define YP A2 // must be an analog pin, use "An" notation!
12 #define XM A1 // must be an analog pin, use "An" notation!
13 #define YM 18 // can be a digital pin, this is A0
14 #define XP 21 // can be a digital pin, this is A3
15 
16 #else //168, 328, something else
17 #define YP A2 // must be an analog pin, use "An" notation!
18 #define XM A1 // must be an analog pin, use "An" notation!
19 #define YM 14 // can be a digital pin, this is A0
20 #define XP 17 // can be a digital pin, this is A3
21 
22 #endif
23 
24 //Measured ADC values for (0,0) and (210-1,320-1)
25 //TS_MINX corresponds to ADC value when X = 0
26 //TS_MINY corresponds to ADC value when Y = 0
27 //TS_MAXX corresponds to ADC value when X = 240 -1
28 //TS_MAXY corresponds to ADC value when Y = 320 -1
29 
30 #define TS_MINX 116*2
31 #define TS_MAXX 890*2
32 #define TS_MINY 83*2
33 #define TS_MAXY 913*2
34 
35 
36 // For better pressure precision, we need to know the resistance
37 // between X+ and X- Use any multimeter to read it
38 // The 2.8" TFT Touch shield has 300 ohms across the X plate
40 
41 void setup(void)
42 {
43  Serial.begin(9600);
44 }
45 
46 void loop(void)
47 {
48  // a point object holds x y and z coordinates
49  Point p = ts.getPoint();
50 
51  if (p.z > __PRESURE)
52  {
53  Serial.print("Raw X = ");
54  Serial.print(p.x);
55  Serial.print("\tRaw Y = ");
56  Serial.print(p.y);
57  Serial.print("\tPressure = ");
58  Serial.println(p.z);
59  }
60 
61 
62  p.x = map(p.x, TS_MINX, TS_MAXX, 0, 240);
63  p.y = map(p.y, TS_MINY, TS_MAXY, 0, 320);
64 
65  // we have some minimum pressure we consider 'valid'
66  // pressure of 0 means no pressing!
67  if (p.z > __PRESURE)
68  {
69  Serial.print("X = ");
70  Serial.print(p.x);
71  Serial.print("\tY = ");
72  Serial.print(p.y);
73  Serial.print("\tPressure = ");
74  Serial.println(p.z);
75  }
76 
77  delay(100);
78 }
#define TS_MAXX
Definition: touchScreen.ino:31
#define TS_MAXY
Definition: touchScreen.ino:33
#define XP
Definition: touchScreen.ino:20
#define __PRESURE
#define YM
Definition: touchScreen.ino:19
#define XM
Definition: touchScreen.ino:18
static void loop(void)
Definition: touchScreen.ino:46
#define TS_MINY
Definition: touchScreen.ino:32
TouchScreen ts
Definition: touchScreen.ino:39
#define YP
Definition: touchScreen.ino:17
#define TS_MINX
Definition: touchScreen.ino:30
static void setup(void)
Definition: touchScreen.ino:41