/* 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 // Arduino LCD library #include // 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); }