1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
/*
TFT EtchASketch
This example for the Arduino screen draws a white point
on the GLCD based on the values of 2 potentiometers.
To clear the screen, press a button attached to pin 2.
This example code is in the public domain.
Created 15 April 2013 by Scott Fitzgerald
http://arduino.cc/en/Tutorial/TFTEtchASketch
*/
#include <TFT.h> // Arduino LCD library
#include <SPI.h>
// pin definition for the Uno
#define cs 10
#define dc 9
#define rst 8
// pin definition for the Leonardo
// #define cs 7
// #define dc 0
// #define rst 1
TFT TFTscreen = TFT(cs, dc, rst);
// initial position of the cursor
int xPos = TFTscreen.width()/2;
int yPos = TFTscreen.height()/2;
// pin the erase switch is connected to
int erasePin = 2;
void setup() {
// declare inputs
pinMode(erasePin, INPUT);
// initialize the screen
TFTscreen.begin();
// make the background black
TFTscreen.background(0,0,0);
}
void loop()
{
// read the potentiometers on A0 and A1
int xValue = analogRead(A0);
int yValue = analogRead(A1);
// map the values and update the position
xPos = xPos + (map(xValue, 0, 1023, 2, -2));
yPos = yPos + (map(yValue, 0, 1023, -2, 2));
// don't let the point go past the screen edges
if(xPos > 159){
(xPos = 159);
}
if(xPos < 0){
(xPos = 0);
}
if(yPos > 127){
(yPos = 127);
}
if(yPos < 0){
(yPos = 0);
}
// draw the point
TFTscreen.stroke(255,255,255);
TFTscreen.point(xPos,yPos);
// read the value of the pin, and erase the screen if pressed
if(digitalRead(erasePin) == HIGH){
TFTscreen.background(0,0,0);
}
delay(33);
}
|