Arduino提高篇01—点亮OLED显示屏

OLED「OrganicLight-Emitting Diode」,有机发光二极管,又称有机发光半导体,是当下非常受欢迎的显示技术。OLED显示屏与传统LCD显示方式不同,它无需背光,每个像素点自发光,体积更小、更轻更薄更省电,而且能做成柔性屏。本篇介绍Arduino下OLED屏的使用。

1. OLED屏介绍

OLED屏因其小巧轻薄耗电低等特点,越来越多的应用于嵌入式电子设备中。OLED屏种类不同,显示的颜色也不同,常用的有白色显示、蓝色显示和黄蓝双色显示。屏幕的尺寸和内置驱动芯片也多种多样,常用的驱动接口有SPI和IIC两种。本篇中使用的使一款0.96寸蓝色IIC驱动屏,其内置驱动芯片为SSD1306。

0.96寸OLED显示屏

2. 安装驱动库

OLED显示屏驱动库非常多,本篇我们使用两个库:「Adafruit_SSD1306」和「Adafruit_GFX」。在Arduino IDE中点击「项目」—「加载库」—「管理库」,分别查找选择最新版本进行安装。

安装Adafruit_SSD1306库
安装Adafruit_GFX库

3.实验材料

  • Uno R3开发板
  • 配套USB数据线
  • 面包板及配套连接线
  • OLED显示屏

4.实验步骤

1. 根据原理图搭建电路图。

IIC接口只需要两根线。OLED屏的VCC和GND分别连接开发板的3.3V和GND,OLED屏的SDA和SCL分别连接开发板A4和A5。

实验原理图如下图所示:

电路连接图

实物连接图如下图所示:

实物连接图

2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

/*
 * OLED显示
 */
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET     4
Adafruit_SSD1306 display(128, 64, &Wire,OLED_RESET);

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC,0x3C);
  display.setTextColor(WHITE);//开像素点发光
  display.clearDisplay();//清屏
  
  display.setTextSize(1); //设置字体大小  
  display.setCursor(35, 5);//设置显示位置
  display.println("-TonyCode-");

  display.setTextSize(2);//设置字体大小  
  display.setCursor(15, 30);//设置显示位置
  display.println("OLED TEST");
  
  display.display(); // 开显示
 
}

void loop() {

}

3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

程序下载

4. 实验现象

较LCD液晶显示屏,OLED的显示效果非常不错,且可视角度更大。

实验现象

更多内容,欢迎关注我的公众号。 微信扫一扫下方二维码即可关注:
扫码加入微信公众号:TonyCode

<think>好的,我现在需要帮助用户解决在Arduino中配置和使用OLED显示屏的问题。首先,我要回忆一下相关的知识,并结合用户提供的引用内容来组织回答。用户提供的引用1提到了OLED的类型和通信方式,包括3引脚和7引脚,分别对应I2C和SPI/I2C模式。引用2强调了硬件配置和测试的重要性,引用3提到了应用案例,引用4可能涉及显示数据,比如字库的点阵数据。 首先,我需要确定用户的需求是连接和配置OLEDArduino,可能涉及驱动程序和代码。我应该分步骤讲解,包括硬件连接、库安装、代码编写以及测试注意事项。 第一步,硬件连接。根据引用1,OLED有I2C和SPI两种通信方式。常见的I2C使用3或4引脚,而SPI可能需要更多引脚。我需要分别说明这两种方式的接线方法,并指出用户需要确认自己OLED的引脚类型。例如,I2C需要接SDA和SCL,而SPI可能需要CS、DC、RES等引脚。 第二步,安装库。常用的库是Adafruit SSD1306和Adafruit GFX库。用户需要通过Arduino IDE的库管理器安装,或者手动下载。这里需要提到具体的安装步骤,确保用户能够正确添加库。 第三步,编写代码。需要提供基本的示例代码,包括初始化OLED、清屏、设置字体、显示文本等。代码中应该包含必要的注释,解释每一步的作用。同时,根据引用3,可以提到显示中文或自定义内容可能需要字库,如引用4中的点阵数据,但具体实现可能需要更多步骤,比如使用特定函数或转换工具生成字模。 第四步,注意事项。引用2提到硬件连接的正确性和测试的重要性,需要提醒用户检查引脚连接、电压匹配,以及多次测试代码。特别是不同的OLED可能使用不同的驱动芯片,如SSD1306或SH1106,需要调整代码中的初始化参数。 此外,用户的问题可能涉及显示自定义内容或图形,可以简要提及扩展功能,比如绘制图形、动画,或者结合传感器数据显示实时数据。这部分可以引用3中的应用案例,激发用户的兴趣。 最后,按照用户的要求,生成相关问题,可能涉及库的其他功能、显示汉字的方法、SPI与I2C的区别,或者故障排除等。 现在需要确保回答结构清晰,步骤明确,并且引用相关的引用内容来支持说明。例如,在硬件连接部分引用1提到的引脚类型,在注意事项部分引用2的测试建议,在应用部分引用3的创意项目。</think>### Arduino配置OLED显示屏的步骤指南 #### 一、硬件连接 OLED显示屏Arduino的通信方式主要为$I^2C$或$SPI$,需根据屏幕引脚类型选择接线方式[^1]: 1. **$I^2C$模式(3/4引脚)** - 连接引脚: - SDA → Arduino的A4引脚(或标有SDA的引脚) - SCL → Arduino的A5引脚(或标有SCL的引脚) - VCC → 3.3V或5V(需根据屏幕规格选择) - GND → GND 2. **$SPI$模式(7引脚)** - 连接引脚(以SSD1306为例): - CS(片选) → 数字引脚D10 - DC(数据/命令) → 数字引脚D9 - RES(复位) → 数字引脚D8 - SDA(数据) → 数字引脚D11(MOSI) - SCL(时钟) → 数字引脚D13(SCK) - VCC/GND同上 #### 二、安装驱动库 1. 打开Arduino IDE,依次点击 **工具 → 管理库**。 2. 搜索并安装 **`Adafruit SSD1306`** 和 **`Adafruit GFX Library`**。 3. 若使用SH1106驱动芯片的OLED,需手动修改库文件中的分辨率参数[^2]。 #### 三、示例代码(I²C模式) ```cpp #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() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // I²C地址通常为0x3C或0x3D display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.println("Hello, OLED!"); display.display(); // 将缓冲区内容输出到屏幕 } void loop() {} ``` #### 四、关键功能扩展 1. **显示中文** 需自定义字库(如引用[4]中的点阵数据),或使用支持Unicode的库(如U8g2)。 2. **绘制图形** 利用`drawLine()`、`drawRect()`等函数实现动态图表或动画[^3]。 #### 五、注意事项 - **电压匹配**:部分OLED仅支持3.3V,需避免直接连接5V引脚。 - **通信地址**:若屏幕无响应,尝试扫描$I^2C$地址(使用`Wire`库的扫描工具)。 - **屏幕初始化**:若显示乱码,检查驱动芯片类型(SSD1306/SH1106)并修改初始化参数。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值