0.96inch OLED Module (IIC-4P SKU:MC096GX)

来自LCD wiki
跳转至: 导航搜索
语言选择(Other languages:): 中文 EN


产品图片

MC096-002.jpg MC096-004.jpg MC096-003.jpg

产品介绍

  • 高分辨率:128x64(和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.744x10.864(mm)
模块尺寸 27.3x27.8(mm)
视角 >160°
工作温度 -20℃~70℃
存储温度 -30℃~80℃
工作电压 3.3V / 5V
功耗 全亮约为25mA,全灭约为1.5mA。
产品重量 15(g)

产品尺寸

产品尺寸图:0.96寸OLED产品尺寸图

硬件说明

硬件原理图:全动电子0.96寸OLED显示模块原理图.pdf

IIC从设备地址选择硬件调整说明:

MC096-006.jpg


如图红色矩形框内,如果电阻接在0x78这边,则表示IIC从设备地址为0x78,如果接在0x7A这边,则表示IIC从设备地址为0x7A。

软件说明

本模块提供了三个平台的测试程序,分别是C51、STM32和Arduino,每个平台的测试程序大致由三部分组成:

平台相关的代码、OLED操作相关的代码以及IIC操作相关的代码。除了平台相关的代码因平台而异,其他两部

分的代码原理和实现方法都差不多,和所用的平台没有关系。在同一平台上,代码可以直接移植,只需要修

改相关的引脚定义就可以正常运行了。

C51代码说明

打开C51代码工程,发现有如下文件:

MC096-007.jpg

REG51.h是和平台相关的代码,里面定义了一些平台相关的参数。

oledfont.h、bmp.h都存放图片和汉字取模后的点阵数组。

oled.h存放的是和OLED屏相关的一些参数,包括引脚定义。

oled.c存放的是和OLED屏操作相关的一些函数,包括IIC的读写,OLED屏数据写入等

main.c则是主程序操作了。

通过以上描述我们可以知道,只需要修改oled.h文件里的引脚定义即可。

打开oled.h文件,找到以下内容:

MC096-008.jpg

只要修改OLED_SCL和OLED_SDIN的值就可以了。

这里是将P23引脚定义为时钟信号引脚,将P24引脚定义为数据信号引脚。

再找到如下内容,可以修改IIC从设备地址:

MC096-009.jpg

该OLED模块IIC地址为0x78。

STM32代码说明

打开STM32代码,发现有以下文件:

MC096-010.jpg

除了main.c、oled.c、oled.h、bmp.h、oledfont.h,其他都是和平台相关的代码。

oledfont.h、bmp.h都存放图片和汉字取模后的点阵数组。

oled.h存放的是和OLED屏相关的一些参数,包括引脚定义。

oled.c存放的是和OLED屏操作相关的一些函数,包括IIC的读写,OLED屏数据写入等

main.c则是主程序操作了。

由于STM32比C51多了GPIO口初始化操作,所以移植代码需要修改oled.h和oled.c两个文件。

打开oled.h文件,找到如下内容:

MC096-011.jpg

根据自己定义,修改GPIO_ResetBits和GPIO_SetBits的GPIO组和pin脚。

这里将GPIOB的13号引脚定义为时钟信号引脚,将GPIOB的14号引脚定义为数据信号引脚。

再找到如下内容,可以修改IIC从设备地址:

MC096-009.jpg

该OLED模块IIC地址为0x78。

打开oled.c文件,找到如下内容:

MC096-012.jpg

分别对定义的引脚进行输出模式、速率以及置位设置。

Arduino代码说明

Arduino使用硬件IIC,芯片内部已经对IIC引脚做了定义,因此软件上不需要再对IIC引脚进行定义,

只是不同型号的单片机,IIC引脚定义不一样,需要在接线上做调整。由于软件使用了U8glib开源库,

所以初始化时,需要根据OLED屏驱动IC的型号选择正确的类。

例如本模块使用了U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE)进行初始化。

如果要修改IIC从设备地址,则需要打开u8g_com_arduino_ssd_i2c.c文件,找到如下内容:

MC096-013.jpg

该OLED模块的IIC地址为0x3c*2(0x78)

使用说明

通过查看SSD1306的数据手册可以得知该IC支持四线和三线SPI、IIC 接口以及8bit的并口连接。

由于并口连接方式占用的数据线较多,接线麻烦,所以不太常用。关于通信接口方式怎么选择,

这是通过BS0、BS1以及BS2这三个管脚来配置的,具体定义如下图:

MC096-014.jpg

本模块使用IIC通信接口,只需要接4根线就可以完成OLED屏数据通信,如下图所示:

MC096-004.jpg

VCC:电源正极(接5V电源)

GND:电源负极(接地)

SCL:IIC时钟信号线

SDA:IIC数据信号线

VCC接到单片机的5V电源引脚上,GND接到GND引脚上,SCL和SDA需要根据不同的平台引脚定义来接线。

C51和STM32一般使用模拟IIC,就是自己定义两个引脚作为SCL和SDA。

Arduino使用硬件IIC,就是芯片本来就定义好了SCL和SDA引脚,不需要我们自己再重新定义。

接好线上电后,可以运行我们提供的测试程序进行测试。

驱动下载

百度云盘下载:全动电子0.96寸OLED显示模块资料V1.0

常用软件说明

取模软件说明见软件包,下载地址如下:

PCtoLCD2002:PCtoLCD2002