7436| 1
|
[ESP32系列教程] ESP32 Arduino SSD1306 OLED教程:重绘字符串 |
简介 这个ESP32教程旨在解释我们如何使用运行在ESP32开发板上的Arduino核心改变SSD1306 OLED显示屏所绘字符串的值。为了展示制作过程,我们将通过每秒递增一次的简单计数器进行显示。您可以通过上一篇文章查看如何将ESP32连接到SSD1306 OLED显示器以及如何安装与之交互所需的库。本教程使用Elecrow版本SSD1306 OLED显示器。使用的ESP32 开发板型号为NodeMCU。 代码 我们将启动包含Wire.h库的代码,Wire.h库将应用于I2C与显示器的交互过程。我们还将囊括SSD1306.h库,它将公开显示器绘制所需的功能。 [mw_shl_code=applescript,true]#include <Wire.h> #include "SSD1306.h"[/mw_shl_code] 接下来,我们将创建一个SSD1306类的对象,它拥有我们如何在显示器上进行绘制的方法。 请记住,在上一篇文章中,该类的构造函数接收显示器的I2C地址作为第一个输入信号,并且第二个和第三个输入端分别接收I2C SDA和SCL引脚的编号。 在我们的案例中,我们将继续沿用前一篇文章所示的连接图,因此SDA引脚将为21,SCL将为22。 [mw_shl_code=applescript,true]SSD1306 display(0x3c, 21, 22);[/mw_shl_code] 我们还将计数器声明为全局变量,因此我们可以稍后在Arduino循环函数的多次迭代中对其进行递增。 [mw_shl_code=applescript,true]int counter = 0;[/mw_shl_code] 接下来设置函数,我们将通过调用显示对象的init方法对显示进行初始化。 [mw_shl_code=applescript,true]void setup() { display.init(); } [/mw_shl_code] 由于我们希望动态更改将在显示器上显示的字符串内容,我们将在Arduino循环函数上执行剩余代码。 因为在每次循环迭代中我们将显示新的内容,我们首先通过调用clear方法清除显示。此方法不接收任何参数并返回void。 [mw_shl_code=applescript,true]display.clear();[/mw_shl_code] 然后我们通过调用显示对象的drawString方法编写我们希望显示的字符串。 我们将把字符串绘制的坐标保持为零(drawString方法的第一个和第二个参数分别是x和y位置)。 对于第三个参数,我们将传递要绘制的字符串,它将通过我们的全局计数器进行构建。 [mw_shl_code=applescript,true]display.drawString(0,0, "Counter: " + String(counter));[/mw_shl_code] 接下来,为了在显示器上发送需要绘制的实际内容,我们在对象上调用display方法。 [mw_shl_code=applescript,true]display.display();[/mw_shl_code] 为了最终确定Arduino循环,我们将递增计数器并在每次迭代之间执行1秒的微小延迟。因此,显示器所示内容应每秒刷新一次,并显示计数器的新值。 [mw_shl_code=applescript,true]counter ++; delay(1000);[/mw_shl_code] 最终完整代码如下所示 [mw_shl_code=applescript,true]#include <Wire.h> #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); }[/mw_shl_code] 测试代码 在显示器和ESP32之间接线后,仅需使用Arduino IDE编译并上传代码即可。您可以在以下视频中查看预期结果。 注:本文作者是Nuno Santos,他是一位和蔼可亲的电子和计算机工程师,住在葡萄牙里斯本 (Lisbon)。 他写了200多篇有关ESP32、ESP8266的有用的教程和项目。 查看更多ESP32/ESP8266教程和项目: 中文版教程 : ESP32教程 合集 英文版教程 : ESP32 tutorial 合集 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed