使用 Arduino 在 OLED 屏幕上显示数据
在本教程中,我们将 Arduino 与 SSD 1306 OLED 显示屏连接起来。
电路图
如您所见,我们将 Vcc 连接到 3.3V,将 GND 连接到 GND,将 SDA 连接到 A4,将 SCL 连接到 A5。 A4 和 A5 还可用作 Arduino Uno 上的 SDA 和 SCL。
所需库
将 Arduino Uno 与 OLED 显示屏连接需要以下库 −
Adafruit SSD1306
Adafruit GFX
Adafruit BusIO(Adafruit GFX 所需)
转到工具 →管理库,搜索这些库并点击安装。
示例
代码如下−
#include <Wire.h> #include <Adafruit_SSD1306.h> #include <Adafruit_GFX.h> #define WIDTH 128 // OLED 宽度(像素) #define HEIGHT 64 // OLED 高度(像素) #define ADDRESS 0x3C //创建 SSD1306 显示对象 Adafruit_SSD1306 display(WIDTH, HEIGHT, &Wire, -1); void setup() { Serial.begin(9600); if(!display.begin(SSD1306_SWITCHCAPVCC, ADDRESS)) { Serial.println("SSD1306 initialization failed"); while(1){} } delay(5000); display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(1); display.setCursor(0, 10); // 显示静态文本 display.println("Hello World!"); display.display(); } void loop() { }
如您所见,我们首先包含所需的库,然后定义显示器宽度、高度和 I2C 地址。
#include <Wire.h> #include <Adafruit_SSD1306.h> #include <Adafruit_GFX.h> #define WIDTH 128 // OLED 宽度(像素) #define HEIGHT 64 // OLED 高度(像素) #define ADDRESS 0x3C
接下来,我们定义显示器。
Adafruit_SSD1306 display(WIDTH, HEIGHT, &Wire, -1);
末尾的 -1 表示此 OLED 显示器没有复位引脚。如果 OLED 屏幕确实有复位引脚,请输入复位引脚所连接的 Arduino 上的 GPIO 的引脚号。&Wire 表示 I2C 通信对象 (Wire)。
在 Setup 中,我们首先初始化 Serial,然后尝试使用 display.begin() 初始化显示对象。它接受两个参数:SSD1306_SWITCHCAPVCC 和 OLED 显示器的 I2C 地址。
您可能想知道 SSD1306_SWITCHCAPVCC 表示什么。根据 Adafruit SSD1306 库源代码中的注释,第一个参数决定 VCC 选择。
“传递 SSD1306_SWITCHCAPVCC 以从 3.3V 电源生成显示电压(升压),否则传递 SSD1306_EXTERNALVCC。大多数情况下,Adafruit SSD1306 分线都需要 SSD1306_SWITCHCAPVCC。”
如果初始化成功,我们将继续进行,否则我们将进入无限 while 循环。
如果我们继续进行,我们将等待一小段时间,然后清除显示,然后设置文本颜色、文本大小和光标位置,然后写入要显示的文本。我们鼓励您尝试一下文本颜色、大小和光标位置。
void setup() { Serial.begin(9600); if(!display.begin(SSD1306_SWITCHCAPVCC, ADDRESS)) { Serial.println("SSD1306 initialization failed"); while(1){} } delay(5000); display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(1); display.setCursor(0, 10); // 显示静态文本 display.println("Hello World!"); display.display(); }
在循环中,什么都没做。
void loop() { }