极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 33971|回复: 22

驱动淘宝2‘4寸 TFT带触摸屏的方法

[复制链接]
发表于 2015-6-2 22:16:34 | 显示全部楼层 |阅读模式
本帖最后由 Clagrens 于 2015-6-3 00:13 编辑

今天某宝入手了一个2.4TFT触摸屏……

宝贝地址:
http://item.taobao.com/item.htm?spm=a230r.1.14.36.YAipfw&id=39834819734&ns=1&abbucket=3#detail

不科学的竟然店家给的驱动没办法驱动(非病句也)……

于是此刻我就只能求助万能的google……然后终于找到解决办法了!!

首先,我是先搜索关于这个屏幕的信息,关键词“2.4 tft arduino”

找到这个网站,是卖这个屏幕的
http://www.banggood.com/2_4-Inch-TFT-LCD-Shield-Touch-Board-Display-Module-For-Arduino-UNO-p-940735.html

第一版就有一个高人提供了一个解决办法!


I got Touch and Screen working thanks to the links here and some some my own figuring out for the touchscreen!
My combination that worked is as follows:

“谢谢这些库文件的开放者,和一些为我的触摸屏指出型号的人,我终于使这个触摸屏可以触摸和显示了!以下是我的整理:”

Install 3 adafruit libraries)
(https://github.com/adafruit/Adafruit-GFX-Library)
(https://github.com/adafruit/TFTLCD-Library)
(https://github.com/adafruit/Touch-Screen-Library)

1.安装上面三个adafruit的库
(注,打开上面的页面之后页面右边有个downloadzip,下载就好了。不会用github的话可以百度找找。)
(注意,不同版本的arduino导入库的方法不一样,可以查找相关的版本导入方法,本教程基于arduino 1.6.4)

Open Examples > TFTLCD-Library-master > tftpaint
Change this to force the sample to use this display type
"uint16_t identifier = tft.readID();" to "uint16_t identifier = 0x9341;"

2.打开“文件->示例-> TFTLCD-Library-master > graphicstest”
3.修改
"uint16_t identifier = tft.readID();"

"uint16_t identifier = 0x9341;"

(为什么呢!因为国产山寨触摸屏没有给芯片写ID,所以导致adafruit库没办法识别,修改这一句后就能强制地调用9341的驱动!)

将上面几句改好之后液晶就能驱动了


对于触摸屏的话,有几种解决方案:

1.adafruit的标准定义      

#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

2.上面那个网址的定义

#define YP A2  // must be an analog pin, use "An" notation!
#define XM A1  // must be an analog pin, use "An" notation!
#define YM 7   // can be a digital pin
#define XP 6   // can be a digital pin

3.对某宝的国产屏定义

#define YP A1  // must be an analog pin, use "An" notation!
#define XM A2  // must be an analog pin, use "An" notation!
#define YM 7   // can be a digital pin
#define XP 6   // can be a digital pin


注意!!某宝给的国产屏按着上面定义给出的x轴点坐标是反转的

如果要跑示例中的tftpaint
需要将

p.x = map(p.x, TS_MINX, TS_MAXX, tft.width(), 0);
p.y = map(p.y, TS_MINY, TS_MAXY, tft.height(), 0);

改为

p.x = map(p.x, TS_MAXX, TS_MINX, tft.width(), 0);
p.y = map(p.y, TS_MINY, TS_MAXY, tft.height(), 0);

这样才是真正能跑了

附上一张我的painttest





第一次发帖,请轻喷~谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2015-6-2 22:30:13 | 显示全部楼层
没人回复
回复 支持 反对

使用道具 举报

发表于 2015-6-2 22:56:36 | 显示全部楼层
贴出屏幕TB地址该
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-3 00:14:26 | 显示全部楼层
xiancai 发表于 2015-6-2 22:56
贴出屏幕TB地址该

http://item.taobao.com/item.htm?spm=a230r.1.14.36.YAipfw&id=39834819734&ns=1&abbucket=3#detail
回复 支持 反对

使用道具 举报

发表于 2015-6-3 11:22:21 | 显示全部楼层
不错,支持折腾。就是担心arduino是否跑得开这个屏。
回复 支持 反对

使用道具 举报

发表于 2015-6-3 16:00:35 | 显示全部楼层
           我那个TFT40脚的
回复 支持 反对

使用道具 举报

发表于 2015-6-4 19:32:07 | 显示全部楼层
楼主怎么不早点贴出来啊,我刚刚把那个屏给退了,试了好几个库文件,都编译不过,有个显示图片的程序好不容易编译通过,串口监视器上显示sd卡读取成功,就是显示屏显示不了图片。问卖家,卖家给了我一个资料,结果还是不行。我就退了,你要是早点发出来多么多么好啊。呜呜。。。白白出了八块钱运费
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-5 10:10:29 | 显示全部楼层
雨轩 发表于 2015-6-4 19:32
楼主怎么不早点贴出来啊,我刚刚把那个屏给退了,试了好几个库文件,都编译不过,有个显示图片的程序好不 ...

没事,你也从这块屏幕学会了不少嘛
回复 支持 反对

使用道具 举报

发表于 2015-6-9 21:43:26 | 显示全部楼层
楼主啊,我之前还买了一个屏,是2.2寸的2.2寸屏,不是打广告
卖家给的程序中没有从SD卡中读图片,你知道怎么弄不?能教下我嘛
回复 支持 反对

使用道具 举报

发表于 2015-7-4 14:26:00 | 显示全部楼层
我看了代码:LCD脚定义和触摸屏定义有重复,A1/A2,这样能正常工作吗?
急需要。
Adafruit_TFTLCD(uint8_t cs, uint8_t cd, uint8_t wr, uint8_t rd, uint8_t rst);
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin

触摸屏 四线
#define YP A1  // must be an analog pin, use "An" notation!
#define XM A2  // must be an analog pin, use "An" notation!
#define YM 7   // can be a digital pin
#define XP 6
回复 支持 反对

使用道具 举报

发表于 2015-8-13 21:54:48 | 显示全部楼层
本帖最后由 wdjkzym 于 2015-8-18 03:38 编辑

我刚买了一块到手 也是楼主这个屏  
不过按楼主说的方法没驱动成 一直白屏
TFTLCD-Library-master TFTShieldExampleCodemaster没成
最后还是换回1.0.5    把TFTLCD.ZIP运行成了  
触摸部分TouchScreenLibrarymaster可以用但是触摸不灵  位置也不准 看楼主的照片发现和我买的有一点点不同(同店铺)
USB口表面要做绝缘处理 要不一按就和触摸屏上的触点短路
(ps这家我买了三个NANO坏了一个..还没解决)
回复 支持 反对

使用道具 举报

发表于 2015-8-18 10:00:44 | 显示全部楼层
wdjkzym 发表于 2015-8-13 21:54
我刚买了一块到手 也是楼主这个屏  
不过按楼主说的方法没驱动成 一直白屏
TFTLCD-Library-master TFTShi ...

重新测试了 TouchScreenLibrarymaster库内部的数据  
根据手上触摸屏测试  重写了部分算法  终于可以流畅的触摸了
另外触摸屏的左上角偏移严重 需要后期修正一下  要不然画出的是个梯形范围
回复 支持 反对

使用道具 举报

发表于 2015-8-18 14:05:59 | 显示全部楼层
谢谢楼主 今天我找到那个网站把屏幕跑起来了 看你的帖子后把触摸跑起来了
回复 支持 反对

使用道具 举报

发表于 2015-8-18 14:42:03 | 显示全部楼层

1

wdjkzym 发表于 2015-8-18 10:00
重新测试了 TouchScreenLibrarymaster库内部的数据  
根据手上触摸屏测试  重写了部分算法  终于可以流畅 ...


我也有興趣買個觸屏試試, 大大可以把修改好的庫分享一下嗎?  謝謝.
回复 支持 反对

使用道具 举报

发表于 2015-8-19 12:20:38 | 显示全部楼层
本帖最后由 wdjkzym 于 2015-8-19 12:30 编辑
Super169 发表于 2015-8-18 14:42
我也有興趣買個觸屏試試, 大大可以把修改好的庫分享一下嗎?  謝謝.


楼上他们都运行起来了  可能只是我这个有质量问题
要是你到手的有问题 我再告诉你改哪句

今天NANO钱才退给我  
买个东西 一个坏 一个毛病 一个发错 我也是醉了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-28 20:04 , Processed in 0.051594 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表