Problem with Touch_Pins Diagnosed for 3.5" TFT LCD Touch Screen

Hello everyone,

I bought a 3.5" TFT LCD Touch Screen from KUMAN last year for my project but could not get it to work so I tossed it aside and used something else. This time, I decided to use it for my new project (Snack Vending Machine) and I have ran into this thread from Yakopra and followed every steps to run all the tests and download all the necessary libraries for the LCD. But, there was a problem when I ran the "diagnose_Touchpins.ino", I did not get the same result as the poster did. This is what I got on the Serial Monitor:

Making all control and bus pins INPUT_PULLUP
Typical 30k Analog pullup with corresponding pin
would read low when digital is written LOW
e.g. reads ~25 for 300R x direction
e.g. reads ~30 for 500R Y direction

Testing : (A3, D9) = 31

and it just stopped at that. I was wondering if there was something wrong with my LCD. All of the other examples seem to run fine. I have not tried running the ShowBMP.ino examples yet since I have no intention of using it anyways. This is my first time using this LCD Touch Screen so I have no prior experience over this. Any helps would be very much appreciated.

This is the link to the product information: http://www.kumantech.com/kuman-uno-r3-35-tft-display-screen-with-sd-card-socket-for-arduino-mega-2560-board-module-sc3a_p0109.html

This is the thread from Yakopra: My 3.5 inch TFT LCD Touch Screen is finally working! - Displays - Arduino Forum

Khoa

Testing : (A3, D9) = 31

is a normal result for the Y direction.

I suspect that you have a cracked glass screen in the X direction. Hence it can not detect the XM, XP pins.

Since A3, D9 look like YP, YM pins, I guess that a non-broken screen would use A2, D8 for XM, XP
Measure the resistance with a DMM.

David.

Hi David,

Thank you for your response. Assuming that I had a cracked glass screen, would the X coordinate be 0 when I ran the "touchscreendemo.ino" example? Here is the codes of that example that I downloaded from:

// Touch screen library with X Y and Z (pressure) readings as well
// as oversampling to avoid 'bouncing'
// This demo code returns raw readings, public domain

#include <stdint.h>
#include "TouchScreen.h"

#define YP A2  // must be an analog pin, use "An" notation!
#define XM A3  // must be an analog pin, use "An" notation!
#define YM 8   // can be a digital pin
#define XP 9   // can be a digital pin

// For better pressure precision, we need to know the resistance
// between X+ and X- Use any multimeter to read it
// For the one we're using, its 300 ohms across the X plate
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);

void setup(void) {
  Serial.begin(9600);
}

void loop(void) {
  // a point object holds x y and z coordinates
  TSPoint p = ts.getPoint();
  
  // we have some minimum pressure we consider 'valid'
  // pressure of 0 means no pressing!
  if (p.z > ts.pressureThreshhold) {
     Serial.print("X = "); Serial.print(p.x);
     Serial.print("\tY = "); Serial.print(p.y);
     Serial.print("\tPressure = "); Serial.println(p.z);
  }

  delay(100);
}

Here is the output on Serial Monitor:

X = 967	Y = 1023	Pressure = 849
X = 965	Y = 1023	Pressure = 848
X = 961	Y = 1023	Pressure = 844
X = 966	Y = 1023	Pressure = 849
X = 956	Y = 1023	Pressure = 746
X = 956	Y = 1023	Pressure = 746
X = 967	Y = 1023	Pressure = 566
X = 968	Y = 1023	Pressure = 756
X = 968	Y = 1023	Pressure = 756
X = 961	Y = 1023	Pressure = 844
X = 960	Y = 1023	Pressure = 750

As I noticed, the value of X changed a little bit but the Y value stayed constant and the pressure values were quite high (in my opinion) when I used the stylish to touch random spot on the screen.

My question is: Is it the right code to test for my TFT LCD and what should I expect the output so that I know my LCD is working properly? Also, I do not really know how to measure the resistance of the LCD using DMM. If you had any tutorials for that, I would really appreciate. Thanks again.

Khoa

david_prentice:
Since A3, D9 look like YP, YM pins, I guess that a non-broken screen would use A2, D8 for XM, XP
Measure the resistance with a DMM.

  1. Unplug the Shield from the Uno.
  2. Select Resistance on the DMM.
  3. Connect one probe to A2 (LCD_RS) and other probe to 8 (LCD_D0)
  4. Note the resistance. A good panel should be 300R.
  5. Connect one probe to A3 (LCD_CS) and other probe to 9 (LCD_D1)
  6. I would expect 500R.

I am fairly confident that these are the correct pins to test.
But you can always try A0-A3 pins with LCD_D0 .. LCD_D7.

David.

Thank you David.

I measured the resistance between LCD_CS and LCD_D1 as 600 ohm and resistance between LCD_CD and LCD_D0 was 0. I also probed through A0-A3 with LCD_D0 - LCD_D7 and I did not get any readings except for LCD_CS and LCD_D1 as 600 ohm.

Does it mean that the touch screen feature of my LCD is broken? If so, is there any ways to fix it? Also, the resistance between LCD_CS and LCD_D1 was 600 ohm, which indicates something about the bad connection?

Khoa

I doubt if the

resistance between LCD_CD and LCD_D0 was 0R

It will be n.c. (no connection). Or possibly 100k or higher.

Yes, your Touch panel is broken. Or possibly the 4-way ribbon and gold conductive paint is broken.

David.

Thank you for your time and responses, David.

Khoa