diff options
Diffstat (limited to 'libraries/TFT/examples/Arduino')
| -rw-r--r-- | libraries/TFT/examples/Arduino/TFTBitmapLogo/TFTBitmapLogo.ino | 108 | ||||
| -rw-r--r-- | libraries/TFT/examples/Arduino/TFTBitmapLogo/arduino.bmp | bin | 0 -> 6966 bytes | |||
| -rw-r--r-- | libraries/TFT/examples/Arduino/TFTColorPicker/TFTColorPicker.ino | 67 | ||||
| -rw-r--r-- | libraries/TFT/examples/Arduino/TFTDisplayText/TFTDisplayText.ino | 74 | ||||
| -rw-r--r-- | libraries/TFT/examples/Arduino/TFTEtchASketch/TFTEtchASketch.ino | 84 | ||||
| -rw-r--r-- | libraries/TFT/examples/Arduino/TFTGraph/TFTGraph.ino | 71 | ||||
| -rw-r--r-- | libraries/TFT/examples/Arduino/TFTPong/TFTPong.ino | 135 | 
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.bmpBinary files differ new file mode 100644 index 0000000..09c670a --- /dev/null +++ b/libraries/TFT/examples/Arduino/TFTBitmapLogo/arduino.bmp 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;   +} + + | 
