首页

如何实现NodeMCU ESP8266 OLED显示器的接口?

在本教程中,我们将学习如何连接SSD1306 OLED显示器与ESP8266。这种特殊的OLED显示器是一个7针SPI类型。因此,我们将使用NodeMCU开发板来代替常规的ESP-01模块。我们将学习与ESP8266 NodeMCU接口OLED显示器所需的引脚,显示位图图像,并了解ESP8266 NodeMCU OLED显示器接口的工作原理。

如果你想用ESP32开发板连接OLED显示器,那么我做了一个专门的教程。检查出来。

ESP8266-OLED

简介

有机发光二极管(Organic Light Emitting Diode,简称OLED)是一种广泛应用于手机和电视的显示技术。OLED显示器能够在单个像素水平产生自己的背光。这与LCD显示器不同,LCD显示器需要一个单独的背光来照亮面板。

说到对比度,由于单个像素会发出自己的光,因此也可以关闭它来产生深黑色的图像。因此,OLED显示屏的对比度比普通LCD显示屏要好得多。

由于能耗较低(只有像素点被点亮才会产生电流),OLED显示屏在电池驱动的设备上也很受欢迎,比如智能手表、健康追踪器和其他可穿戴设备。

关于SSD1306 OLED显示屏的简写

对于DIY项目,市场上有一些OLED显示器,通常分辨率为128×64像素或128×32像素。此外,根据提供的通信接口,有两种OLED显示器。一种使用I2C和其他使用SPI。

SPI-OLED-Display-Module-Front-Back

在这个项目中,我们将使用一个SPI型OLED显示器,其分辨率为128×64像素,对角线测量为0.96”。该OLED显示屏基于SSD1306 OLED驱动芯片。

你必须注意SSD1306 OLED驱动IC可以配置为在I中通信2C接口或SPI接口。因此,相同的OLED面板和相同的OLED驱动IC可以产生两个设备:一个是4引脚I2C型,另一种是7针SPI型。

SPI-OLED-Display-Pinout

事实上,你甚至可以简单地通过焊接/解焊一些SMD电阻将一种类型修改为另一种类型。

识别ESP8266 NodeMCU的SPI引脚

如前所述,这种特殊的OLED是SPI类型。因此,我们必须在ESP8266中搜索和配置SPI引脚。由于ESP-01模块并没有扇出ESP8266EX SoC的所有引脚,所以我们将使用NodeMCU开发板。

如果你还记得ESP8266 NodeMCU Pinout教程,ESP8266有两个SPI接口:SPI和HSPI。但是SPI接口已经被ESP8266EX SoC用于连接ESP-12E模块中的SPI Flash芯片。

所以,我们只剩下HSPI接口。

NodeMCU-Pinout-Image

看看ESP8266 NodeMCU的pinout图。HSPI引脚如下:

HSPI

GPIO NodeMCU
HSPI_MISO GPIO 12

D6

HSPI_MOSI

GPIO 13 D7
HSPI_CLK GPIO 14

D5

HSPI_CS

GPIO 15

D8

ESP8266 NodeMCU OLED显示接口

既然我们已经确定了ESP8266 NodeMCU的SPI引脚,现在我们可以开始用ESP8266接口OLED显示器。但是如果你注意到SPI OLED显示器的引脚,除了SPI引脚还有两个引脚。

它们是RST(复位)和DC(数据/命令)引脚。由于这些引脚只是控制引脚,所以我们可以使用ESP8266 NodeMCU的任何GPIO引脚。由于GPIO 4 (D2)和GPIO 5 (D1)是空闲的,我们就用它们来做这个。

因此,ESP8266 NodeMCU和SPI OLED显示器之间的连接看起来像这样:

OLED显示器

ESP8266 NodeMCU
接地

接地

VCC

3.3 v
D0 (sck / clk)

GPIO 14 (D5)

D1(莫西人)

GPIO 13 (D7)
RES

GPIO 4 (D2)

直流

GPIO 5 (D1)
CS

GPIO 15 (D8)

组件的要求

  • ESP8266 NodeMCU开发板
  • OLED显示器
  • 电路试验板
  • 连接电线
  • 微型usb电缆

线路图

ESP8266 NodeMCU OLED显示接口电路图如下图所示。该电路是针对SPI OLED显示器设计的。

ESP8666-NodeMCU-OLED-Display-Circuit

准备Arduino IDE

如果你使用OLED显示器(要么我2C或SPI类型),那么您可能已经下载了Arduino IDE所需的库。让我再带你过一遍这些步骤。

具体来说,您必须下载两个库。一个用于OLED驱动SSD1306,另一个用于显示一些基本图形。

通过选择工具->管理库,打开Arduino IDE和打开库管理器…

ESP8266-OLED-Arduino-IDE-1

搜索“ssd1306”并安装“Adafruit ssd1306”库。从图中可以看到,我已经安装了它。

ESP8266-OLED-Arduino-IDE-2

接下来,搜索“gfx”并安装“Adafruit gfx”库。在此之后,关闭库管理器。

ESP8266-OLED-Arduino-IDE-3

请确保选中NodeMCU单板。如果没有,您可以在“Tools -> board -> ESP8266 Boards”中选择该单板,单击“NodeMCU 1.0 (ESP-12E Module)”。另外,选择正确的COM端口(如果您已经连接并将NodeMCU连接到计算机)。

ESP8266-OLED-Arduino-IDE-4

我们现在准备在OLED显示屏上显示一些东西。

显示文本

首先,我们将编写一个小程序,它将显示一些基本的文本相关信息。这包括简单文本、倒置文本、滚动文本、ASCII字符和两种大小的字体。

代码

ESP8266-OLED-Text

显示图形

接下来,我们将使用GFX库来显示一些基本形状,如矩形、填充矩形、圆矩形、填充圆矩形、圆、填充圆、三角形和填充三角形。

代码

ESP8266-OLED-Graphics

显示位图图像

最后,为了演示SSD1306 OLED显示器的位图显示能力,让我们取一个小的位图图像并为该图像生成等价的字节码(使用GIMP或任何在线工具)。

我们必须在代码中插入这个字节代码,并使用“drawBitmap”函数在OLED显示器上显示图像。

代码

ESP8266-OLED-Bitmap

结论

一个简单的项目演示ESP8266 NodeMCU OLED显示接口。您学习了如何将ESP8266与SPI类型OLED显示器连接、下载必要的库文件、显示不同类型的文本文件、一些基本图形和位图图像。

留下一个回复

你的电邮地址不会被公布。

Electronicshub图标
Baidu
map