aboutsummaryrefslogtreecommitdiff
path: root/libraries/TFT/examples/Arduino/TFTEtchASketch
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/TFT/examples/Arduino/TFTEtchASketch')
-rw-r--r--libraries/TFT/examples/Arduino/TFTEtchASketch/TFTEtchASketch.ino84
1 files changed, 84 insertions, 0 deletions
diff --git a/libraries/TFT/examples/Arduino/TFTEtchASketch/TFTEtchASketch.ino b/libraries/TFT/examples/Arduino/TFTEtchASketch/TFTEtchASketch.ino
new file mode 100644
index 0000000..29e3483
--- /dev/null
+++ b/libraries/TFT/examples/Arduino/TFTEtchASketch/TFTEtchASketch.ino
@@ -0,0 +1,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);
+}