aboutsummaryrefslogtreecommitdiff
path: root/libraries/TFT/examples/Arduino
diff options
context:
space:
mode:
authorCristian Maglie <c.maglie@bug.st>2013-05-29 18:30:36 +0200
committerCristian Maglie <c.maglie@bug.st>2013-05-29 18:30:36 +0200
commitd90fcca5839d13d57ed527d4009b78d22dafbde7 (patch)
tree768b98af21e5075846184dd3de41ae0c22e75e20 /libraries/TFT/examples/Arduino
parent7207108255a772474b322151cb0fd113e8030afe (diff)
parentef4e8c65373f531ce6d37ff226a21fc9b358ff29 (diff)
Merged 1.0.5
Diffstat (limited to 'libraries/TFT/examples/Arduino')
-rw-r--r--libraries/TFT/examples/Arduino/TFTBitmapLogo/TFTBitmapLogo.ino108
-rw-r--r--libraries/TFT/examples/Arduino/TFTBitmapLogo/arduino.bmpbin0 -> 6966 bytes
-rw-r--r--libraries/TFT/examples/Arduino/TFTColorPicker/TFTColorPicker.ino67
-rw-r--r--libraries/TFT/examples/Arduino/TFTDisplayText/TFTDisplayText.ino74
-rw-r--r--libraries/TFT/examples/Arduino/TFTEtchASketch/TFTEtchASketch.ino84
-rw-r--r--libraries/TFT/examples/Arduino/TFTGraph/TFTGraph.ino71
-rw-r--r--libraries/TFT/examples/Arduino/TFTPong/TFTPong.ino135
7 files changed, 539 insertions, 0 deletions
diff --git a/libraries/TFT/examples/Arduino/TFTBitmapLogo/TFTBitmapLogo.ino b/libraries/TFT/examples/Arduino/TFTBitmapLogo/TFTBitmapLogo.ino
new file mode 100644
index 0000000..da7a94d
--- /dev/null
+++ b/libraries/TFT/examples/Arduino/TFTBitmapLogo/TFTBitmapLogo.ino
@@ -0,0 +1,108 @@
+/*
+
+ Arduino TFT Bitmap Logo example
+
+ This example reads an image file from a micro-SD card
+ and draws it on the screen, at random locations.
+
+ In this sketch, the Arduino logo is read from a micro-SD card.
+ There is a .bmp file included with this sketch.
+ - open the sketch folder (Ctrl-K or Cmd-K)
+ - copy the "arduino.bmp" file to a micro-SD
+ - put the SD into the SD slot of the Arduino TFT module.
+
+ This example code is in the public domain.
+
+ Created 19 April 2013 by Enrico Gueli
+
+ http://arduino.cc/en/Tutorial/TFTBitmapLogo
+
+ */
+
+// include the necessary libraries
+#include <SPI.h>
+#include <SD.h>
+#include <TFT.h> // Arduino LCD library
+
+// pin definition for the Uno
+#define sd_cs 4
+#define lcd_cs 10
+#define dc 9
+#define rst 8
+
+// pin definition for the Leonardo
+//#define sd_cs 8
+//#define lcd_cs 7
+//#define dc 0
+//#define rst 1
+
+TFT TFTscreen = TFT(lcd_cs, dc, rst);
+
+// this variable represents the image to be drawn on screen
+PImage logo;
+
+
+void setup() {
+ // initialize the GLCD and show a message
+ // asking the user to open the serial line
+ TFTscreen.begin();
+ TFTscreen.background(255, 255, 255);
+
+ TFTscreen.stroke(0, 0, 255);
+ TFTscreen.println();
+ TFTscreen.println("Arduino TFT Bitmap Example");
+ TFTscreen.stroke(0, 0, 0);
+ TFTscreen.println("Open serial monitor");
+ TFTscreen.println("to run the sketch");
+
+ // initialize the serial port: it will be used to
+ // print some diagnostic info
+ Serial.begin(9600);
+ while (!Serial) {
+ // wait for serial line to be ready
+ }
+
+ // clear the GLCD screen before starting
+ TFTscreen.background(255, 255, 255);
+
+ // try to access the SD card. If that fails (e.g.
+ // no card present), the setup process will stop.
+ Serial.print("Initializing SD card...");
+ if (!SD.begin(sd_cs)) {
+ Serial.println("failed!");
+ return;
+ }
+ Serial.println("OK!");
+
+ // initialize and clear the GLCD screen
+ TFTscreen.begin();
+ TFTscreen.background(255, 255, 255);
+
+ // now that the SD card can be access, try to load the
+ // image file.
+ logo = TFTscreen.loadImage("arduino.bmp");
+ if (!logo.isValid()) {
+ Serial.println("error while loading arduino.bmp");
+ }
+}
+
+void loop() {
+ // don't do anything if the image wasn't loaded correctly.
+ if (logo.isValid() == false) {
+ return;
+ }
+
+ Serial.println("drawing image");
+
+ // get a random location where to draw the image.
+ // To avoid the image to be draw outside the screen,
+ // take into account the image size.
+ int x = random(TFTscreen.width() - logo.width());
+ int y = random(TFTscreen.height() - logo.height());
+
+ // draw the image to the screen
+ TFTscreen.image(logo, x, y);
+
+ // wait a little bit before drawing again
+ delay(1500);
+}
diff --git a/libraries/TFT/examples/Arduino/TFTBitmapLogo/arduino.bmp b/libraries/TFT/examples/Arduino/TFTBitmapLogo/arduino.bmp
new file mode 100644
index 0000000..09c670a
--- /dev/null
+++ b/libraries/TFT/examples/Arduino/TFTBitmapLogo/arduino.bmp
Binary files differ
diff --git a/libraries/TFT/examples/Arduino/TFTColorPicker/TFTColorPicker.ino b/libraries/TFT/examples/Arduino/TFTColorPicker/TFTColorPicker.ino
new file mode 100644
index 0000000..74fc176
--- /dev/null
+++ b/libraries/TFT/examples/Arduino/TFTColorPicker/TFTColorPicker.ino
@@ -0,0 +1,67 @@
+/*
+
+ TFT Color Picker
+
+ This example for the Arduino screen reads the input of
+ potentiometers or analog sensors attached to A0, A1,
+ and A2 and uses the values to change the screen's color.
+
+ This example code is in the public domain.
+
+ Created 15 April 2013 by Scott Fitzgerald
+
+ http://arduino.cc/en/Tutorial/TFTColorPicker
+
+ */
+
+// 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
+
+#include <TFT.h> // Arduino LCD library
+#include <SPI.h>
+
+TFT TFTscreen = TFT(cs, dc, rst);
+
+void setup() {
+ // begin serial communication
+ Serial.begin(9600);
+
+ // initialize the display
+ TFTscreen.begin();
+
+ // set the background to white
+ TFTscreen.background(255, 255, 255);
+
+}
+
+void loop() {
+
+ // read the values from your sensors and scale them to 0-255
+ int redVal = map(analogRead(A0), 0, 1023, 0, 255);
+ int greenVal = map(analogRead(A1), 0, 1023, 0, 255);
+ int blueVal = map(analogRead(A2), 0, 1023, 0, 255);
+
+ // draw the background based on the mapped values
+ TFTscreen.background(redVal, greenVal, blueVal);
+
+ // send the values to the serial monitor
+ Serial.print("background(");
+ Serial.print(redVal);
+ Serial.print(" , ");
+ Serial.print(greenVal);
+ Serial.print(" , ");
+ Serial.print(blueVal);
+ Serial.println(")");
+
+ // wait for a moment
+ delay(33);
+
+}
+
diff --git a/libraries/TFT/examples/Arduino/TFTDisplayText/TFTDisplayText.ino b/libraries/TFT/examples/Arduino/TFTDisplayText/TFTDisplayText.ino
new file mode 100644
index 0000000..f482bd1
--- /dev/null
+++ b/libraries/TFT/examples/Arduino/TFTDisplayText/TFTDisplayText.ino
@@ -0,0 +1,74 @@
+/*
+ Arduino TFT text example
+
+ This example demonstrates how to draw text on the
+ TFT with an Arduino. The Arduino reads the value
+ of an analog sensor attached to pin A0, and writes
+ the value to the LCD screen, updating every
+ quarter second.
+
+ This example code is in the public domain
+
+ Created 15 April 2013 by Scott Fitzgerald
+
+ http://arduino.cc/en/Tutorial/TFTDisplayText
+
+ */
+
+#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
+
+// create an instance of the library
+TFT TFTscreen = TFT(cs, dc, rst);
+
+// char array to print to the screen
+char sensorPrintout[4];
+
+void setup() {
+
+ // Put this line at the beginning of every sketch that uses the GLCD:
+ TFTscreen.begin();
+
+ // clear the screen with a black background
+ TFTscreen.background(0, 0, 0);
+
+ // write the static text to the screen
+ // set the font color to white
+ TFTscreen.stroke(255,255,255);
+ // set the font size
+ TFTscreen.setTextSize(2);
+ // write the text to the top left corner of the screen
+ TFTscreen.text("Sensor Value :\n ",0,0);
+ // ste the font size very large for the loop
+ TFTscreen.setTextSize(5);
+}
+
+void loop() {
+
+ // Read the value of the sensor on A0
+ String sensorVal = String(analogRead(A0));
+
+ // convert the reading to a char array
+ sensorVal.toCharArray(sensorPrintout, 4);
+
+ // set the font color
+ TFTscreen.stroke(255,255,255);
+ // print the sensor value
+ TFTscreen.text(sensorPrintout, 0, 20);
+ // wait for a moment
+ delay(250);
+ // erase the text you just wrote
+ TFTscreen.stroke(0,0,0);
+ TFTscreen.text(sensorPrintout, 0, 20);
+}
+
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);
+}
diff --git a/libraries/TFT/examples/Arduino/TFTGraph/TFTGraph.ino b/libraries/TFT/examples/Arduino/TFTGraph/TFTGraph.ino
new file mode 100644
index 0000000..39ae49b
--- /dev/null
+++ b/libraries/TFT/examples/Arduino/TFTGraph/TFTGraph.ino
@@ -0,0 +1,71 @@
+/*
+
+ TFT Graph
+
+ This example for an Arduino screen reads
+ the value of an analog sensor on A0, and
+ graphs the values on the screen.
+
+ This example code is in the public domain.
+
+ Created 15 April 2013 by Scott Fitzgerald
+
+ http://arduino.cc/en/Tutorial/TFTGraph
+
+ */
+
+#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);
+
+// position of the line on screen
+int xPos = 0;
+
+void setup(){
+ // initialize the serial port
+ Serial.begin(9600);
+
+ // initialize the display
+ TFTscreen.begin();
+
+ // clear the screen with a pretty color
+ TFTscreen.background(250,16,200);
+}
+
+void loop(){
+ // read the sensor and map it to the screen height
+ int sensor = analogRead(A0);
+ int drawHeight = map(sensor,0,1023,0,TFTscreen.height());
+
+ // print out the height to the serial monitor
+ Serial.println(drawHeight);
+
+ // draw a line in a nice color
+ TFTscreen.stroke(250,180,10);
+ TFTscreen.line(xPos, TFTscreen.height()-drawHeight, xPos, TFTscreen.height());
+
+ // if the graph has reached the screen edge
+ // erase the screen and start again
+ if (xPos >= 160) {
+ xPos = 0;
+ TFTscreen.background(250,16,200);
+ }
+ else {
+ // increment the horizontal position:
+ xPos++;
+ }
+
+ delay(16);
+}
+
diff --git a/libraries/TFT/examples/Arduino/TFTPong/TFTPong.ino b/libraries/TFT/examples/Arduino/TFTPong/TFTPong.ino
new file mode 100644
index 0000000..02ea11c
--- /dev/null
+++ b/libraries/TFT/examples/Arduino/TFTPong/TFTPong.ino
@@ -0,0 +1,135 @@
+/*
+
+ TFT Pong
+
+ This example for the Arduino screen reads the values
+ of 2 potentiometers to move a rectangular platform
+ on the x and y axes. The platform can intersect
+ with a ball causing it to bounce.
+
+ This example code is in the public domain.
+
+ Created by Tom Igoe December 2012
+ Modified 15 April 2013 by Scott Fitzgerald
+
+ http://arduino.cc/en/Tutorial/TFTPong
+
+ */
+
+#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);
+
+// variables for the position of the ball and paddle
+int paddleX = 0;
+int paddleY = 0;
+int oldPaddleX, oldPaddleY;
+int ballDirectionX = 1;
+int ballDirectionY = 1;
+
+int ballSpeed = 10; // lower numbers are faster
+
+int ballX, ballY, oldBallX, oldBallY;
+
+void setup() {
+ // initialize the display
+ TFTscreen.begin();
+ // black background
+ TFTscreen.background(0,0,0);
+}
+
+void loop() {
+
+ // save the width and height of the screen
+ int myWidth = TFTscreen.width();
+ int myHeight = TFTscreen.height();
+
+ // map the paddle's location to the position of the potentiometers
+ paddleX = map(analogRead(A0), 512, -512, 0, myWidth) - 20/2;
+ paddleY = map(analogRead(A1), 512, -512, 0, myHeight) - 5/2;
+
+ // set the fill color to black and erase the previous
+ // position of the paddle if different from present
+ TFTscreen.fill(0,0,0);
+
+ if (oldPaddleX != paddleX || oldPaddleY != paddleY) {
+ TFTscreen.rect(oldPaddleX, oldPaddleY, 20, 5);
+ }
+
+ // draw the paddle on screen, save the current position
+ // as the previous.
+ TFTscreen.fill(255,255,255);
+
+ TFTscreen.rect(paddleX, paddleY, 20, 5);
+ oldPaddleX = paddleX;
+ oldPaddleY = paddleY;
+
+ // update the ball's position and draw it on screen
+ if (millis() % ballSpeed < 2) {
+ moveBall();
+ }
+}
+
+// this function determines the ball's position on screen
+void moveBall() {
+ // if the ball goes offscreen, reverse the direction:
+ if (ballX > TFTscreen.width() || ballX < 0) {
+ ballDirectionX = -ballDirectionX;
+ }
+
+ if (ballY > TFTscreen.height() || ballY < 0) {
+ ballDirectionY = -ballDirectionY;
+ }
+
+ // check if the ball and the paddle occupy the same space on screen
+ if (inPaddle(ballX, ballY, paddleX, paddleY, 20, 5)) {
+ ballDirectionX = -ballDirectionX;
+ ballDirectionY = -ballDirectionY;
+ }
+
+ // update the ball's position
+ ballX += ballDirectionX;
+ ballY += ballDirectionY;
+
+// erase the ball's previous position
+ TFTscreen.fill(0,0,0);
+
+ if (oldBallX != ballX || oldBallY != ballY) {
+ TFTscreen.rect(oldBallX, oldBallY, 5, 5);
+ }
+
+
+ // draw the ball's current position
+ TFTscreen.fill(255,255,255);
+ TFTscreen.rect(ballX, ballY, 5, 5);
+
+ oldBallX = ballX;
+ oldBallY = ballY;
+
+}
+
+// this function checks the position of the ball
+// to see if it intersects with the paddle
+boolean inPaddle(int x, int y, int rectX, int rectY, int rectWidth, int rectHeight) {
+ boolean result = false;
+
+ if ((x >= rectX && x <= (rectX + rectWidth)) &&
+ (y >= rectY && y <= (rectY + rectHeight))) {
+ result = true;
+ }
+
+return result;
+}
+
+