2019-5-9 17:43:31 [显示全部楼层]
12515浏览
查看: 12515|回复: 1

[ESP32系列教程] ESP32 Arduino教程:与SSD1306 OLED显示屏进行交互

[复制链接]

简介
该esp32教程旨在解释如何使用Arduino核心将ESP32开发板连接到SSD1306 OLED显示器,并打印“Hello World”消息。本教程使用Elecrow的OLED版本。使用的ESP32板型号为NodeMCU。
为了便于与显示器进行交互,我们需要安装一个支持上述显示模型的库,并且能够在ESP32开发板上使用。您可以在如下图1中对库进行查看,并通过Arduino IDE库管理器进行安装。
您可以在此处查看库的GitHub页面,该页面详细说明了能够与显示器交互的API。

ESP32 Arduino教程:与SSD1306 OLED显示屏进行交互图1
图1  - 安装OLED库。

本教程使用了Elecrow的OLED版本。它也可以作为这个启动工具包的一部分,使用的ESP32板是NodeMCU。

电气图
ESP32将通过I2C与SSD1306显示器进行交互。因此,除了电源之外,我们在设备之间只需要两根线。
电气图如下图2所示。我们分别使用ESP32引脚21和22作为I2C SDA和SCL。
由于SSD1306的工作电压为3.3 V,我们可以使用大多数ESP32电路板拥有的3.3 V电源引脚,对显示器进行供电。
请注意,根据您的开发板型号,引脚标注名称或编号可能与ESP32微控制器名称或编号不匹配。在继续实际接线前,您应该查看电路板的引脚映射关系并进行确认。

ESP32 Arduino教程:与SSD1306 OLED显示屏进行交互图2
图2  -  ESP32和SSD1306 OLED显示屏之间的电气图。
代码
本教程代码非常简单,因为我们刚刚安装的库具有非常易于使用的API。
首先,我们需要囊括Wire.h库,这是与OLED显示器进行I2C通信所需的内容。我们还需要加入SSD1306.h库,我们将使用它来与设备进行交互。

[mw_shl_code=applescript,true]#include <wire.h>

#include "SSD1306.h"[/mw_shl_code]

接下来,我们需要声明SSD1306类对象,它将提供在显示中绘制所需的功能。我们将调用此对象显示。
所述类构造函数接收器件的I2C地址作为第一个参数,即0x3c。对于第二个和第三个参数,构造函数分别接收SDA和SCL引脚的数量。在我们的示例中,我们使用ESP32的引脚21和22,如示意图所示。

[mw_shl_code=applescript,true]SSD1306 display(0x3c, 21, 22);

[/mw_shl_code]

现在,在setup函数中,我们将通过调用display对象的init方法对显示进行初始化。此方法不接收任何参数并返回void。

[mw_shl_code=applescript,true]display.init();[/mw_shl_code]
接下来我们可以开始在显示屏上绘图。对于这个简单示例,我们将绘制一个非常简单的“Hello World”消息。为此,我们可以调用display对象的drawString方法。
此方法接收x和y坐标作为第一个和第二个参数,其中字符串将在显示器上绘制,并且作为第三个参数,它接收具有实际内容的字符串。

[mw_shl_code=applescript,true]display.drawString(0, 0, "Hello World");[/mw_shl_code]
最后,为了将内容发送到显示器以便进行有效绘制,我们需要在对象中调用display方法。此方法不接收任何参数。

[mw_shl_code=applescript,true]display.display();[/mw_shl_code]

由于我们不打算更改显示内容,因此我们可能会保留一个空的Arduino循环函数。一旦连接成功,我们刚才绘制的字符串就会保留在显示屏上。最终的源代码如下所示。

[mw_shl_code=applescript,true]#include <Wire.h>

#include "SSD1306.h"



SSD1306  display(0x3c, 21, 22);



void setup() {



  display.init();

  display.drawString(0, 0, "Hello World");

  display.display();

}



void loop() {}[/mw_shl_code]


代码测试
如需测试代码,在完成图1图表所指定的接线后,只需编译它并使用Arduino IDE将其上传到ESP32开发板即可。
执行程序后,显示屏上将出现“Hello World”消息,如图3所示。


ESP32 Arduino教程:与SSD1306 OLED显示屏进行交互图3

注:本文作者是Nuno Santos,他是一位和蔼可亲的电子和计算机工程师,住在葡萄牙里斯本 (Lisbon)。
他写了200多篇有关ESP32、ESP8266的有用的教程和项目。

查看更多ESP32/ESP8266教程和项目:
中文版教程 : ESP32教程 合集
英文版教程 : ESP32 tutorial 合集


gada888  版主

发表于 2019-5-11 10:10:44

有用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail