Arduino驱动OLED屏幕

点击返回Arduino显示屏页面

OLED 屏幕应用

 

前言

相信在您的创客路上, 有许多项目需要进行图像化人机界面进行显示文本或图形, 一直以来LED和LCD是传统选择, 但近些年来, 有一种显示器越来越流行—-OLED

OLED应用于各种大小显示需求, 大到电视屏幕, 小到微型智能穿戴设备的显示器都是它的用武之地. 在各种照明条件下它都能熠熠生辉, 且消耗的电流很小! OLED相对于LCD等有着极大的优势

OLED是一种利用多层有机薄膜结构产生电致发光的器件,它很容易制作,而且只需要低的驱动电压,这些主要的特征使得OLED在满足平面显示器的应用上显得非常突出。OLED显示屏比LCD更轻薄、亮度高、功耗低、响应快、清晰度高、柔性好、发光效率高,能满足消费者对显示技术的新需求。全球越来越多的显示器厂家纷纷投入研发,大大的推动了OLED的产业化进程。(资料来源于百度百科)

以上介绍了OLED的优势, 相信大家都对如何使用Arduino去控制OLED显示比较好奇, 因此本篇将对Arduino如何控制OLED展开说明,以创客朋友们常用的OLED 0.96 IIC 128×64模块进行实例应用讲解其他尺寸的OLED可参考本教程进行学习和开发

模块介绍

OLED0.96屏幕样图 Arduino OLED0.96 屏幕模块 太极创客
OLED0.96屏幕样图

首先对OLED 0.96 IIC 128x64模块里的几个参数进行说明, 0.96指的是屏幕的显示尺寸0.96inch, 128×64指的是屏幕的分辨率为128×64, 而IIC指的是该模块使用IIC协议进行通讯, (关于Arduino-IIC协议可参考Arduino-Wire)

以下是OLED 0.96 12864屏幕的基本介绍

  • 高分辨率:128×64(和12864同分辨率,高PPI)
  • 超大可视角度:大于160°(显示屏中可视角度最大的一种屏幕)
  • 超低功耗:正常显示0.06w(远低于TFT显示屏)
  • 宽电压供电(3V~5V),兼容3.3V和5V电平逻辑,无需电平转换芯片
  • IIC接口只需2个IO轻松点亮
  • 工作温度范围为工业级(-20℃~70℃)
  • 军工级工艺标准,长期稳定工作
  • 提供丰富的多平台例程,提供底层驱动技术支持
  • 黄蓝、白、蓝三种颜色显示方案可选

模块参数

名称 颜色分类
显示颜色 白色 蓝色 黄蓝双色
SKU MC096GW MC096GB MC096GY
尺寸 0.96(inch)
类型 OLED
OLED驱动芯片 SSD1306
分辨率 128*64 (Pixel)
模块接口 IIC,①-GND,②-VCC,③-SCL,④-SDA
有效显示区域 21.744×10.864(mm)
模块尺寸 27.3×27.8(mm)
视角 >160°
工作温度 -20℃~70℃
存储温度 -30℃~80℃
工作电压 3.3V / 5V
功耗 全亮约为25mA,全灭约为1.5mA。
产品重量 15(g)

模块尺寸

为了方便更多创客朋友们开发自己的OLED创客作品, 以下提供OLED0.96的模块尺寸图供大家参考

资料来源于lcdwiki-OLED0.96

OLED0.96屏幕尺寸图Arduino OLED0.96 屏幕模块 太极创客

接口定义

OLED0.96 IIC模块使用IIC通信接口,只需要接4根线就可以完成OLED屏数据通信

  • VCC:电源正极(接5V电源)
  • GND:电源负极(接地)
  • SCL:IIC时钟信号线
  • SDA:IIC数据信号线

VCC接到开发板的5V电源引脚上,GND接到开发板GND引脚上,SCL和SDA需要根据不同的开发板引脚定义来接线(可参考Arduino-Wire)

该OLED模块的IIC地址0x3C

Arduino控制OLED

我们使用Adafruit_SSD1306库来更加快捷高效的实现Arduino控制OLED, 在使用这个库时,需要依赖Adafruit-GFX-Library库才能使其正常工作,因此您需要在您的ArduinoIDE同时安装这两个库, 此外您可以通过Arduino自带的库管理器来安装,在安装时,如果出现以下情况, 点击Install all即可,这是Adafruit-GFX-Library的依赖

OLED0.96依赖库安装Arduino OLED0.96 屏幕模块 太极创客
OLED0.96依赖库安装Arduino

Arduino使用硬件IIC,芯片内部已经对IIC引脚做了定义,因此软件上不需要再对IIC引脚进行定义,只是不同型号的单片机,IIC引脚定义不一样,需要在接线上根据开发板做调整。

 

我们将以控制OLED 0.96 I2C 屏幕为例子进行说明。无论你手里的OLED 0.96是单色的还是双色的都没关系, 这些显示器都是基于SSD1306 OLED驱动芯片,因此它们都可以使用Adafruit_SSD1306库来控制显示。

在开始之前,请大家在屏幕建立一个坐标系的概念,因为在程序里,位置都是以坐标的形式去定位的,以OLED 0.96 128X64为例,面向屏幕,以屏幕左上角为坐标原点,横向向右是X轴,竖向向下是Y轴

OLED0.96坐标系建立Arduino OLED0.96 屏幕模块 太极创客
OLED0.96坐标系建立

1 OLED显示文字

 

电路连接

OLED0.96-uno连线图Arduino OLED0.96 屏幕模块 太极创客

示例程序

 

效果演示

 

OLED0.96文字显示Arduino OLED0.96 屏幕模块 太极创客

2 OLED显示汉字

汉字的显示需要对文字进行取模操作,紧接着使用drawBitmap()函数对取模生成的数组进行显示

汉字取模

1 打开取模软件,切换到字符模式

OLED0.96文字取模Arduino OLED0.96 屏幕模块 太极创客
OLED0.96文字取模Arduino

2 在菜单栏区设置字体和尺寸选择

OLED0.96文字取模Arduino OLED0.96 屏幕模块 太极创客
OLED0.96文字取模Arduino

3 字模选项设置,设置之后点击确定按钮

OLED0.96文字取模Arduino OLED0.96 屏幕模块 太极创客

 

4 输入字符,点击生成子模, 生成之后需要对生成的数据进行变量赋值和加工,具体格式参考示例程序

OLED0.96文字取模Arduino OLED0.96 屏幕模块 太极创客
OLED0.96文字取模

电路连接

OLED0.96-uno连线图Arduino OLED0.96 屏幕模块 太极创客

示例程序

hans_display.ino

 

text.h

 

效果演示

OLED0.96汉字显示Arduino OLED0.96 屏幕模块 太极创客

OLED0.96汉字显示Arduino OLED0.96 屏幕模块 太极创客

3 OLED显示图片

图片的显示需要对图片进行取模操作,再使用drawBitmap()函数对取模生成的数组进行显示,下面介绍如何对图片进行取模操作

图片取模

1 打开取模软件,切换到图形模式

OLED0.96图片取模Arduino OLED0.96 屏幕模块 太极创客

2 打开图片或新建图片

图形模式有三种方法可以处理图片(如下图所示)
A、点击文件->打开,打开现有的BMP单色图片
B、点击打开图片按钮打开现有的BMP单色图片
C、点击新建图片按钮,设置宽度和高度,新建一幅单色BMP图片

OLED0.96图片取模Arduino OLED0.96 屏幕模块 太极创客

3 打开图片之后,点击生成子模,生成之后需要对生成的数据进行变量赋值和加工,具体格式参考示例程序

OLED0.96图片取模Arduino OLED0.96 屏幕模块 太极创客

电路连接

OLED0.96-uno连线图Arduino OLED0.96 屏幕模块 太极创客

示例程序

效果演示

OLED0.96图片显示Arduino OLED0.96 屏幕模块 太极创客

相关资源

1 取模软件PCtoLCD2002下载地址

2 IIC设备扫描获取地址

当您不确定您的屏幕IIC地址时,可以使用以下示例程序进行IIC地址获取

将您的设备连接好之后,烧录以下示例程序并打开串口监视器即可获取当前设备的IIC地址