一起玩儿物联网人工智能小车(ESP32)——59. 基于TFT_eSPI库的1.3寸SPI彩色显示屏的使用(ST7789)

这篇具有很好参考价值的文章主要介绍了一起玩儿物联网人工智能小车(ESP32)——59. 基于TFT_eSPI库的1.3寸SPI彩色显示屏的使用(ST7789)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘要:本文是TFT液晶屏的基本知识和TFT_eSPI库的简单介绍

在前边已经介绍过0.96寸OLED显示屏的使用方法,那是一个单色屏,显示效果很是一般,因此,本篇来介绍彩色TFT(Thin Film Transistor:薄膜晶体管)显示屏的使用方法。

TFT屏幕和OLED屏幕是两种不同的显示器件。TFT屏幕和OLED屏幕的区别在于使用的技术和原理不同。TFT屏幕是被动矩阵式液晶,需要用背光源的亮度来显示图像,会受周围光线影响。而OLED屏幕是依靠自身发光来显示图像,不需要用背光源,不受周围光线影响。

TFT屏幕和OLED屏幕也有不同的优缺点。TFT屏幕的优点是反应时间快,可视角度大,色彩还原度高。缺点是比较耗电,制造成本也比较高。而OLED屏幕的优点是可以做得更轻更薄,可视角度更大,并且能够显著节省电能。缺点是寿命短,而且没法把屏幕做得更大等。

下图就是本次要使用的1.3寸ST7789驱动的TFT屏幕。

tft_espi 文字滚动,基于ESP32的物联网人工智能小车,硬件功能模块,物联网,ESP32,单片机,TFT

该液晶显示模块的基本参数如下所示:

尺寸

1.3寸

分辨率

240*240

控制芯片

ST7789

显示区域

23.4X23.4(MM)

物理尺寸

27.5X39(MM)

接口类型

SPI

管脚数量

7针

工作电压

DC3.3V-5V

工作温度

-30-70C

显示颜色

彩色 (RGB)

对于一个用户来说,拿到一个液晶屏后最关心的可能是屏幕大小、显示分辨率以及显示的颜色数等参数。那么对于一个开发人员来说,关注点应该在工作电压、接口类型和控制芯片这几个与开发息息相关的参数。

下面来看一下接口的定义,通过上表可以看到,这个模块采用的是SPI通信接口。具体引脚的定义如下表所示:

序号

脚定义

说明

1

GND

电源地

2

VCC

电源正极(3.3V~5V)

3

SCL(SCK)

SPI时钟线

4

SDA

SPI数据线

5

RES

重启接口

6

DC

SPI数据/命令选择

7

BLK

背光控制

通过上面的表格可以看到,这是只有一根SPI数据线的SPI通信接口。这大概是因为不需要屏幕发送什么数据到主机的缘故。片选信号线在这个模块中也被省略掉了,也就是说,一个SPI总线,只能挂一个这样的屏幕模块了,否则主机是没有办法去区分这些不同的模块的。另外就是多了一个DC引脚,用来区分SPI总线传递的是命令还是数据,这大概是为了提高通信的效率,不用每个数据帧都标识自己是命令还是数据,而通过一个单独的引脚来通知屏幕设备,主机发送的是数据还是命令。

RES引脚是重启屏幕引脚。这个引脚可以连接到单片机的重启引脚,让它随着单片机一同重启,也可接到单片机的GPIO上,由程序来控制屏幕重启。BLK(背光控制)引脚默认悬空状态就可以了,背光会随着屏幕显示自动打开。当BLK为低电平时,表示关闭背光。

开发中,最关心的应该是屏幕的驱动芯片了,因为不同的芯片有不同的驱动库,对于屏幕的驱动还是非常复杂的,一般的开发人员利用现成的驱动库就可以了,不需要利用底层协议再去实现基础的显示功能了。

对于驱动库的选择,最主要的是要先看这个驱动库是不是支持我们的单片机和显示屏,然后再考虑其成熟程度、用户量、功能强弱等其他的因素。我们这次使用的驱动库名字叫TFT_eSPI,从名字就可以看出这是专门为SPI接口的TFT显示屏开发的驱动函数库。在Arduino IDE的库管理里面,输入“TFT_eSPI”就可以找到这个库并进行安装了。如下图所示:

tft_espi 文字滚动,基于ESP32的物联网人工智能小车,硬件功能模块,物联网,ESP32,单片机,TFT

TFT_eSPI是一个用于驱动液晶显示屏的Arduino库。它提供了一套简单易用的API,可以方便地控制和操作液晶显示屏。该库支持多种不同的液晶控制器和显示屏,包括SPI和I2C接口的液晶屏。TFT_eSPI库具有高度可定制性,可以根据具体的液晶屏和控制器进行配置和调整。它还提供了丰富的功能,如图形绘制、文本显示、触摸屏支持等,可以满足各种液晶显示屏的需求。

下表为TFT_eSPI库所支持的处理器和接口类型。

Processor

4 wire SPI

8-bit parallel

16-bit parallel

DMA support

RP2040

Yes

Yes

Yes

Yes (all)

ESP32

Yes

Yes

No

Yes (SPI only)

ESP32 C3

Yes

No

No

No

ESP32 S2

Yes

No

No

No

ESP32 S3

Yes

Yes

No

Yes (SPI only)

ESP8266

Yes

No

No

No

STM32Fxxx

Yes

Yes

No

Yes (SPI only)

Other

Yes

No

No

No

通过这个表格,可以看到目前TFT_eSPI所支持的处理器和接口类型。并且表中的芯片和所支持的接口类型,都进行了专门的优化,可以说最大化的发挥了处理器性能和接口的数据吞吐能力,因此,直接采用这个库来使用应该是远优于自己开发的。当然,互联网上还可以找到其他组织完成的类似的库,有兴趣的可以找来对比一下,看哪个库在功能、性能和易用性上更具优势。

使用TFT_eSPI库可以轻松地在Arduino上实现液晶显示屏的控制和操作。首先,你需要将TFT_eSPI库添加到Arduino IDE中。然后,根据你使用的液晶屏和控制器的类型,进行相应的配置。配置完成后,你可以使用TFT_eSPI库提供的函数和方法来控制液晶显示屏,例如绘制图形、显示文本、设置背光等。

以下是一个简单的示例代码,演示了如何使用TFT_eSPI库在Arduino上控制液晶显示屏,将显示屏设置为黑色背景,然后用蓝色的字显示“你好,欢迎来到一起玩儿科技!”:

#include <TFT_eSPI.h>

#include "STXINGKA36.h"

TFT_eSPI tft;

void setup() {

  tft.begin();

  tft.setRotation(1);

  tft.fillScreen(TFT_BLACK);

  tft.setTextColor(TFT_GREEN);

  tft.setCursor(10, 10);

  tft.loadFont(STXINGKA36);

  tft.println("你好, 欢迎来到一起玩儿科技!");

  tft.unloadFont();

}

void loop() {

  // put your main code here, to run repeatedly:

}

在上面的示例中,我们首先包含了TFT_eSPI库的头文件,并创建了一个TFT_eSPI对象。在setup函数中,我们初始化了TFT_eSPI库,并进行了一些基本的设置,如设置屏幕旋转、填充屏幕背景色、设置文本颜色等。然后,我们使用tft.println函数在屏幕上显示一条文本。

下面程序的运行结果如下:

tft_espi 文字滚动,基于ESP32的物联网人工智能小车,硬件功能模块,物联网,ESP32,单片机,TFT

需要提醒的是,上面的程序放到你们的环境中,还不能直接运行出这个结果来。因为还有两个方面的工作没做,一个是TFT_eSPI的配置还没有介绍该如何进行,直接下载的TFT_eSPI库是不知道你要连接什么型号的液晶屏,并且连接到哪些引脚的。另一个是要显示中文需要自己去制作字库,本身TFT_eSPI是不带中文字库的。这两方面的内容将放到下一篇文章中讲解。下期见!文章来源地址https://www.toymoban.com/news/detail-833784.html

到了这里,关于一起玩儿物联网人工智能小车(ESP32)——59. 基于TFT_eSPI库的1.3寸SPI彩色显示屏的使用(ST7789)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一起玩儿物联网人工智能小车(ESP32)——69 使用INMP441模块采集声音

    摘要:本文介绍如何使用INMP441模块采集声音 前边介绍了第一个基于I2S通信协议的MAX98357A模块,利用该模块可以播放各种声音文件。今天来介绍如何使用INMP441模块实现声音的采集功能,也就是如何将声音转变成数字信号。 INMP441是一款高性能,低功耗,数字输出的全向MEMS(微

    2024年03月15日
    浏览(66)
  • 一起玩儿物联网人工智能小车(ESP32)——63 SD和TF卡模块的使用

    摘要:本文介绍SD和TF卡模块的使用方法 前面介绍了非易失性存储的使用方法,由于空间和本身只支持键值对的限制,非易失性存储只适用于少量数据的记录。而不适用于各种声音、图片、大量数据等情况的使用。这时候就需要有文件系统或者更大容量存储空间的支持。SD卡(

    2024年02月22日
    浏览(55)
  • 一起玩儿物联网人工智能小车(ESP32)——71 姿态传感器MPU6050的使用方法

    摘要:本文介绍姿态传感器MPU6050的使用方法 姿态传感器是一种用于测量物体姿态的传感器,它可以检测物体的加速度和角速度,并计算出物体的方向和角度。前边介绍的RPI-1031只能定性的得到物体的倾斜情况,而姿态传感器则可以定量的得到物体倾斜的方向和角度。 MPU6050是

    2024年04月28日
    浏览(43)
  • 一起玩儿物联网人工智能小车(ESP32)——12. 组装L298N驱动马达和供电电路

    摘要:本文介绍L298N模块与TT马达以及电源模块的接线方法,并进行初始测试。 在前面完成了第一个ESP32程序。接下来要继续组装我们的智能物联网小车了。今天要完成的工作就是完成智能小车电机驱动和ESP32开发板的控制电路连接。在具体的动手之前,先要进行一些准备工作

    2024年02月02日
    浏览(53)
  • 一起玩儿物联网人工智能小车(ESP32)——59. 基于TFT_eSPI库的1.3寸SPI彩色显示屏的使用(ST7789)

    摘要:本文是TFT液晶屏的基本知识和TFT_eSPI库的简单介绍 在前边已经介绍过0.96寸OLED显示屏的使用方法,那是一个单色屏,显示效果很是一般,因此,本篇来介绍彩色TFT(Thin Film Transistor:薄膜晶体管)显示屏的使用方法。 TFT屏幕和OLED屏幕是两种不同的显示器件。TFT屏幕和

    2024年02月21日
    浏览(45)
  • 一起玩儿物联网人工智能小车(ESP32)——61 基于TFT_eSPI库的1.3寸SPI彩色显示屏的使用(ST7789)(三)

    摘要:本文介绍TFT_eSPI中文字库的制作方法 前面已经介绍了TFT_eSPI库的基本使用方法,如果你可以将英文显示到液晶屏幕上了,那么就可以尝试本文的制作中文字库,并显示中文到液晶屏幕了,否则还是要先完成上一篇文章的学习。 接下来就开始制作中文字库。TFT_eSPI自带了

    2024年02月21日
    浏览(50)
  • 一起玩儿物联网人工智能小车(ESP32)——41. 直流有刷电机驱动模块——L9110S、TB6612FNG和DRV8833简介

    摘要:本文介绍如何使用直流有刷电机驱动模块——L9110S、TB6612FNG和DRV8833 在前边很详细的介绍了直流有刷电机驱动模块L298N,该模块性能良好,输出功率大。但体积也是偏大,本篇文章介绍一下市场上另外几个常见的小型直流有刷电机驱动模块L9110S、TB6612FNG和DRV8833的使用方

    2024年02月21日
    浏览(47)
  • 一起玩儿物联网人工智能小车——04. TT马达的基本介绍

    马达和电机在英语中是两个词,但在我们汉语中感觉差别不大,大概是电机专指电能转与机械能的相互转换的装置,而马达可能包含其他形式的能量与机械能的转换装置。在本文中马达就是特指将电能转化为机械能的电动机。 日常使用的电动机在作用上通常可以分为两种,一

    2024年02月20日
    浏览(50)
  • 物联网毕设 -- 智能图像小车(ESP32+STM32+APP)

    目录 前言  小车拓展 一 连线图 1. 原理图 2. 流程图 3. 实物效果 4. 功能概括 (1)硬件端: (2)APP端: 演示视频 二 底层代码使用方式 1. 使用说明 2. 下载程序 三 APP使用方式 1.下载APP (1)操作方式: (2)使用说明 2. APP界面 🫡若需要,请咨询博主🫡 这个项目的硬件端是

    2024年02月15日
    浏览(44)
  • 走进人工智能| 智能物联网 AIoT的魅力交织

    前言: AI+IoT是指人工智能(AI)与物联网(IoT)的结合。智能物联网是一种技术体系,通过连接和集成物理设备、传感器和互联网,实现设备之间的智能交互和数据共享,为人们提供智能化、自动化和高效化的生活和工作体验。 智能物联网 (Internet of Things,IoT)是指 通过物

    2024年02月14日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包