完整指南:使用Arduino的0.96英寸OLED显示屏
完整指南:使用Arduino的0.96英寸OLED显示屏
OLED显示屏已成为Arduino项目中的热门选择,主要因为其结构紧凑、功耗低,且即使在明亮的环境下也能提供出色的可视性。此外,由于其连接方便,任何电子爱好者都可以使用它,无论他们的经验如何。本文将详细介绍如何使用Arduino连接和编程0.96英寸OLED显示屏,包括技术细节和实用代码示例。
如果您从未使用过OLED显示屏,在开始项目之前,您应该了解一些关键点。OLED(有机发光二极管)与LCD等其他类型的屏幕有根本区别。例如,OLED不需要背光,这显著降低了功耗。在小至0.96英寸的屏幕上,如果项目是电池供电的,这一点至关重要。现在,让我们深入研究一下它的功能。
什么是OLED屏幕?
OLED显示屏是一种使用有机化合物的显示器,在施加电流时会发光。这使得它们成为许多电子项目的理想选择,因为它们的技术允许每个像素自行发光,这也提高了户外能见度。大多数针对Arduino销售的OLED显示屏都配备了一个SSD1306控制器,可以管理向屏幕发送的信号。事实上,SSD1306是Arduino项目中最常见的控制器之一,我们将在后面的示例中看到它。
OLED显示屏的主要优点之一是功耗低。平均而言,0.96英寸的小屏幕可消耗约20mA的电流。为什么这很重要?如果使用电池为Arduino项目供电,降低功耗始终是一个重要的优势。此外,考虑到其尺寸,其128x64像素的分辨率可以呈现具有相当好的清晰度的图像。
另一方面,这种类型的屏幕可能存在的问题之一是它的尺寸非常小。尽管它们提供了良好的可视性,但在一些需要显示大量信息的项目中,这个尺寸可能不够。
将OLED显示屏连接到Arduino
OLED显示屏可以通过I2C或SPI总线轻松连接到Arduino板,具体取决于型号。在本教程中,我们将重点放在使用I2C的连接,因为它是最常见和最简单的连接之一。
您必须将OLED显示屏的引脚与Arduino的相应引脚连接起来,如下所示:
- GND(地)与Arduino GND脚位
- VCC与Arduino的5V或3.3V脚
- SDA至Arduino脚位A4
- SCL到Arduino的脚位A5
如您所见,连接非常简单:只需四条电缆。无论您使用SPI还是I2C总线,连接过程都是类似的,尽管引脚根据您选择的通信类型而有所不同。
OLED显示屏的代码示例
要让OLED屏幕与Arduino搭配使用,最好的选择之一是使用Adafruit开发的程序库。SSD1306控制器,正如我们之前提到的,与库兼容阿达水果SSD1306,这使我们在屏幕上创建图形和文字时变得更加轻松。
下面是一个基本代码示例,可以让您通过I2C连接在OLED屏幕上显示文字:
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.display();
delay(2000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 10);
display.println(F("Hola, Mundo!"));
display.display();
}
void loop() {}
此代码初始化屏幕,清除显示,然后写入“Hello, World!”在OLED屏幕上。您可以使用Adafruit GFX库的不同功能来创建图形、绘制线条、圆形,甚至在屏幕上显示图像。
OLED屏幕的其他有用示例
上面的示例只是基本介绍,但您可以使用OLED显示屏做更多事情。例如,您可以绘制不同的几何形状、制作动画甚至创建小图形。
Adafruit库提供的最有趣的功能之一是绘制多个像素的能力,这意味着您可以创建滚动动画。另一个例子是滚动文本,如果您计划显示动态变化的消息,这非常有用。
这些屏幕的另一个用途是在交互式项目中显示实时数据,例如温度或湿度传感器。当获得新的传感器读数时,屏幕可以更新,使任何项目更加直观。
使用OLED屏幕时的常见问题
将OLED显示屏与Arduino结合使用时最常见的问题之一是内存不足。Adafruit库虽然非常完整,但会消耗Arduino处理器上的大量内存,尤其是在像Arduino Uno这样的板子上。如果您遇到空间问题,可以尝试优化代码,删除不需要的功能,甚至使用容量更大的板,例如Arduino Mega。
另一个常见问题是I2C连接的初始设置。如果您没有使用正确的SDA和SCL引脚,显示屏可能无法工作或可能显示连接错误。确保根据您的Arduino型号使用正确的引脚。
最后,一些用户也报告出现黑屏或不响应任何命令的情况。这可以通过确保电源电压正确(3.3V或5V,取决于显示屏型号)并且电缆连接正确来解决。