在Arduino上显示OLED屏幕数据
在本教程中,我们将Arduino与SSD 1306 OLED显示屏连接。
电路图
如您所见,我们将Vcc连接到3.3V,GND连接到GND,SDA连接到A4,SCL连接到A5。A4和A5在Arduino Uno上也充当SDA和SCL。
所需库
与OLED显示屏连接Arduino Uno需要以下库:
Adafruit SSD1306
Adafruit GFX
Adafruit BusIO(Adafruit GFX需要)
转到**工具 → 管理库**,搜索这些库并点击安装。
示例
代码如下:
#include <Wire.h> #include <Adafruit_SSD1306.h> #include <Adafruit_GFX.h> #define WIDTH 128 // OLED width (pixels) #define HEIGHT 64 // OLED height (pixels) #define ADDRESS 0x3C //Creation of SSD1306 display object 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 static text display.println("Hello World!"); display.display(); } void loop() { }
如您所见,我们首先包含所需的库,然后定义显示宽度、高度和I2C地址。
#include <Wire.h> #include <Adafruit_SSD1306.h> #include <Adafruit_GFX.h> #define WIDTH 128 // OLED width (pixels) #define HEIGHT 64 // OLED height (pixels) #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。”
如果初始化成功,我们将继续进行,否则我们将进入无限循环。
如果我们继续进行,我们将等待一小段时间,然后清除显示屏,然后设置文本颜色、文本大小和光标位置,然后写入要显示的文本。建议您尝试不同的文本颜色、大小和光标位置。
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 static text display.println("Hello World!"); display.display(); }
在循环中,什么也不做。
void loop() { }