首页 > 其他分享 >ESP32-点亮TFT2.4电阻触摸屏 学习笔记

ESP32-点亮TFT2.4电阻触摸屏 学习笔记

时间:2024-07-01 20:58:40浏览次数:14  
标签:引脚 ESP32 触摸屏 坐标 TFT tft 屏幕 矩形 TFT2.4

1、下载好arduino IDE开发软件

IDE(Integrated Development Environment),译为集成开发环境,相当于编辑器编译器加连接器+其他。Arduino IDE就是Arduino团队提供的一款专门为Arduino设计的编程软件,使用它,我们便能将程序从代码上传至Arduino主板。

去官网下载:Software | Arduino,也可以去网上找云盘的资源

官网有win,Linux,mac三个版本的软件

2、安装依赖包TFT_eSPI且配置完成

2.1、安装失败或者时间太久处理方法

1、点击更多按钮,会跳转到对应的git地址,git是一个开源分享的社区。
2、以tft_eSPI依赖包为例,GitHub - Bodmer/TFT_eSPI: Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips 这就是它的开源地址
3、下载依赖包

4、解压会有应该文件夹

有的名称会是TFT_eSPI-master(涉及代码项目管理方面知识),要修改为TFT_eSPI,然后吧文件夹复制粘贴到arduino软件安装目录的libraries文件夹下,重新打开arduino软件,就会显示已经安装了

2.2、修改配置

打开软件安装目录,找到Use_Setup.h文件,这是一个设定TFT屏幕相关参数的文件,每个屏幕对应的Use_Setup.h文件里面的配置不一样,Use_Setup_select.h文件里面可以修改你要选择的屏幕配置文件。

例如:我把原来的Use_Setup.h复制粘贴且重命名为Use_Setup_base.h。然后修改Use_Setup.h里面的配置为自己屏幕对应的参数

就是这个文件,里面是屏幕配置

这里代表选择了Use_Setup.h这个配置文件

ILI9431就是我的屏幕驱动型号,网上买的TFT屏幕都会告诉你。

//#define ILI9341_DRIVER

两条斜杠代表注释这行,相当于word文档的标记,不是实际要运行的程序。把要选择的驱动放开,不需要的注释掉。一般快捷键是 control+/ 我的是macOS系统,快捷键是comd+/

这是我使用的tft2.4spi屏幕,spi代表通讯协议(可以自己学习一下)。为什么有两种型号勒?

因为14p排针是需要自己接线,而箭头指的这款是可以直插arduino uno开发版,但是这里我们是拿esp32开发,所以也直插不了、、、、后期学会了嘉立创IDE自己画板子的时候,想怎么接都可以,电路图是自己设计的。

接下来是屏幕颜色显示的模式和屏幕宽高,按照自己的屏幕来设置就可以

接下来可以按照我的配置来也可以自定义接口,我这样定义的原因可以看前面的引脚图就知道为什么了,到这里配置文件就结束了。触摸屏为什么只接一个,因为触摸要供用接口

3、ESP32与屏幕接线

可见对于touch的引脚定义只有一个。但是屏幕上的引脚有5个,这要怎么接?这就涉及spi协议的规定,这里不细入。简单来说,多个设备可以共用同一个引脚,把触摸屏看成显示和输入两个设备,共用部分引脚。

一个主设备和多个从设备的SCK、MISO、MOSI,是共享线路的,而CS引脚在这里就起到了重要的作用。它能够让主设备选择某一时刻与哪一个从设备进行通信。因此我们只需要将主设备的SCK、MISO、MOSI引脚引出,然后将多个从设备的SCK、MISO、MOSI引脚分别接在引出的三条对应的线路上,最后通过程序设置CS引脚来分时的选通从设备,就可以在这里实现对触摸显示屏的正常驱动。

另外根据我们引脚定义的第一行说明(leave TFT SDO disconnected if other SPI devices share MISO) ,显示MISO 接口是不需要接的。所以只要共享SCK,MOSI 两个引脚即可

esp32引脚(GPIO序号)

屏幕引脚

触摸引脚

19

MISO(读取数据接口)esp32不需要读取屏幕信号,不用接

T_DO(触摸读取信号)

2

MOSI(写数据接口)esp32需要写数据到屏幕,显示内容,别名SDA ,SDI(MOSI) ,T_DIN

T_DIN(触摸写写信号)

15

SCLK(时钟接口)相当于一个通讯频率,别名SCL,SCK ,T_CLK ,SCLK

T_SCK(触摸的时钟信号)

17

CS(它能够让主设备选择某一时刻与哪一个从设备进行通信,1号从设备)

16

DC(传输数据的接口)

4

RET(显示屏复位接口)相当于重启,别名RES,RESET ,RET

18

T_CS(可以接任何io口,相当于2号从设备)

4、显示文字

前面已经配好了Use_Setup.h文件,这里直接开写代码就可以

5、制作字库

首先要找tft_eSPI依赖包里面的提供给我们的工具,如下图所示,把需要用到的字体放入data文件夹,这里我是拿数码管字体来显示数字,字体有很多渠道可以获取。

字体准备好了,然后下载Processing是一种基于Java的编程语言和集成开发环境(IDE)。12345

Processing 专门用于数字艺术、视觉设计和互动艺术领域,它旨在让艺术家和设计师能够使用计算机进行创作,而无需具备专业的编程知识。Processing 的编程语言相比其他编程语言如C、C++、Python或Java来说更加简化和直观,而且它支持2D3D图形输出、交互式程序、OpenGL集成、以及与音频、视频、网络和设备的交互。此外,Processing 可以与Arduino等硬件平台结合使用,适合于制作交互式多媒体艺术作品。Processing 是一个免费和开源的项目,广泛应用于艺术、影像、影音的设计与处理,适合需要处理影像、动画、声音进行程序编辑的学生、艺术家、设计师、建筑师、研究员以及有兴趣的用户学习和使用

这里我们主要用这个来生成tft字库就可以,其他功能先不研究。用Processing打开Create_font.pde文件

在生成这个文件的时候,可以通过代码对图片进行缩放,需要一定的开发能力。有在线网站操作,可以先把图片转化成项目需要的大小,然后需要把图片转为GBR565格式的.h文件

这里是通过Java代码实现的,家人们可以各显神通,会Python,Java,都可以自己研究一下。

后续看看能不能做一个在线网站工具网站供网友们使用(博主是Java开发),所有代码或者工具,都可以加我好友,一起学习

6、显示效果

图片显示如下图,以下效果感觉还可以,不过后面会用LVGL来开发图形,不可能全部手搓图形控件

7、tft提供的基本函数

虽然tft提供了简单的画,线,圆,正方形

如果你很肝,可以拿画一个像素点来画出想要的东西,但是想实现LVGL图形库的效果,难上加难

tft.fillScreen(TFT_WHITE);  // 清空屏幕,将屏幕填充为黑色
// 绘制不同图形
// 绘制一个像素点,参数:x 坐标,y 坐标,颜色
tft.drawPixel(5, 5, TFT_RED);
// 绘制一条直线,参数:起点的 x 坐标,起点的 y 坐标,终点的 x 坐标,终点的 y 坐标,颜色
tft.drawLine(10, 20, 60, 20, TFT_GREEN);
// 第一行:矩形
// 绘制一个矩形边框,参数:左上角的 x 坐标,左上角的 y 坐标,矩形的宽度,矩形的高度,颜色
tft.drawRect(10, 40, 15, 10, TFT_BLUE);
// 绘制一个矩形填充,参数:左上角的 x 坐标,左上角的 y 坐标,矩形的宽度,矩形的高度,颜色
tft.fillRect(10, 40, 15, 10, TFT_YELLOW);
// 第二行:圆形
// 绘制一个圆形边框,参数:圆心的 x 坐标,圆心的 y 坐标,圆的半径,颜色
tft.drawCircle(65, 35, 7, TFT_MAGENTA);
// 绘制一个圆形填充,参数:圆心的 x 坐标,圆心的 y 坐标,圆的半径,颜色
tft.fillCircle(85, 35, 7, TFT_CYAN);
// 第三行:三角形
// 绘制一个三角形边框,参数:三个顶点的 x 坐标,三个顶点的 y 坐标,颜色
tft.drawTriangle(75, 80, 85, 70, 85, 80, TFT_ORANGE);
// 绘制一个三角形填充,参数:三个顶点的 x 坐标,三个顶点的 y 坐标,颜色
tft.fillTriangle(105, 80, 115, 70, 115, 80, TFT_PURPLE);
// 第四行:圆角矩形
// 绘制一个圆角矩形边框,参数:左上角的 x 坐标,左上角的 y 坐标,矩形的宽度,矩形的高度,圆角的半径,颜色
tft.drawRoundRect(10, 75, 20, 20, 5, TFT_PINK);
// 绘制一个圆角矩形填充,参数:左上角的 x 坐标,左上角的 y 坐标,矩形的宽度,矩形的高度,圆角的半径,颜色
tft.fillRoundRect(35, 75, 20, 20, 5, TFT_BLUE);

看效果,这里只学习了tft提供的基本函数,tft_eSPI依赖包的其他函数得自己研究了

8、触摸功能

前面已经把线接好了,可以直接运行tft依赖包提供的触摸功能演示,就是我光标选择的这个

这个文件里面的代码还有校准屏幕的功能,后面LVGL会用到这个参数

把这个代码下载到esp32,就会运行屏幕校准程序,大功告成,esp32点亮tft屏幕,已经可以实现触摸手写的功能,已经离使用LVGL图形更进一步

标签:引脚,ESP32,触摸屏,坐标,TFT,tft,屏幕,矩形,TFT2.4
From: https://blog.csdn.net/lianyinghhh/article/details/139971417

相关文章

  • ros - Adafruit ESP32 Feather与树莓派(Raspberry Pi)比较
    AdafruitESP32Feather和树莓派(RaspberryPi)都是广泛使用的硬件平台,分别在嵌入式系统和单板计算机领域具有各自的优势。以下是它们的详细比较,以及它们对机器人操作系统(ROS)的支持程度的分析。1.基本特性比较AdafruitESP32Feather核心处理器:双核XtensaLX6(最高240MHz)。......
  • 【ESP32】打造全网最强esp-idf基础教程——13.ESP32中的NVS
    ESP32中的NVS    这几天的天气只有钱包的余额能让我冷静,好好活着,每天都有新的打击,写写博客压压惊。一、什么是NVS?    NVS即Non-volatilestorage,意思是非易失存储,也就是掉电后能依然能持久化保存数据。在我们应用NVS时,一般用于存储一些配置数据、状态数据等,一......
  • MQTT + 微信小程序:打造你的掌上ESP32智能鱼缸,远程监控,实时掌控
    一、项目概述厌倦了传统鱼缸的繁琐管理?想要随时随地了解鱼儿的生活状态?本项目将带你使用ESP32开发板、MQTT通信协议和微信小程序,打造一个功能完善的智能鱼缸系统。实时监测水温、远程控制灯光、定时定量喂食……一切尽在掌握!二、系统架构本系统采用典型的物联网架构,......
  • 通过ESP32读取I2C温湿度传感器项目:协议与代码实例
    简介在本项目中,我们将使用ESP32开发板读取I2C温湿度传感器的数据。我们将详细介绍I2C协议,并提供图文并茂的代码实例,帮助你快速上手。项目流程选择硬件:ESP32开发板、I2C温湿度传感器(如DHT12、HTU21D、SHT30等)、连接线和面包板。了解I2C协议:I2C(Inter-IntegratedCircuit)是......
  • 打造智能家居:用ESP32轻松实现无线控制与环境监测
    ESP32是一款集成了Wi-Fi和蓝牙功能的微控制器,广泛应用于物联网项目。它由EspressifSystems公司开发,具有强大的处理能力和丰富的外设接口。下面我们将详细介绍ESP32的基础功能和引脚功能,并通过具体的实例项目展示其应用。主要功能双核处理器:两个XtensaLX6处理器,主频高达2......
  • esp32开发环境
    esp32开发环境的搭建,使用IDF的方式开发,在windows上安装两个软件就可以,一个是官方的espidf,另外一个是vscode。espidf下载网址:https://idf.espressif.com/zh-cn/index.html快速入门->安装->手动安装->;选择espidf下载VScode下载地址:https://code.visualstudio.com/安装三个......
  • 【esp32 学习笔记】 入门使用u8g2库(以OLED驱动芯片SSD1306为例)
    一、常用APIU8g2库提供了丰富的API,用于控制各种显示器并在屏幕上绘制文本、图形等元素。以下是U8g2库中一些常用的API:1.初始化-------U8G2U8G2(display,rotation,[,reset[,clock,data,cs,dc,reset,cs1,cs2,cs3]]) 初始化U8g2对象,其中display表示所使用的显示器......
  • 用ESP32(ESP32-CAM)(Micropython)、水位传感器、继电器、水泵 做根据水位自动加水的设
    基本流程水位传感器放在水缸内上方位置,水位到达水位传感器所在的位置时,水位传感器触发,并输出信号给到ESP32(ESP32CAM)。然后ESP32(ESP32CAM)控制继电器闭合,水泵启动并工作60S。之后还是根据传感器信号,决定继电器是闭合还是断开,一直循环下去。main.py点击查看main.pyfrom......
  • 【esp32 学习笔记】让SD卡发光发热~
    原理图:图 SD卡部分图MCU中与SD卡相关的接口连接关系如下:[ESP32IO26–CSMICROSD][ESP32IO23–MOSI(DI)MICROSD][ESP32IO19–MISO(DO)MICROSD][ESP32IO18–SCKMICROSD][ESP32GND–GNDMICROSD][3.3V–VCCMICROSD] 软件:我们将使用SD卡库用于沟......
  • ESP32学习笔记:NVS分区永久保存数据
    程序示例:/*ESP32startupcounterexamplewithPreferenceslibrary.ThissimpleexampledemonstratesusingthePreferenceslibrarytostorehowmanytimestheESP32modulehasbooted.ThePreferenceslibraryisawrapperaroundtheNon-volatilestorage......