查看: 233|回复: 1

[Arduino] ESP32 Arduino SSD1306 OLED教程:重绘字符串

[复制链接]
简介
这个ESP32教程旨在解释我们如何使用运行在ESP32开发板上的Arduino核心改变SSD1306 OLED显示屏所绘字符串的值。为了展示制作过程,我们将通过每秒递增一次的简单计数器进行显示。您可以通过上一篇文章查看如何将ESP32连接到SSD1306 OLED显示器以及如何安装与之交互所需的库。本教程使用Elecrow版本SSD1306 OLED显示器。使用的ESP32 开发板型号为NodeMCU。




代码

我们将启动包含Wire.h库的代码,Wire.h库将应用于I2C与显示器的交互过程。我们还将囊括SSD1306.h库,它将公开显示器绘制所需的功能。


[AppleScript] 纯文本查看 复制代码
#include <Wire.h>[/backcolor]

#include "SSD1306.h"


接下来,我们将创建一个SSD1306类的对象,它拥有我们如何在显示器上进行绘制的方法。

请记住,在上一篇文章中,该类的构造函数接收显示器的I2C地址作为第一个输入信号,并且第二个和第三个输入端分别接收I2C SDA和SCL引脚的编号。

在我们的案例中,我们将继续沿用前一篇文章所示的连接图,因此SDA引脚将为21,SCL将为22。

[AppleScript] 纯文本查看 复制代码
SSD1306 display(0x3c, 21, 22);


我们还将计数器声明为全局变量,因此我们可以稍后在Arduino循环函数的多次迭代中对其进行递增。

[AppleScript] 纯文本查看 复制代码
int counter = 0;


接下来设置函数,我们将通过调用显示对象的init方法对显示进行初始化。

[AppleScript] 纯文本查看 复制代码
void setup() {[/backcolor]

  display.init();

}

 

由于我们希望动态更改将在显示器上显示的字符串内容,我们将在Arduino循环函数上执行剩余代码。

因为在每次循环迭代中我们将显示新的内容,我们首先通过调用clear方法清除显示。此方法不接收任何参数并返回void。

[AppleScript] 纯文本查看 复制代码
display.clear();


然后我们通过调用显示对象的drawString方法编写我们希望显示的字符串。

我们将把字符串绘制的坐标保持为零(drawString方法的第一个和第二个参数分别是x和y位置)。

对于第三个参数,我们将传递要绘制的字符串,它将通过我们的全局计数器进行构建。

[AppleScript] 纯文本查看 复制代码
display.drawString(0,0, "Counter: " + String(counter));


接下来,为了在显示器上发送需要绘制的实际内容,我们在对象上调用display方法。

[AppleScript] 纯文本查看 复制代码
display.display();


为了最终确定Arduino循环,我们将递增计数器并在每次迭代之间执行1秒的微小延迟。因此,显示器所示内容应每秒刷新一次,并显示计数器的新值。

[AppleScript] 纯文本查看 复制代码
counter ++;[/backcolor]

delay(1000);



最终完整代码如下所示

[AppleScript] 纯文本查看 复制代码
#include <Wire.h>[/backcolor]

#include "SSD1306.h"

 

SSD1306  display(0x3c, 21, 22);

int counter = 0;

 

void setup() {

  display.init();

}

 

void loop() {

  display.clear();

  display.drawString(0,0, "Counter: " + String(counter));

  display.display();

 

  counter ++;

  delay(1000);

}



测试代码



在显示器和ESP32之间接线后,仅需使用Arduino IDE编译并上传代码即可。您可以在以下视频中查看预期结果。


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

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




gada888  版主

发表于 2019-5-11 10:12:21

收藏了
回复 支持 反对

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

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

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

mail