物联网AI MicroPython传感器学习 之 SSD1306 OLED显示屏幕

学物联网,来万物简单IoT物联网!!

一、产品简介

OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED显示技术具有自发光的特性,采用非常薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料就会发光,而且OLED显示屏幕可视角度大,并且能够节省电能, LCD都需要背光,而OLED不需要,因为它是自发光的。这样同样的显示,OLED效果要来得好一些。总之,OLED不需背光源、对比度高、厚度薄、视角广、反应速度快、使用温度范围广等优异之特性,被认为是下一代的平面显示器新兴应用技术。
SSD1306内置对比度控制、显示RAM和振荡器,减少了外部组件和功耗。它有256级亮度控制。数据/命令是从通用单片机通过硬件可选的6800/8000系列兼容并行接口发送,I2C接口或串行外围接口。
它适用于许多紧凑型便携式应用程序,例如手机副显示屏、MP3播放器、计算器以及穿戴产品中广泛应用。
image.png
引脚定义

  • GND:接地
  • VCC:3V3
  • SCL:时钟线
  • SDA:数据线

二、技术参数

  • 工作电压:3V3
  • 通信方式:IIC接口
  • 工作温度范围广:-40°C ~ 85°C
  • 分辨率:128*64
  • 控制芯片:SSD1306
  • 模组尺寸:27.3mm*27.8mm
  • 像素间距:0.17mm*0.17mm
  • 像素尺寸:0.154mm*0.154mm

三、软件接口

SSD1306(i2cObj) – 创建SSD1306驱动对象

  • 函数原型:

ssd1306Obj = SSD1306(x,y,i2cObj, i2cAddr = 0x3c)

  • 参数说明:
参数 类型 必选参数? 说明
x int 横坐标像素大小
y int 纵坐标像素大小
i2cObj I2C 传入i2c对象
i2cAddr int I2C总线通信地址
  • 返回值:
    SSD1306对象成功,返回SSD1306对象;SSD1306对象创建失败,抛出Exception
  • 示例代码:
from machine import I2C,Pin          # 驱动库
import ssd1306                       # SSD1306显示驱动库

# 初始化I2C类型的设备
i2cObj = I2C(1, scl=Pin(22), sda=Pin(21), freq=400000)
ssd1306Obj = ssd1306.SSD1306(i2cObj)    # 初始化SSD1306显示对象
print("SSD1306 inited!")
  • 输出:
SSD1306 inited!

fill – framebuf缓冲区

  • 函数功能:
    设置framebuf缓冲区
  • 函数原型:

SSD1306.fill()

  • 参数说明:
    0 – 清屏 1 – 满屏
  • 返回值:

show – 刷新显示

  • 函数功能:
    刷新显示
  • 函数原型:

SSD1306.show()

  • 参数说明:
  • 返回值:

text – 更新缓冲区显示内容

  • 函数功能:
    更新缓冲区显示内容
  • 函数原型:

SSD1306.text(content,x,y)

  • 参数说明:
参数 类型 必选参数? 说明
context string 显示内容
x int 横坐标位置
y int 纵坐标位置
  • 返回值:
  • 示例:
from machine import I2C,Pin          # 驱动库
import ssd1306                       # SSD1306显示驱动库

# 初始化I2C类型的设备
i2cObj = I2C(1, scl=Pin(22), sda=Pin(21), freq=400000)
ssd1306Obj = ssd1306.SSD1306(128, 64, i2cObj)    # 初始化SSD1306显示对象
print("SSD1306 inited!")
ssd1306Obj.fill(0)   #清屏背景黑色
ssd1306Obj.text(str('----------------------'),3,5)
ssd1306Obj.text('welcome ETT-B1', 3, 22)
ssd1306Obj.text('ettPython', 30, 38)
ssd1306Obj.text(str('----------------------'),3,55)
ssd1306Obj.show() # 屏幕显示
  • 输出:
SSD1306 inited!

四、接口案例

from machine import I2C,Pin          # 驱动库
import ssd1306                       # SSD1306显示驱动库

# 初始化I2C类型的设备
i2cObj = I2C(1, scl=Pin(22), sda=Pin(21), freq=400000)
ssd1306Obj = ssd1306.SSD1306(128, 64, i2cObj)    # 初始化SSD1306显示对象
print("SSD1306 inited!")
ssd1306Obj.fill(0)   #清屏背景黑色
ssd1306Obj.text(str('----------------------'),3,5)
ssd1306Obj.text('welcome ETT-B1', 3, 22)
ssd1306Obj.text('ettPython', 30, 38)
ssd1306Obj.text(str('----------------------'),3,55)
ssd1306Obj.show() # 屏幕显示
  • 输出:
SSD1306 inited!

五、工作原理

SSD1306像素为128*64像素,一共分为8个页,如图所示。
image.png
当一个数据字节被写入GDDRAM时,当前的同一页的所有行都会镜像数据。
列被填充(即,列地址指针指向的整列(8位)被填充)。数据位D0写入顶行,数据位D7写入下行,如下图所示
image.png

参考文献

[1] SSD1306 OLED显示模块购买链接

版权声明:本文为博主作者:万物简单数智社区原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/weixin_39363464/article/details/134222473

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2024年4月10日
下一篇 2024年4月10日

相关推荐