跳至主要內容

OLED屏 SSD1306

大约 2 分钟

简介

本章介绍使用 Air001 开发板在 Arduino 平台上点亮SSD1306屏幕的使用方法。

硬件准备

Air001开发板一块、I²C接口的OLED屏幕(SSD1306驱动)一块。

☁️ Air001开发板入门,将Air001和DAPLink调试器使用排针排母连接。

OLED屏幕模块与Air001开发板,按如下表格进行相连:

SSD1306air001
GNDGND
VCC3.3V
D0(SCL)PF01
D1(SDA)PF00
RES
DCVCC/GND
CSGND

提示

DC连接可以决定I²C从机地址:

  • DC连接VCC则I²C从机地址为0x3d
  • DC连接GND则I²C从机地址为0x3c

软件部分

首先,安装Adafruit GFX Library库与Adafruit SSD1306库。

打开Arduino管理库,进行安装

可以打开Arduino管理库,找到Adafruit GFX Library库和Adafruit SSD1306库并进行安装。

库管理器中的 Adafruit GFX Library
库管理器中的 Adafruit GFX Library

首先引用这些库,并定义:

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET     4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
  • 定义 SCREEN_WIDTH(OLED显示宽度),以像素为单位。
  • 定义 SCREEN_HEIGHT(OLED显示高度),以像素为单位。
  • 初始化了一个SSD1306型号的显示器,使该显示器具SCREEN_WIDTHSCREEN_HEIGHT指定的宽度和高度。

接着,在setup()函数中,添加如下代码:

void setup() {
  Serial.begin(9600);
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println("SSD1306 allocation failed");
    while(1);
  }
  display.clearDisplay();
  ShowText();
}
  • 初始化串口为9600波特率用于输出日志。
  • 使用display.begin初始化屏幕设备,如果初始化失败,打印SSD1306 allocation failed,并阻塞代码。
  • 使用display.clearDisplay清空屏幕信息。
  • 调用ShowText函数,显示数据(函数见下方)。

接着声明ShowText函数,用于打印数据:

void ShowText(void) {
  //清空屏幕信息
  display.clearDisplay();
  //设置文本字体大小为2
  display.setTextSize(2);
  //设置屏幕颜色为白色
  display.setTextColor(SSD1306_WHITE);
  //设置打印的起始坐标10,16
  display.setCursor(10, 16);
  //设置显示的文本信息
  display.println(F("happy day"));
  //将屏幕缓冲区数据刷到屏幕上,显示出来
  display.display();
}

最后加上loop函数,由于只是演示,所以这里我们用空函数实现:

void loop() {}

输出结果

屏幕显示效果:

效果图
效果图