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

news2024/12/28 13:59:18

学物联网,来万物简单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)

  • 参数说明:
参数类型必选参数?说明
xint横坐标像素大小
yint纵坐标像素大小
i2cObjI2C传入i2c对象
i2cAddrintI2C总线通信地址
  • 返回值:
    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)

  • 参数说明:
参数类型必选参数?说明
contextstring显示内容
xint横坐标位置
yint纵坐标位置
  • 返回值:
  • 示例:
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显示模块购买链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1171241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

管理文件:文件批量重命名,轻松删除文件名中的空格

在文件管理中,我们经常会遇到文件名中带有空格的情况。这些空格可能会使文件在某些情况下难以被正确识别或使用,因此我们需要掌握一些技巧来轻松删除文件名中的空格。现在使用云炫文件管理器批量重命名进行批量处理。以下是如何操作的步骤详解&#xff1…

Unity中Shader的GI的直接光实现

文章目录 前言一、在上一篇文章中,得到GI相关数据后,需要对其进行Lambert光照模型计算二、在准备好上面步骤后,我们需要准备缺少的数据1、准备上图中的 s.Normal2、准备上图中的 s.Albedo 前言 Unity中Shader的GI的直接光实现,基…

Python基础入门例程30-NP30 用列表实现队列(列表)

最近的博文: Python基础入门例程29-NP29 用列表实现栈(列表)-CSDN博客 Python基础入门例程28-NP28 密码游戏(列表)-CSDN博客 Python基础入门例程27-NP27 朋友们的喜好(列表)-CSDN博客 目录 …

缺陷之灵魂操作bug

一、前言 正常来说,我们在测试缺陷的时候都是按照case来测试的,但是有些场景,例如说发散思维这种场景,就会找到一些比较不太正常、不好复现的缺陷,然后如果要辅助研发修复,就会极为痛苦。 二、场景描述 大…

免费获得临时域名/内网穿透

文章目录 Coplar 介绍Coplar 使用场景Coplar 使用 Coplar 介绍 》官网地址《 官网介绍: cpolar极点云: 公开一个本地Web站点至公网 只需一行命令,就可以将内网站点发布至公网,方便给客户演示。高效调试微信公众号、小程序、对接支付宝网关…

163M水经微图从入门到精通文档教程

我们在《47GB从入门到精通微图视频教程》一文中,为大家分享了视频教程。 由于有一些比较偏理论的内容不便于录制视频,因此文档教程才会更加完整全面。 CHM文档教程 我们将水经微图的文档教程制作成了CHM文件,共有163M大小。 教程内容主要…

佳易王羽毛球馆计时计费管理系统软件下载,支持连接灯控

软件特色: 1、功能实用,操作简单,不会电脑也会操作,软件免安装,已内置数据库。佳易王羽毛球馆计时计费系统软件免安装版V17.6,是集计时计费、商品销售、会员管理、备注记事本、定时提醒功能于一体的管理软…

Keras人工智能神经网络 Regressor 回归 神经网络搭建

前期分享了使用tensorflow来进行神经网络的回归,tensorflow构建神经网络 本期我们来使用Keras来搭建一个简单的神经网络 Keras神经网络可以用来模拟回归问题 (regression),例如给下面一组数据,用一条线来对数据进行拟合,并可以预…

GPT学习笔记

百度的文心一言 阿里的通义千问 通过GPT能力,提升用户体验和产品力 GPT的出现是AI的iPhone时刻。2007年1月9日,第一代iPhone发布,开启移动互联网时代。新一轮的产业革命。 GPT模型发展时间线: Copilot - 副驾驶 应用&#xf…

Angular-07:组件生命周期

三个阶段: ① 挂载阶段1.1 constructor1.2 ngOnInit ② 更新阶段2.1 ngOnChanges2.2 ngAfterViewInit2.3 ngAfterContentInit2.4 ngDoCheck ③ 卸载阶段3.1 onOnDestroy ④ 在组件中添加所有方法并打印 该表按照执行顺序编写 编号函数名实现名说明1constructorcons…

基于单片机的智能感应监控系统的设计

收藏和点赞,您的关注是我创作的动力 文章目录 概要 一、系统分析2.1 整个控制系统的设计要求2.2 总体设计方案 二、系统硬件电路设计3.1 硬件电路介绍3.2 控制电路分析3.2.1 复位电路 三 软件设计原理图 四、 结论五、 文章目录 概要 因为人们在生活中对安全防范的…

【JAVA学习笔记】61 - 线程入门、常用方法、同步机制,以及本章作业(难点)

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter17/src/com/yinhai 线程 一、线程相关概念 1.程序 是为完成特定任务、用某种语言编写的一组指令的集合。简单的说:就是我们写的代码 2.进程 1)进程是指运行中的程序&#x…

劳易测扫码条码分段读取实现方法

添加如下3个功能块:M10,M13和M27 设置BCL参数:Code type 1 为Code128 参数:Mode为Range 参数:Number Of digits 1 为条码最小长度 Number Of digits 2 为条码最大长度。 设置M10:Mode(With …

嵌入式系统的元素

注意:关于嵌入式系统的元素这一块儿内容,定义太多了。例如:吉姆莱丁 著,陈会翔 译,由清华大学出版社出版的《构建高性能嵌入式系统》中提到:嵌入式系统通常由电源、时基、数字处理、内存、软件和固件、专用…

JavaScript执行上下文和调用栈

上节课我们已经说过了,JavaScript的代码执行是发生在js引擎中的调用堆栈的,但是具体是如何运行的,我们来详细剖析一下 如何执行上下文 执行上下文: 执行上下文是指在JavaScript中代码被执行时所创建的环境。它包含了变量、函数、…

京东大数据平台-第三方京东平台数据查询分析软件系统

对于电商商家来说,做好电商数据分析是电商运营中的重要一环,且能为电商商家带来诸多好处,例如: 1、提高销售额:通过数据分析可以更好地把握消费者的购买行为,从而更好地推出营销活动,提高销售额…

7.SpringBoot集成Mybats-plus且安装代码生成插件

一、背景 项目需要集成Mybatis-plus用作服务的ORM。 二、实现 2.1 pom.xml引入 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</version>&l…

QT 实现解密m3u8文件

文章目录 概要如何解密M3U8文件呢实现思路和代码序列图网络请求解密 结论 概要 视频文件很多已M3U8文件格式来提供&#xff0c;先复习下什么是M3U8文件&#xff01;用QT的 mutimedia框架来播放视频时&#xff0c;有的视频加载慢&#xff0c;有的视频加载快&#xff0c;为啥&am…

python 深度学习 解决遇到的报错问题9

本篇继python 深度学习 解决遇到的报错问题8-CSDN博客 目录 一、can only concatenate str (not "int") to str 二、cant convert np.ndarray of type numpy.object_. The only supported types are: float64, float32, float16, complex64, complex128, int64, in…

Python基础入门例程32-NP32 牛牛的加减器(运算符)

最近的博文&#xff1a; Python基础入门例程31-NP31 团队分组&#xff08;列表&#xff09;-CSDN博客 Python基础入门例程30-NP30 用列表实现队列&#xff08;列表&#xff09;-CSDN博客 Python基础入门例程29-NP29 用列表实现栈&#xff08;列表&#xff09;-CSDN博客 目录…