How to Use 2.4" TFT LCD Shield With Arduino Mega

20,244

21

21

About: My name is Bay Yolal, hello everybody!

Today, I am going to show you that we want to use 2.4" TFT LCD shield (There is mcufriend.com writes on this shield) works with Arduino Mega, because it is not so easy to run each other. But with this instructions, you can run and modify codes easily according to this tutorial.

Step 1: Assembly

This step is very easy. But please focus on Arduino Mega's Power side's Vin and between Analog In's A0 pins. This gap is our referance point to put this shield on Arduino Mega.

Step 2: Upload the Code

<p>#include  <Adafruit_GFX.h>   </p><p>#include "SWTFT.h" </p><p>#define LCD_CS A3 
#define LCD_CD A2 
#define LCD_WR A1 
#define LCD_RD A0 </p><p>SWTFT tft;</p><p>void setup(void) {
  Serial.begin(9600);
  Serial.println("TFT LCD Shield Test");</p><p>  tft.reset();</p><p>  uint16_t identifier = tft.readID();
  Serial.print("Your LCD driver chip name is: ");
  Serial.println(identifier, HEX);
  tft.begin(identifier);
  Serial.println("Working Well");
}</p><p>void loop(void) {
  for(uint8_t rotation=0; rotation<4; rotation++) {
    tft.setRotation(rotation);
    testText();
    delay(2000);
  }
}</p><p>unsigned long testText() {
  tft.fillScreen(0x0000);
  unsigned long start = micros();
  tft.setCursor(0, 0);
  tft.println();
  tft.setTextColor(0xFFFF);  tft.setTextSize(3);
  tft.println("Hello World!");
  tft.println();
  tft.setTextColor(0xFFE0); tft.setTextSize(2);
  tft.println("A Yellow Text Here");
  tft.println();
  tft.setTextColor(0x07E0);
  tft.setTextSize(3);
  tft.println("A Green Text Here");</p><p>  return micros() - start;
}</p>

On your Arduino IDE, select your COM port, select your board as Arduino Mega. Then upload these codes into your Arduino Mega board. You will see your codes are simply working.

Step 3: Necessary Libraries

1. Download libraries.rar file.

2. Go to start >> libraries >> Arduino >> Libraries >> paste these two files in there.

3. Paste the code from a step ago it was given to Arduino IDE screen

4. The library is normally for Arduino UNO, to make it work with Arduino MEGA go to the library folder and find SWTFT.cpp file and open it with notepad >> Find these code:

// Use the include which corresponde to your arduino

If you want to use your 2.4" TFT LCD Shield works with only Arduino MEGA uncomment this line as deleting //

//	#include "mega_24_shield.h"

If you want to use your 2.4" TFT LCD Shield works with only Arduino UNO uncomment this line as deleting //

//	#include "uno_24_shield.h"

Save and close, then return to Arduino IDE and enjoy :D

Step 4: Other Informations

This work is depending on these materials:

  • Code provided by Smoke And Wires
  • http://www.smokeandwires.co.nz
  • This code has been taken from the Adafruit TFT Library and modified
  • By us for use with our TFT Shields / Modules
  • For original code / licensing please refer to //http://www.smokeandwires.co.nz

Note: I only edit these codes to make all easy for beginners and who wants speed programming. But I also worked a little bit on it. Check the video above for original codes.

Note: I have solved this problem with help of this topic

Note: My old youtube video ison here

Note: Also on my website you may check the same informations.

.

That's all !

Step 5: BONUS: Reading This Instructable

NOTE: This instructable's step is aimed for visually impaired people to hear the sentences to learn what's going on here. Watch the video, it explains all steps.

2 People Made This Project!

Recommendations

  • Plastics Contest

    Plastics Contest
  • Make it Glow Contest 2018

    Make it Glow Contest 2018
  • Optics Contest

    Optics Contest

21 Discussions

0
None
ronaldb89

1 year ago

Hello sir I used your codes and libraries for testing my tft lcd and arduino mega 2560 but after I paste or follow your instructions i get this errors

Serial.begin(9600);

^

sketch_oct08a:8: error: 'Serial' does not name a type

Serial.println("TFT LCD Shield Test"); tft.reset(); uint16_t identifier = tft.readID();

^

sketch_oct08a:8: error: 'tft' does not name a type

Serial.println("TFT LCD Shield Test"); tft.reset(); uint16_t identifier = tft.readID();

so on and so fort? what do you think the problem is?

thanks in advance

0
None
jonathanm301

2 years ago

didn't simply work for me, it won't compile. unmexpected # and then why is there HTML type tags in the code? got rid of them and the first error gone but then states fatal error and won't compile because no adafruit GFX file. so I will install library and try again but didn't state it was needed ion tutorial.

1 reply
0
None
Bay Yolaljonathanm301

Reply 2 years ago

Please download my library in there. I am sorry about HTML that this is because of this website.

0
None
jonathanm301

2 years ago

one odd thing on serial monitor is

TFT LCD Shield Test
Your LCD driver chip name is: 0
Working Well

what should chip names be?

0
None
jonathanm301

2 years ago

so got the files from the second page installed libraries got rid of errors but screen is just scrammbled like snow on a tv without reception

0
None
jonathanm301

2 years ago

and now this

C:\Arduino\libraries\SWTFT\SWTFT.cpp:634:16: error: 'swap' was not declared in this scope

swap(x0, x1);

0
None
dilawarc

2 years ago

but sir what about touch screen!!!!!!on mega2560

1 reply
0
None
Bay Yolaldilawarc

Reply 2 years ago

I haven't use that but there are touchpad code example for UNO but I haven't tried for MEGA yet.

0
None
JohnR122

2 years ago

no I dont need it connected to the internet just save to sd card, say every 20 minutes something like that

2 replies
0
None
Bay YolalJohnR122

Reply 2 years ago

Okey, I did it. Please check my recent instructable page. Thank you.

0
None
JohnR122

2 years ago

all I need is a script that I can use with the touch screen. so that can be a weather station. the rain gauge is a seesaw type. I have a heap of sensors now and if I need more I will just buy them.

I would like it to save data to a micro sd card say rain and temp and this is where I fall down as I know I can upload scrips to them as long as they run but I dont know enough of the routines, to put everything together I can follow most of what been done, as I used to programme in stuff like turbo pascal many years ago

as for sensors I have a couple of starter kits and they have alsorts of bits and bobs in them. but at this point about all I can do is things like change whats shown on screen and make the led blink

1 reply
0
None
Bay YolalJohnR122

Reply 2 years ago

How was it? https://www.instructables.com/id/Arduino-Mega-24-TFT-LCD-Shield-DHT11-Temperature-a/

0
None
JohnR122

2 years ago

wow it works have it on uno and mega can you show me a simple way of using this as a weather station have the sensors humidity etc temp a heap of them do you have a script to do this not a plant waterer just a weather station please

4 replies
0
None
Bay YolalJohnR122

Reply 2 years ago

I can prepare temperature and humidity reader with LCD display to learn what is the values at this time. But you want internet connected weather station for a specific city, aren't you? Could you please explain a little bit more what is your need? Thank you :)

0
None
JohnR122Bay Yolal

Reply 2 years ago

dont know if its easier but I have a tft 320 qvt screen as well a mega 2560 and a couple of uno's plus a heap of shields

0
None
JohnR122Bay Yolal

Reply 2 years ago

no that would be fine temp humidity pressure and rain gauge just want to have a good use for that screen

0
None
Bay YolalJohnR122

Reply 2 years ago

Okey, I got it. I will write a new instructable to show you how I do. Could you please wait a little for me to prepare the project. Don't miss my instructables, so could you please click on follow button to follow me to don't miss any of my instructables? Thank you very much! :)

0
None
unimatics

2 years ago

It's working on arduino UNO .......

0
None
Dylan91

2 years ago

Big thank you for this instructable:) I learned from here how to use my tft lcd shield. And that's why i could my last procejt. So a big thank you for your work once again:)