在本教程中,我们将学习如何将OLED显示模块与ESP32开发板接口。该项目中使用的OLED图形显示基于SSD1306 OLED驱动程序IC,并通过SPI进行通信。在您的DIY项目中使用ESP32与OLED一起显示文本,位图图像,图形等。
介绍
OLED或有机光发射二极管是一种先进的显示技术,它使用两个电极(阳极和阴极)之间的有机化合物膜,当在电极上施加电压时,有机膜发出光。
OLED显示器的主要优点是它发出了自己的光,不需要其他背光来源。因此,与LCD显示器相比,OLED显示器通常具有更好的对比度,亮度和视角。
OLED显示器的另一个重要特征是深黑级别。由于每个像素在OLED显示屏中发出自己的光线,以生成黑色,因此可以关闭单个像素。
SSD1306 OLED显示器的简短说明
您想在DIY项目中使用OLED显示吗?您是否要在显示屏上显示重要信息,例如IP地址,Web服务器地址等?然后,SSD1306 OLED显示模块是理想的选择。
该显示模块由单色OLED显示屏组成,分辨率为128像素x 64像素。它对角度为0.96英寸。此OLED显示器使用SSD1306 OLED驱动程序IC。
SSD1306 OLED显示器具有三种类型的通信接口:
- 8位6800平行界面
- 3或4丝SPI
- 一世2C
其中,我2C和SPI型OLED非常普遍。可以将配置从SPI更改为i2c和vice-cice-a(您的SMD电阻有焊料 /焊接器)。我拥有的模型是使用4线SPI通信。
SSD1306 OLED驱动程序IC具有128 x 64位图形显示数据RAM(GDDRAM)。它分为八页(第7页到第7页),每个页面都有128个段。同样,每个片段都包含8位,每个片段代表显示器的一个像素。
因此,8页 * 128个段 * 8位= 8192位(1024个字节)。
OLED显示模块的引脚
下表显示了基于7针SPI的OLED显示模块的引脚。
销(替代名称) |
描述 |
gnd | 地面 |
VCC |
电源供应 |
D0(SCK,SCL,CLK) | 钟 |
D1(MOSI,SDA) |
数据 |
res(rst) | 重启 |
DC(A0) |
数据 /命令选择 |
CS | 芯片选择 |
电源供应
SSD1306 OLED驱动程序IC在V上运行DD= 1.65V至3.3V,实际的OLED面板在V上运行CC= 7V至15V。OLED显示模块通过电荷泵电路(用于面板)和调节器(对于驱动器IC)(通常在3V和5V之间)来照顾这些宽的电压需求范围。
这使得OLED显示模块要连接到不同板(具有5V逻辑)和ESP32(带有3.3V逻辑)等不同板。
ESP32 OLED显示界面
现在让我们看看如何与ESP32连接OLED显示器。首先要理解的是通信界面是SPI。因此,查看ESP32的引脚并识别SPI引脚。
从上图中,可以在SPI接口的ESP32开发板上获得HSPI和VSPI。让我们使用VSPI外围。ESP32中VSPI的引脚是:
VSPI引脚 |
GPIO PIN |
vspi_mosi |
GPIO 23 |
vspi_miso | GPIO 19 |
vspi_clk |
GPIO 18 |
vspi_cs | GPIO 5 |
笔记:ESP32完全具有4个SPI外围设备。(SPI0,SPI1,HSPI和VSPI)。SPI0专用于SPI Flash IC。SPI1与SPI0共享硬件。这使HSPI和VSPI用于接口SPI设备。
下表显示了ESP32和OLED显示模块之间的连接。总的来说,我们必须建立七个连接,因为这是一个SPI OLED显示器。
OLED展示 |
ESP32 |
gnd | gnd |
VCC |
3.3V |
D0(SCK) | GPIO 18 |
D1(MOSI) |
GPIO 23 |
res | GPIO 17 |
DC |
GPIO 16 |
CS | GPIO 5 |
需要组件
- ESP32 Devkit开发委员会
- OLED显示模块
- 面包板
- 连接电线
- 微型USB电缆
电路原理图
下图显示了与ESP32接口SPI OLED显示的电路图。
准备Arduino IDE
在编写代码之前,您需要下载一些与SSD1306 OLED显示有关的Arduino IDE的库。
我对如何在Arduino IDE中安装ESP32板进行了专门的教程。您可以先检查该教程。现在,打开Arduino IDE,然后转到工具 - >管理库。。。
图书馆管理器窗口将弹出。在搜索栏中,键入“ SSD1306”,然后从结果中选择“ Adafruit SSD1306”选项,然后单击“安装”。该库是专门为基于SSD1306驱动程序IC的单色OLED显示器编写的。支持的分辨率为128 x 32和128 x 64。
安装SSD1306库后,搜索“ GFX”并安装“ Adafruit GFX库”。这是Adafruit撰写的图形库,用于显示线条,圆形,矩形等的基本图形。
下载所有必要的库后,关闭图书馆管理器窗口。现在,确保在Arduino IDE(工具 - > board-> ESP32 Arduino-> ESP32 Dev Module)中选择ESP32板。
测试ESP32 OLED显示器
建立所有必要的连接后,我们现在将继续为ESP32编写测试代码,以在OLED显示屏上显示一些文本和图形。在此代码中,我正在测试OLED显示的各种功能,例如显示正常文本,倒文本,滚动文本,显示ASCII字符,设置字体大小。
我还添加了用于显示矩形,填充矩形,圆形矩形,填充的圆形矩形,圆圈,填充圆,三角形和填充三角形的图形的代码。
最后,我获取了“电子中心”徽标,并将其转换伟德亚洲会玩假吗为位图并将其显示在OLED显示屏上。
结论
关于如何与ESP32 Devkit板接口SPI OLED显示模块的简单教程。您了解了SSD1306 OLED显示屏的引脚,SPI接口与ESP32的必要连接,为Arduino IDE下载库,并在OLED显示器上使用ESP32在OLED显示器上显示一些文本,图形和图像。
一个回应
RES和CS不能连接ESP GPIO16 17,因为我计划将GPIO 16 17用作TX,RX?
谢谢您的回复!