使用ESP32通过Arduino IDE点亮1.8寸TFT显示屏

news2024/12/27 3:18:19

开发板选择

本次使用开发板模块丝印为ESP32-WROOM-32E
请添加图片描述

开发板库选择

Arduino IDE上型号选择为ESP32-WROOM-DA Module
在这里插入图片描述

显示屏选择

使用显示屏为8针SPI接口显示屏
驱动IC为ST7735S
请添加图片描述
请添加图片描述

使用库

使用三个Arduino平台库
分别是

  • Adafruit_GFX
  • Adafruit_ST7735
  • SPI

代码详解

首先引入使用的三个库

  • Adafruit_GFX
  • Adafruit_ST7735
  • SPI
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>

然后定义连接显示屏的引脚

#define TFT_CS    14 // 请替换为您的CS引脚号
#define TFT_DC    27 // 请替换为您的DC引脚号
#define TFT_RST   5 // 请替换为您的RST引脚号
//#define TFT_SCK   18 // 请替换为您的SCK引脚号 
//#define TFT_MOSI  23 // 请替换为您的MOSI引脚号

显示屏共有8个引脚
功能如下所示:

  1. BLK :背光控制引脚 低电平关闭背光 悬空或高电平为开启背光
  2. CS :(Chip Select,片选引脚) SPI通信中用于选择特定的芯片或设备
  3. DC :(Data/Command,数据 / 命令引脚) 显示屏驱动通过该引脚来识别接受的数据为数据或命令
  4. RST:(Reset,复位引脚) 用于将设备恢复到初始状态。
  5. SCL:(Serial Clock,串行时钟引脚) SPI协议中的CLK引脚
  6. SDA :(Serial Data,串行数据引脚) SPI协议中的MOSI引脚
  7. VDD:(Power Supply Voltage,电源引脚)
  8. GND:(Ground,接地引脚)

通过查看<Adafruit_ST7735.h>文件可以知道有两种初始化引脚方式
一种是使用

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);//创建显示屏对象并初始化

这时候可以将SCL和SDA引脚连接到默认的D18和D23引脚
也可以使用

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI , TFT_SCLK , TFT_RST);//创建显示屏对象并初始化

来自定义使用的引脚
在这里插入图片描述
显示代码则使用下面的函数进行相关显示配置

  tft.initR(INITR_BLACKTAB); 		//使用适当的初始化参数
  tft.setRotation(1); 				//设置显示方向,1表示顺时针旋转90度
  tft.fillScreen(ST7735_BLACK);		//设置背景颜色
  tft.setTextColor(ST7735_WHITE);	//设置文字颜色
  tft.setTextSize(2);				//设置字体大小
  tft.setCursor(10, 10);			//设置起始位置
  tft.println("Hello, ST7735!");	//输出显示的文本信息

下面代码则用来测试程序是否正确运行
正常运行时板载的LED灯将会闪烁

  pinMode(2, OUTPUT);  // 将引脚2设置为输出模式
  digitalWrite(2, LOW);  // 将引脚2设置为低电平
  delay(1000);
  digitalWrite(2, HIGH);  // 将引脚2设置为高电平
  delay(1000);

完整代码

//引入显示屏库
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>

#define TFT_CS    14 // 请替换为您的CS引脚号
#define TFT_DC    27 // 请替换为您的DC引脚号
#define TFT_RST   5 // 请替换为您的RST引脚号
//#define TFT_SCK   18 // 请替换为您的SCK引脚号 
//#define TFT_MOSI  23 // 请替换为您的MOSI引脚号
//已经默认配置

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);//创建显示屏对象并初始化

void setup() {
  pinMode(2, OUTPUT);  // 将引脚2设置为输出模式
  tft.initR(INITR_BLACKTAB); // 使用适当的初始化参数
  tft.setRotation(1); // 设置显示方向,1表示顺时针旋转90度
  tft.fillScreen(ST7735_BLACK);//设置背景颜色
  tft.setTextColor(ST7735_WHITE);//设置文字颜色
  tft.setTextSize(2);//设置字体大小
  tft.setCursor(10, 10);//设置起始位置
  tft.println("Hello, ST7735!");
}

void loop() {
  digitalWrite(2, LOW);  // 将引脚2设置为低电平
  delay(1000);
  digitalWrite(2, HIGH);  // 将引脚2设置为高电平
  delay(1000);
}

显示测试

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2251445.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

yolo辅助我们健身锻炼

使用软件辅助健身能够大大提升运动效果并帮助你更轻松地达成健身目标。确保每次锻炼都更加高效且针对性强,精确记录你的训练进度,帮助你更清晰地看到自己的进步,避免无效训练。 借助YOLO11的尖端计算机视觉技术,跟踪和分析锻炼变得异常简单。它可以无缝检测和监控多种锻炼…

YOLO系列论文综述(从YOLOv1到YOLOv11)【第12篇:YOLOv9——可编程梯度信息(PGI)+广义高效层聚合网络(GELAN)】

YOLOv9 1 摘要2 改进点3 网络架构 YOLO系列博文&#xff1a; 【第1篇&#xff1a;概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】【第2篇&#xff1a;YOLO系列论文、代码和主要优缺点汇总】【第3篇&#xff1a;YOLOv1——YOLO的开山之作】【第4篇&#xff1a;YOLOv2—…

新能源汽车充电插口类型识别-YOLO标记,可识别Type1,ccs2的充电标准

前言: CCS标准定义的Type-2 CCS汽车充电端口&#xff0c;右侧装有直流充电枪的插头。汽车的充电端口设计巧妙地将交流部分&#xff08;上半部分&#xff09;与直流部分&#xff08;下半部分的两个粗大的接口&#xff09;集于一体。在交流和直流充电过程中&#xff0c;电动汽车…

k8s集成skywalking

如果能科学上网的话&#xff0c;安装应该不难&#xff0c;如果有问题可以给我留言 本篇文章我将给大家介绍“分布式链路追踪”的内容&#xff0c;对于目前大部分采用微服务架构的公司来说&#xff0c;分布式链路追踪都是必备的&#xff0c;无论它是传统微服务体系亦或是新一代…

微信小程序构建npm失败,没有找到可以构建的npm包

方法&#xff1a;打开终端输入 npm init -y npm install 或 yarn install我用 npm install 下载后并没有出现node_modules, 又用 yarn install 下载&#xff0c;成功了 下载好后&#xff0c;在project.config.json文件添加 "showShadowRootInWxmlPanel": true, …

Vue.js中的交互式样式:鼠标悬停与点击选中响应

在现代Web开发中&#xff0c;用户体验是至关重要的。Vue.js作为一个渐进式JavaScript框架&#xff0c;它提供了一种简洁而高效的方式来构建用户界面。本文将介绍如何在Vue.js中实现两种常见的交互效果&#xff1a;鼠标悬停响应和点击选中响应。 一、鼠标悬停响应右边显示 在V…

0017. shell命令--tac

目录 17. shell命令--tac 功能说明 语法格式 选项说明 实践操作 注意事项 17. shell命令--tac 功能说明 Linux 的 tac 命令用于按行反向输出文件内容&#xff0c;与 cat 命令的输出顺序相反。非常有趣&#xff0c;好记。也就是说&#xff0c;当我们使用tac命令查看文件内…

Zero to JupyterHub with Kubernetes上篇 - Kubernetes 离线二进制部署

前言&#xff1a; 纯个人记录使用。 搭建 Zero to JupyterHub with Kubernetes 上篇 - Kubernetes 离线二进制部署。搭建 Zero to JupyterHub with Kubernetes 中篇 - Kubernetes 常规使用记录。搭建 Zero to JupyterHub with Kubernetes 下篇 - Jupyterhub on k8s。 k8s二进…

《Vue零基础入门教程》第十四课:列表渲染

往期内容 《Vue零基础入门教程》第六课&#xff1a;基本选项 《Vue零基础入门教程》第八课&#xff1a;模板语法 《Vue零基础入门教程》第九课&#xff1a;插值语法细节 《Vue零基础入门教程》第十课&#xff1a;属性绑定指令 《Vue零基础入门教程》第十一课&#xff1a;事…

1.1 数据结构的基本概念

1.1.1 基本概念和术语 一、数据、数据对象、数据元素和数据项的概念和关系 数据&#xff1a;是客观事物的符号表示&#xff0c;是所有能输入到计算机中并被计算机程序处理的符号的总称。 数据是计算机程序加工的原料。 数据对象&#xff1a;是具有相同性质的数据元素的集合&…

mmsegmentation自己的数据集

我最大的问题就是没安装官方给定的mask转换格式来转换 这种带白色的不行哦&#xff01; 黑色的可以&#xff0c;其实mask*50就可以看清楚标记的轮廓之类的。 数据集格式转换按照A,B,C代码直接转换&#xff1a;https://github.com/TommyZihao/Label2Everything/tree/main/lab…

分治算法中的主定理及其应用

引言 学习递归算法的时候&#xff0c;找到了用来计算算法复杂度的主定理。问大语言模型&#xff0c;发现回答的主定理描述有所不同。本文比较了两个不同版本中表述的差异。并给出一些例子用来计算分治递归类算法的复杂度。 主定理的不同版本 版本1 在《算法导论》第三版第四…

【kafka03】消息队列与微服务之Kafka 读写数据

Kafka 读写数据 参考文档 Apache Kafka 常见命令 kafka-topics.sh #消息的管理命令 kafka-console-producer.sh #生产者的模拟命令 kafka-console-consumer.sh #消费者的模拟命令 创建 Topic 创建topic名为 chen&#xff0c;partitions(分区)为3&#xff0…

LuaForWindows_v5.1.5-52.exe

Releases rjpcomputing/luaforwindows GitHub #lua C:\Users\Administrator\Desktop\test.lua print("Hello lua&#xff01;") print("ZengWenFeng 13805029595")

软件无线电(SDR)的架构及相关术语

今天简要介绍实现无线电系统调制和解调的主要方法&#xff0c;这在软件定义无线电(SDR)的背景下很重要。 外差和超外差 无线电发射机有两种主要架构——一种是从基带频率直接调制到射频频率&#xff08;称为外差&#xff09;&#xff0c;而第二种超外差是通过两个调制阶段来实…

【Electron学习笔记(四)】进程通信(IPC)

进程通信&#xff08;IPC&#xff09; 进程通信&#xff08;IPC&#xff09;前言正文1、渲染进程→主进程&#xff08;单向&#xff09;2、渲染进程⇌主进程&#xff08;双向&#xff09;3、主进程→渲染进程 进程通信&#xff08;IPC&#xff09; 前言 在Electron框架中&…

Power BI - Connect to SharePoint online list with Image column

1.简单介绍 当前SharePoint online list有modern和classic两种模式&#xff0c;现在使用modern模式的比较多。list中有Image类型的列&#xff0c;Power BI如何连接到SharePoint list并显示image呢 note, SharePoint list中的Image列&#xff0c;Lookup列&#xff0c;People列…

电机控制理论基础及其应用

电机控制理论是电气工程和自动化领域中的一个重要分支&#xff0c;它主要研究如何有效地控制电机的运行状态&#xff0c;包括速度、位置、扭矩等&#xff0c;以满足各种应用需求。电机控制理论的基础知识涵盖了电机的工作原理、数学模型、控制策略以及实现技术等方面。下面是一…

二十一、QT C++

1.1QT介绍 1.1.1 QT简介 Qt 是一个跨平台的应用程序和用户界面框架&#xff0c;用于开发图形用户界面&#xff08;GUI&#xff09;应用程序以及命令行工具。它最初由挪威的 Trolltech &#xff08;奇趣科技&#xff09;公司开发&#xff0c;现在由 Qt Company 维护&#xff…

基于Java Springboot蛋糕订购小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 微信…