Sale!

3.5 Inch Arduino TFT Display

SKU: PE - 124 Category: Tag:

Description

This?3.5? color?TFT display?as mentioned above, is based on the ILI9481?TFT display?driver.It comes with an SD card slot through which an SD card loaded with graphics and UI can be attached to the?display.

Supports advancement sheets, for example, Arduino UNO and Mega2560 for module use without wiring

 

480X320 goal, clear presentation, uphold for contact work

 

Backing 16-digit RGB 65K shading show, show rich tones

 

8-digit equal transport, quicker than sequential SPI invigorate

 

On-board 5V/3.3V level moving IC, viable with 5V/3.3V working voltage

 

Simple to grow the test with SD card space

 

Gives an Arduino library a rich example program

 

Military-grade measure guidelines, long haul stable work

 

Give hidden driver specialized help.

 

REQUIREMENTS:

Stage 1: Download the test program

 

Download the Arduino test program from the Program Download segment.

 

For a portrayal of the significant test methods, it would be ideal if you allude to the test program documentation in the bundle.

 

Stage 2: Connect the Arduino advancement board

 

Fitting the module straightforwardly into the Arduino improvement board.

 

After the module is connected, power on the Arduino board

 

Stage 3: Copy the reliant library

 

Ensure the Arduino IDE is introduced on your PC (in the event that it isn’t introduced: Arduino IDE download URL)

 

In the wake of introducing the Arduino IDE, you need to duplicate the reliant library to the Arduino project registry as follows:

 

(1) Decompress the downloaded test bundle

 

(2) Copy the reliant libraries in the Install libraries registry in the bundle (demonstrated as follows) to the libraries organizer of the Arduino project catalog

 

Stage 4: Compile and download the program to the advancement board

 

Open the example in the Example catalog of the bundle to test, incorporate and download.

 

Stage 5: Observe the running of the program

 

After the program is downloaded, run it straightforwardly and notice the running status. In the event that it very well may be shown typically, the program runs

effectively, as appeared in the accompanying figure.

/* Arduino TFT Tutorial

* Program made by Dejan Nedelkovski,

* www.HowToMechatronics.com

*/

/* This program uses the UTFT and URTouch libraries

* made by Henning Karlsen.

* You can find and download them at:

* www.RinkyDinkElectronics.com

*/

#include <UTFT.h>

#include <URTouch.h>

//==== Creating Objects

UTFT myGLCD(SSD1289,38,39,40,41); //Parameters should be adjusted to your Display/Schield model

URTouch myTouch( 6, 5, 4, 3, 2);

//==== Defining Variables

extern uint8_t SmallFont[];

extern uint8_t BigFont[];

extern uint8_t SevenSegNumFont[];

extern unsigned int bird01[0x41A];

int x, y;

char currentPage, selectedUnit;

//Ultrasonic Sensor

const int VCC = 13;

const int trigPin = 11;

const int echoPin = 12;

long duration;

int distanceInch, distanceCm;

// RGB LEDs

const int redLed = 10;

const int greenLed = 9;

const int blueLed = 8;

int xR=38;

int xG=38;

int xB=38;

// Floppy Bird

int xP = 319;

int yP = 100;

int yB = 30;

int fallRateInt = 0;

float fallRate =0;

int score=0;

const int button = 14;

int buttonState = 0;

void setup() {

// Initial setup

myGLCD.InitLCD();

myGLCD.clrScr();

myTouch.InitTouch();

myTouch.setPrecision(PREC_MEDIUM);

// Defining Pin Modes

pinMode(VCC, OUTPUT); // VCC

pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output

pinMode(echoPin, INPUT); // Sets the echoPin as an Input

pinMode(redLed, OUTPUT);

pinMode(greenLed, OUTPUT);

pinMode(blueLed, OUTPUT);

pinMode(button, INPUT);

digitalWrite(VCC, HIGH); // +5V – Pin 13 as VCC

drawHomeScreen(); // Draws the Home Screen

currentPage = ‘0’; // Indicates that we are at Home Screen

selectedUnit = ‘0’; // Indicates the selected unit for the first example, cms or inches

}

void loop() {

// Home Screen

if (currentPage == ‘0’) {

if (myTouch.dataAvailable()) {

myTouch.read();

x=myTouch.getX(); // X coordinate where the screen has been pressed

y=myTouch.getY(); // Y coordinates where the screen has been pressed

// If we press the Distance Sensor Button

if ((x>=35) && (x<=285) && (y>=90) && (y<=130)) {

drawFrame(35, 90, 285, 130); // Custom Function -Highlighs the buttons when it’s pressed

currentPage = ‘1’; // Indicates that we are the first example

myGLCD.clrScr(); // Clears the screen

drawDistanceSensor(); // It is called only once, because in the next iteration of the loop, this above if statement will be false so this funtion won’t be called. This function will draw the graphics of the first example.

}

// If we press the RGB LED Control Button

if ((x>=35) && (x<=285) && (y>=140) && (y<=180)) {

drawFrame(35, 140, 285, 180);

currentPage = ‘2’;

myGLCD.clrScr();

drawLedControl();

}

// If we press the Birduino Game Button

if ((x>=35) && (x<=285) && (y>=190) && (y<=230)) {

drawFrame(35, 190, 285, 230);

currentPage = ‘3’;

myGLCD.clrScr();

myGLCD.setColor(114, 198, 206);

myGLCD.fillRect(0,0,319,239);

drawGround();

drawPilars(xP,yP);

drawBird(30);

delay(1000);

}

}

}

// Distance Sensor Example

if (currentPage == ‘1’) {

getDistance(); // Gets distance from the sensor and this function is repeatedly called while we are at the first example in order to print the lasest results from the distance sensor

if (myTouch.dataAvailable()) {

myTouch.read();

x=myTouch.getX();

y=myTouch.getY();

// If we press the Centimeters Button

if ((x>=10) && (x<=135) &&(y>=90) && (y<=163)) {

selectedUnit = ‘0’;

}

// If we press the Inches Button

if ((x>=10) && (x<=135) &&(y>=173) && (y<=201)) {

selectedUnit = ‘1’;

}

// If we press the Back Button

if ((x>=10) && (x<=60) &&(y>=10) && (y<=36)) {

drawFrame(10, 10, 60, 36);

currentPage = ‘0’; // Indicates we are at home screen

myGLCD.clrScr();

drawHomeScreen(); // Draws the home screen

}

}

}

// RGB LED Control

if (currentPage == ‘2’) {

setLedColor();

if (myTouch.dataAvailable()) {

myTouch.read();

x=myTouch.getX();

y=myTouch.getY();

//Back button

if ((x>=10) && (x<=60) &&(y>=10) && (y<=36)) {

drawFrame(10, 10, 60, 36);

currentPage = ‘0’;

myGLCD.clrScr();

drawHomeScreen();

// Turns the LED off

analogWrite(redLed, 0);

analogWrite(greenLed, 0);

analogWrite(blueLed, 0);

}

}

}

//==== This section of the code, for the game example, is explained in my next tutorial

// Birduino Game

if (currentPage == ‘3’) {

//delay(1);

xP=xP-3;

drawPilars(xP, yP);

yB+=fallRateInt;

fallRate=fallRate+0.4;

fallRateInt= int(fallRate);

if (yB>=220) {

yB=220;

}

if(yB>=180 || yB<=0){

restartGame();

}

if((xP<=85) && (xP>=30) && (yB<=yP-2)){

restartGame();

}

if((xP<=85) && (xP>=30) && (yB>=yP+60)){

restartGame();

}

drawBird(yB);

if (xP<=-51){

xP=319;

yP = rand() % 100+20;

score++;

}

if (myTouch.dataAvailable()) {

myTouch.read();

x=myTouch.getX();

y=myTouch.getY();

if ((x>=0) && (x<=319) &&(y>=50) && (y<=239)) {

fallRate=-5;

}

}

buttonState = digitalRead(button);

if (buttonState == HIGH) {

fallRate=-5;

}

}

if (myTouch.dataAvailable()) {

myTouch.read();

x=myTouch.getX();

y=myTouch.getY();

if ((x>=10) && (x<=60) &&(y>=10) && (y<=36)) {

drawFrame(10, 10, 60, 36);

currentPage = ‘0’;

myGLCD.clrScr();

drawHomeScreen();

analogWrite(redLed, 0);

analogWrite(greenLed, 0);

analogWrite(blueLed, 0);

}

}

}

// ====== Custom Funtions ======

// drawHomeScreen – Custom Function

void drawHomeScreen() {

// Title

myGLCD.setBackColor(0,0,0); // Sets the background color of the area where the text will be printed to black

myGLCD.setColor(255, 255, 255); // Sets color to white

myGLCD.setFont(BigFont); // Sets font to big

myGLCD.print(“Arduino TFT Tutorial”, CENTER, 10); // Prints the string on the screen

myGLCD.setColor(255, 0, 0); // Sets color to red

myGLCD.drawLine(0,32,319,32); // Draws the red line

myGLCD.setColor(255, 255, 255); // Sets color to white

myGLCD.setFont(SmallFont); // Sets the font to small

myGLCD.print(“by HowToMechatronics.com”, CENTER, 41); // Prints the string

myGLCD.setFont(BigFont);

myGLCD.print(“Select Example”, CENTER, 64);

// Button – Distance Sensor

myGLCD.setColor(16, 167, 103); // Sets green color

myGLCD.fillRoundRect (35, 90, 285, 130); // Draws filled rounded rectangle

myGLCD.setColor(255, 255, 255); // Sets color to white

myGLCD.drawRoundRect (35, 90, 285, 130); // Draws rounded rectangle without a fill, so the overall appearance of the button looks like it has a frame

myGLCD.setFont(BigFont); // Sets the font to big

myGLCD.setBackColor(16, 167, 103); // Sets the background color of the area where the text will be printed to green, same as the button

myGLCD.print(“DISTANCE SENSOR”, CENTER, 102); // Prints the string

// Button – RGB LED Control

myGLCD.setColor(16, 167, 103);

myGLCD.fillRoundRect (35, 140, 285, 180);

myGLCD.setColor(255, 255, 255);

myGLCD.drawRoundRect (35, 140, 285, 180);

myGLCD.setFont(BigFont);

myGLCD.setBackColor(16, 167, 103);

myGLCD.print(“RGB LED CONTROL”, CENTER, 152);

// Button – Birduino

myGLCD.setColor(16, 167, 103);

myGLCD.fillRoundRect (35, 190, 285, 230);

myGLCD.setColor(255, 255, 255);

myGLCD.drawRoundRect (35, 190, 285, 230);

myGLCD.setFont(BigFont);

myGLCD.setBackColor(16, 167, 103);

myGLCD.print(“BIRDUINO GAME”, CENTER, 202);

}

// Highlights the button when pressed

void drawFrame(int x1, int y1, int x2, int y2) {

myGLCD.setColor(255, 0, 0);

myGLCD.drawRoundRect (x1, y1, x2, y2);

while (myTouch.dataAvailable())

myTouch.read();

myGLCD.setColor(255, 255, 255);

myGLCD.drawRoundRect (x1, y1, x2, y2);

}

//====================================================

void drawDistanceSensor() {

myGLCD.setColor(100, 155, 203);

myGLCD.fillRoundRect (10, 10, 60, 36);

myGLCD.setColor(255, 255, 255);

myGLCD.drawRoundRect (10, 10, 60, 36);

myGLCD.setFont(BigFont);

myGLCD.setBackColor(100, 155, 203);

myGLCD.print(“<-“, 18, 15);

myGLCD.setBackColor(0, 0, 0);

myGLCD.setFont(SmallFont);

myGLCD.print(“Back to Main Menu”, 70, 18);

myGLCD.setFont(BigFont);

myGLCD.print(“Ultrasonic Sensor”, CENTER, 50);

myGLCD.print(“HC-SR04”, CENTER, 76);

myGLCD.setColor(255, 0, 0);

myGLCD.drawLine(0,100,319,100);

myGLCD.setBackColor(0, 0, 0);

myGLCD.setColor(255, 255, 255);

myGLCD.setFont(SmallFont);

myGLCD.print(“Select Unit”, 10, 114);

myGLCD.setFont(BigFont);

myGLCD.print(“Distance:”, 130, 120);

myGLCD.setColor(223, 77, 55);

myGLCD.fillRoundRect (10, 135, 90, 163);

myGLCD.setColor(225, 255, 255);

myGLCD.drawRoundRect (10, 135, 90, 163);

myGLCD.setBackColor(223, 77, 55);

myGLCD.setColor(255, 255, 255);

myGLCD.print(“cm”, 33, 140);

myGLCD.setColor(223, 77, 55);

myGLCD.fillRoundRect (10, 173, 90, 201);

myGLCD.setColor(255, 255, 255);

myGLCD.drawRoundRect (10, 173, 90, 201);

myGLCD.setBackColor(223, 77, 55);

myGLCD.setColor(255, 255, 255);

myGLCD.print(“inch”, 17, 180);

myGLCD.setBackColor(0, 0, 0);

myGLCD.setFont(SmallFont);

myGLCD.print(“Source code at: HowToMechatronics.com”, CENTER, 220);

}

//====================================================

//===== getDistance – Custom Function

void getDistance() {

// Clears the trigPin

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

// Sets the trigPin on HIGH state for 10 micro seconds

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

// Reads the echoPin, returns the sound wave travel time in microseconds

duration = pulseIn(echoPin, HIGH);

// Calculating the distance

distanceCm= duration*0.034/2;

distanceInch= distanceCm/2.53;

// Prints the distance in centimeters

if (selectedUnit == ‘0’ && distanceCm <=400) {

myGLCD.setFont(SevenSegNumFont);

myGLCD.setColor(0, 255, 0);

myGLCD.setBackColor(0, 0, 0);

myGLCD.printNumI(distanceCm,130, 145, 3,’0′);

myGLCD.setFont(BigFont);

myGLCD.print(“cm “, 235, 178);

}

// Prints the distance in inches

if (selectedUnit == ‘1’ && distanceCm <=160) {

myGLCD.setFont(SevenSegNumFont);

myGLCD.setColor(0, 255, 0);

myGLCD.setBackColor(0, 0, 0);

myGLCD.printNumI(distanceInch,130, 145, 3,’0′);

myGLCD.setFont(BigFont);

myGLCD.print(“inch”, 235, 178);

}

delay(10);

}

//====================================================

void drawLedControl() {

myGLCD.setColor(100, 155, 203);

myGLCD.fillRoundRect (10, 10, 60, 36);

myGLCD.setColor(255, 255, 255);

myGLCD.drawRoundRect (10, 10, 60, 36);

myGLCD.setFont(BigFont);

myGLCD.setBackColor(100, 155, 203);

myGLCD.print(“<-“, 18, 15);

myGLCD.setBackColor(0, 0, 0);

myGLCD.setFont(SmallFont);

myGLCD.print(“Back to Main Menu”, 70, 18);

myGLCD.setFont(BigFont);

myGLCD.print(“RGB LED Control”, CENTER, 50);

myGLCD.print(“LED Color:”, 10, 95);

myGLCD.print(“R”, 10, 135);

myGLCD.print(“G”, 10, 175);

myGLCD.print(“B”, 10, 215);

myGLCD.setColor(255, 0, 0);

myGLCD.drawLine(0,75,319,75);

myGLCD.setColor(255, 255, 255);

myGLCD.drawRect(30, 138, 310, 148); // R – Slider

myGLCD.drawRect(30, 178, 310, 188);

myGLCD.drawRect(30, 218, 310, 228);

}

//====================================================

//============= setLedColor() – Custom Funtion

void setLedColor() {

if (myTouch.dataAvailable()) {

myTouch.read();

x=myTouch.getX();

y=myTouch.getY();

// Area of the Red color slider

if( (y>=130) && (y<=156)) {

xR=x; // Stores the X value where the screen has been pressed in to variable xR

if (xR<=38) { // Confines the area of the slider to be above 38 pixels

xR=38;

}

if (xR>=303){ /// Confines the area of the slider to be under 310 pixels

xR=303;

}

}

// Area of the Green color slider

if( (y>=170) && (y<=196)) {

xG=x;

if (xG<=38) {

xG=38;

}

if (xG>=303){

xG=303;

}

}

// Area of the Blue color slider

if( (y>=210) && (y<=236)) {

xB=x;

if (xB<=38) {

xB=38;

}

if (xB>=303){

xB=303;

}

}

}

// Maps the values of the X – Axis from 38 to 0 and 310 to 255, because we need values from 0 to 255 for turning on the led

int xRC = map(xR,38,310,0,255);

int xGC = map(xG,38,310,0,255);

int xBC = map(xB,38,310,0,255);

// Sends PWM signal to the pins of the led

analogWrite(redLed, xRC);

analogWrite(greenLed, xGC);

analogWrite(blueLed, xBC);

// Draws a rectangle with the latest color combination

myGLCD.setColor(xRC, xGC, xBC);

myGLCD.fillRoundRect(175, 87, 310, 119);

// Draws the positioners

myGLCD.setColor(255, 255, 255);

myGLCD.fillRect(xR,139,(xR+4),147); // Positioner

myGLCD.setColor(xRC, 0, 0);

myGLCD.fillRect(31, 139, (xR-1), 147);

myGLCD.setColor(0, 0, 0);

myGLCD.fillRect((xR+5), 139, 309, 147);

myGLCD.setColor(255, 255, 255);

myGLCD.fillRect(xG,179,(xG+4),187);

myGLCD.setColor(0, xGC, 0);

myGLCD.fillRect(31, 179, (xG-1), 187);

myGLCD.setColor(0, 0, 0);

myGLCD.fillRect((xG+5), 179, 309, 187);

myGLCD.setColor(255, 255, 255);

myGLCD.fillRect(xB,219,(xB+4),227);

myGLCD.setColor(0, 0, xBC);

myGLCD.fillRect(31, 219, (xB-1), 227);

myGLCD.setColor(0, 0, 0);

myGLCD.fillRect((xB+5), 219, 309, 227);

}

//====================================================

void drawGround() {

myGLCD.setColor(221,216,148);

myGLCD.fillRect(0, 215, 319, 239);

myGLCD.setColor(47,175,68);

myGLCD.fillRect(0, 205, 319, 214);

myGLCD.setColor(0, 0, 0);

myGLCD.setBackColor(221, 216, 148);

myGLCD.setFont(BigFont);

myGLCD.print(“Score:”,5,220);

myGLCD.setFont(SmallFont);

myGLCD.print(“HowToMechatronics.com”, 140, 220);

}

void drawPilars(int x, int y) {

if (x>=270){

myGLCD.setColor(0, 200, 20);

myGLCD.fillRect(318, 0, x, y-1);

myGLCD.setColor(0, 0, 0);

myGLCD.drawRect(319, 0, x-1, y);

myGLCD.setColor(0, 200, 20);

myGLCD.fillRect(318, y+81, x, 203);

myGLCD.setColor(0, 0, 0);

myGLCD.drawRect(319, y+80, x-1, 204);

}

else if( x<=268) {

myGLCD.setColor(114, 198, 206);

myGLCD.fillRect(x+51, 0, x+53, y);

myGLCD.setColor(0, 200, 20);

myGLCD.fillRect(x+49, 1, x+1, y-1);

myGLCD.setColor(0, 0, 0);

myGLCD.drawRect(x+50, 0, x, y);

myGLCD.setColor(114, 198, 206);

myGLCD.fillRect(x-1, 0, x-3, y);

myGLCD.setColor(114, 198, 206);

myGLCD.fillRect(x+51, y+80, x+53, 204);

myGLCD.setColor(0, 200, 20);

myGLCD.fillRect(x+49, y+81, x+1, 203);

myGLCD.setColor(0, 0, 0);

myGLCD.drawRect(x+50, y+80, x, 204);

myGLCD.setColor(114, 198, 206);

myGLCD.fillRect(x-1, y+80, x-3, 204);

}

myGLCD.setColor(0, 0, 0);

myGLCD.setBackColor(221, 216, 148);

myGLCD.setFont(BigFont);

myGLCD.printNumI(score, 100, 220);

}

//====================================================

void drawBird(int y) {

if(y<=219) {

myGLCD.drawBitmap (50, y, 35, 30, bird01);

myGLCD.setColor(114, 198, 206);

myGLCD.fillRoundRect(50,y,85,y-6);

myGLCD.fillRoundRect(50,y+30,85,y+36);

}

else if(y>=200) {

myGLCD.drawBitmap (50, 200, 35, 30, bird01);

myGLCD.setColor(114, 198, 206);

myGLCD.fillRoundRect(50,200,85,200-6);

myGLCD.fillRoundRect(50,200+30,85,200+36);

}

}

void gameOver() {

myGLCD.clrScr();

myGLCD.setColor(255, 255, 255);

myGLCD.setBackColor(0, 0, 0);

myGLCD.setFont(BigFont);

myGLCD.print(“GAME OVER”, CENTER, 40);

myGLCD.print(“Score:”, 100, 80);

myGLCD.printNumI(score,200, 80);

myGLCD.print(“Restarting…”, CENTER, 120);

myGLCD.setFont(SevenSegNumFont);

myGLCD.printNumI(2,CENTER, 150);

delay(1000);

myGLCD.printNumI(1,CENTER, 150);

delay(1000);

myGLCD.setColor(114, 198, 206);

myGLCD.fillRect(0,0,319,239);

drawBird(30);

drawGround();

delay(1000);

}

//====================================================

void restartGame() {

delay(1000);

gameOver();

xP=319;

yB=30;

fallRate=0;

score=0;

}

Customer Reviews

There are no reviews yet.

Be the first to review “3.5 Inch Arduino TFT Display”

This site uses Akismet to reduce spam. Learn how your comment data is processed.