首页
/ 5分钟快速上手SH1106 OLED显示屏:Arduino终极指南

5分钟快速上手SH1106 OLED显示屏:Arduino终极指南

2026-02-06 04:29:15作者:俞予舒Fleming

SH1106 OLED显示屏是一种高性能的单色显示屏,广泛应用于嵌入式系统和物联网项目中。本文将为新手用户提供完整的SH1106 OLED显示屏使用教程,帮助您快速掌握Arduino驱动的核心技巧。

项目概览与快速入门

SH1106 OLED显示屏驱动库是专为控制SH1106驱动芯片的单色OLED显示屏而设计的。与常见的SSD1306驱动相比,SH1106在某些功能上略有差异,但其基本操作方式相似。

必备环境准备:

  • Arduino IDE开发环境
  • Adafruit_GFX图形库
  • SH1106 OLED显示屏(128x64分辨率)

一键获取项目资源:

git clone https://gitcode.com/gh_mirrors/ad/Adafruit_SH1106

硬件连接指南

I2C接口连接方式

I2C连接仅需4根线,是最简单的连接方式:

Arduino引脚 SH1106引脚 功能说明
3.3V/5V VCC 电源正极
GND GND 电源负极
A4 SDA 数据线
A5 SCL 时钟线

SPI接口连接方式

SPI连接提供更快的通信速度,适合需要频繁刷新显示的场景:

Arduino引脚 SH1106引脚 功能说明
3.3V/5V VCC 电源正极
GND GND 电源负极
11 MOSI 主出从入
13 SCK 时钟信号
10 CS 片选信号
9 DC 数据/命令选择

SH1106 OLED显示屏I2C接线图

基础功能演示

一键初始化配置

首先在Arduino IDE中包含必要的头文件:

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH1106.h>

#define OLED_RESET 4
Adafruit_SH1106 display(OLED_RESET);

在setup函数中进行显示器初始化:

void setup() {
  display.begin(SH1106_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.display();
}

文本显示最佳实践

显示文本是SH1106 OLED显示屏最常见的应用场景:

void displayText() {
  display.setTextSize(1);      // 设置字体大小
  display.setTextColor(WHITE); // 设置文本颜色
  display.setCursor(0,0);     // 设置起始位置
  display.println("Hello, World!");
  display.display();          // 刷新显示
}

图形绘制技巧

SH1106支持丰富的图形绘制功能,包括线条、矩形、圆形等:

void drawGraphics() {
  // 绘制单个像素点
  display.drawPixel(10, 10, WHITE);
  
  // 绘制线条
  display.drawLine(0, 0, 127, 63, WHITE);
  
  // 绘制矩形
  display.drawRect(20, 20, 80, 40, WHITE);
  
  display.display();
}

高级应用场景

自定义位图显示

SH1106支持显示自定义位图,适合显示图标和小型图片:

static const unsigned char PROGMEM myBitmap[] = {
  B00000000, B11000000,
  B00000001, B11000000,
  // 更多位图数据...
};

void displayBitmap() {
  display.drawBitmap(30, 16, myBitmap, 16, 16, WHITE);
  display.display();
}

显示效果优化

为了获得最佳的显示效果,建议遵循以下原则:

对比度调节:根据环境光线调整显示对比度 ✅ 刷新频率:避免过于频繁的刷新操作 ✅ 内存管理:及时清理显示缓冲区

实际项目应用

SH1106 OLED显示屏在以下场景中表现出色:

  • 温度湿度监控显示
  • 智能家居控制面板
  • 电子时钟和计时器
  • 传感器数据显示

常见问题解答

Q1:显示屏无法正常显示怎么办?

解决方案:

  1. 检查电源连接是否正确
  2. 确认I2C地址设置(通常为0x3C或0x3D)
  3. 验证接线是否正确连接

Q2:显示内容出现乱码或偏移?

排查步骤:

  • 检查文本大小设置是否合适
  • 确认光标位置是否在有效范围内
  • 验证显示缓冲区是否已正确清理

Q3:如何提高显示刷新速度?

优化建议:

  • 使用SPI接口替代I2C接口
  • 减少不必要的显示操作
  • 优化图形绘制算法

Q4:SH1106与SSD1306有什么区别?

主要差异:

  • SH1106不支持滚动显示功能
  • 部分高级图形功能可能受限
  • 驱动芯片内部结构不同

实用技巧总结

🚀 快速启动技巧:使用示例代码中的预设配置可以快速验证硬件连接

性能优化:对于需要频繁更新的显示内容,建议使用局部刷新而非全屏刷新

📊 数据显示:SH1106非常适合显示数值数据和简单图表

通过本教程的学习,您应该已经掌握了SH1106 OLED显示屏的基本使用方法。建议从简单的文本显示开始,逐步尝试图形绘制和高级功能,最终能够灵活运用于各种实际项目中。

登录后查看全文
热门项目推荐
相关项目推荐