0°

十六,ESP32 OLED(ssd1306)显示器入门

一,介绍

在本教程中,我们使用ESP32 在I2C OLED显示屏进行显示“hello word”,为了与显示屏进行交互,我们在这里使用了I2C的协议。让我们感到高兴的是,ESP32 的arduino核心已经实现了一个与Wire.h先对应的库。此外我们还需要安装一个ssd1306 的库,这个库可以使用更高级的API与显示器进行交互,提供了一些非常易于使用的功能,它可以通过Arduino IDE库管理器安装,如图1所示。

十五,ESP32 OLED(ssd1306)显示器入门
图一:使用arduino IDE 库管理器安装库

二,硬件

  • ESP32开发板
  • 一个I2C OLED显示屏
  • 导线若干
  • 一块面包板

三,电路图

OLED SDA引脚连接22SCL连接23

十五,ESP32 OLED(ssd1306)显示器入门

四,代码设计

我们需要做的第一件事是包括Wire.h库,它允许使用I2C协议与设备建立通信。该ESP32板的显示器使用该协议进行通信。

此外,我们需要包含  SSD1306.h库,它提供与显示器交互所需的更高级功能。这样,我们就不必担心较低级别的通信协议细节。

#include "SSD1306.h"

我们还将使用#define宏来指定ESP32 的SCLSDA引脚的值。从电路板背面可以看出(包含写在PCB中的一些引脚映射信息),SDA引脚对应22SCL对应23

#define SDA 22
#define SCL 23

最后,我们需要一个类SSD1306的对象  , 它将公开我们与显示器交互所需的所有方法。当我们包含SSD1306.h库时,此类可用

该类的构造函数接收显示器的I2C地址作为第一个参数,即  0x3c。另外,它分别接收SDA和SCL引脚的数量。请记住,我们之前使用#define指令定义了这些值,我们现在将使用它们。

SSD1306 display(0x3c, SDA, SCL);

继续进行Arduino设置功能,我们将通过调用SSD1306对象的init方法初始化显示。此方法调用不接收任何参数。

display.init();

要将一些内容写入显示,我们只需要在同一个SSD1306对象上调用drawString方法。作为第一个和第二个参数,我们分别传递x和y坐标,其中应该绘制字符串。

作为第三个参数,我们传递字符串来绘制。我们将传递一个非常简单的“Hello World”字符串,如下所示。

display.drawString(0, 0, "Hello World from ESP32!");

最后,我们调用display方法,确保在显示中绘制内容。此方法返回void并且不接收任何参数。

display.display();

以下就是完整的代码

/*******************************************************
            ESP32 使用OLED显示字符
   功能:使用OLED显示"hell0 world from ESP32"
   引脚: SDA-> GPIO22  SCL-> GPIO23
   Designer: Code_Mouse
   Date:2018-9-16
 *******************************************************/

#include "Wire.h"
#include "SSD1306.h" 
 
#define SDA 22
#define SCL 23
 
SSD1306 display(0x3c, SDA, SCL);
 
void setup() {
 
  display.init();
  display.drawString(0, 0, "Hello World from ESP32!");
  display.display();
}
 
void loop() {}

五.测试代码

要测试代码,只需编译它并将其上传到ESP32板。程序完成后,代码中定义的“Hello World from ESP32 ”字符串应打印在显示屏中,如图2所示。

 

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论