首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >8266wifi模块开发详解(四)OLED

8266wifi模块开发详解(四)OLED

作者头像
bigmagic
发布2020-03-17 14:39:41
1.2K0
发布2020-03-17 14:39:41
举报
文章被收录于专栏:嵌入式iot嵌入式iot

1. 说明2.什么是OLED?3.OLED的技术特点4.实物赏析5.SSD13066.通信总线基本介绍7.操作原理8.实战操作8.1 硬件连接8.2 软件操作8.3 实验结果9.实验分析10.总结

1. 说明

作为显示设备,OLED的作用是为使用者提示信息,通过视觉进行感知,从而达到方便操作的目的。下面,我们通过对8266上OLED的使用,来进一步学习和了解OLED。

2.什么是OLED?

作为一种显示技术,OLED与普通的LCD的区别主要在于发光源。对于普通的LCD来说,需要提供背光灯才能看到LCD上的东西。而OLED是每个像素都独立发光。

由于这个特性,所以OLED可以做的很薄,并且可以做柔性屏。但是由于像素发光的时长不一样,也会导致有些像素长时间处于工作状态而出现烧屏的现象。

3.OLED的技术特点

(1) OLED 器件的核心层厚度很薄,厚度可以小于 1mm,为液晶的 1/3。

(2) OLED 器件为全固态机构,无真空,液体物质,抗震性好,可以适应巨大的加速度,振动等恶劣环境。

(3)主动发光的特性使 OLED 几乎没有视角限制,视角一般可达到 170 度,具有较宽的视角,从侧面也不会失真。

(4) OLED 显示屏的响应时间超过 TFT—LCD 液晶屏。TFT—LCD 的响应时间大约使几十毫秒,现在做得最好的 TFT—LCD 响应时间也只有 12 毫秒。而 OLED 显示屏的响应时间大约是几微秒到几十微秒。

(5) OLED 低温特性好,在零下 40 摄氏度都能正常显示,目前航天服上也使用OLED 作为显示屏。而 TFT—LCD 的响应速度随温度发生变化,低温下,其响应速度变慢,因此,液晶在低温下显示效果不好。

(6) OLED 采用有机发光原理,所需材料很少,制作上比采用液体发光的液晶工序少,液晶显示屏少 3 道工序,成本大幅降低。

(7) OLED 采用的二极管会自行发光,因此不需要背面光源,发光转化效率高,能耗比液晶低,OLED 能够在不同材质的基板上制造,厂家甚至可以将电路印刷在弹性材料上——做成能弯曲的柔软显示器。

(8) 低电压直流驱动,5V 以下,用电池就能点亮。高亮度,可达 300 明流以上。

4.实物赏析

基本外观如图所示

基本的构成是由一块液晶+SSD1306控制器,程序中主要操作的就是这个SSD1306控制器。

在淘宝上购买的模块是下面这样子

拆封后可以看到实物

本次实验采用的是这块0.96寸的OLED,具备自发光,所以不需要背光灯,固定区域是固定的颜色,上面1/4为黄光,也就是黑底黄字,下面3/4为蓝光。也就是黑底蓝字。

5.SSD1306

本模块采用的驱动IC为0.96寸屏,驱动IC为SSD1306,具有内部升压的功能。由于SSD1306每页包含128字节,一共8页,也就是是128*64bit的点阵大小。

作为该屏的主要研究对象,这个控制器的使用方法先简单的介绍一下,具体的使用还需要认真研读使用手册。

该控制器一般是支持5种不同的协议传输数据

6800,8080, I2C, 三线SPI,四线SPI

具体的选择由BS引脚来决定

不同的BS组合会选择不同的通信总线

不同的通信总线上,数据线又有着不同的功能,就拿I2C来说D2表示SDAout,D1表示SDAin,同时时钟为SCL。

与此同时,硬件的连接如下所示

6.通信总线基本介绍

对于该款OLED,用的比较多的是SPI接口和I2C接口。

对比一下可以发现

速率

对于I2C总线来说,定义了三种速率

I2C协议v2.1规定了100K,400K和3.4M三种速率(bps)。

而SPI的速率很快,可以达到30MHz。

接口

SPI是一种串行外设接口,至少需要四根线,SCLK(时钟),MOSI(主机到从机),MISO(从机到主机),CS(片选)。是一种高速,全双工的通信总线。

I2C也是一种外设通信总线,两根线,是一种半双工的通信总线。由SCL与SDA两根线相连。

简单的说,I2C速率比SPI慢,但是用的引脚资源少。由于购买的模块属于I2C总线,所以先分析一下I2C对该模块的操作。

从机地址的选择

通过查看芯片手册,在芯片手册中,可以根据SA0引脚来确定从机地址,可以知道其基本的从机地址可由SA0引脚来决定。

最后一位表示读写,b0是1时,表示读,b0是0时,表示写。

SA0为0时,设备地址为0x3C,SA0为1时,设备地址为0x3D

下面再讲一下I2C的原理

无数据:SCL = 1 SDA = 0

开始位:当SCL为高电平时,SDA从高到低电平变化

停止位:当SCL为高电平是,SDA从低到高电平变化

应答位(ACK):当发送方传送完8位时,发送方释放SDA,由接收方控制SDA,且SDA=0

否应答位(NACK):当发送方传送完8位时,发送方释放SDA,由接收方控制SDA,且SDA=1

7.操作原理

SSD1306有一个存储静态图片的数据的RAM,GDDRAM(Graphic Display Data RAM )。用于存储图片数据,这个RAM的大小为128x64bit。因为有8个页,每个页是128字节,所以一共是128X64个像素点可以被控制。

当我们需要操作其中的像素点时,直接操作这个GDDRAM即可,然后告知SSD1306去刷新SSD1306。整个过程总结起来,就是首先初始化GDDRAM,然后填充这128x64个像素点的信息,最后按照特定的方式将GDDRAM刷新到液晶上即可。

8.实战操作

前面讲了许多关于这个屏的使用原理,其实实战操作起来非常的容易,因为很多库函数别人已经封装好了。我们不需要重复的造轮子。这个非常重要,拿来主义并不是什么坏事,要利用的好才是王道。下面来在8266上驱动这个模块。

8.1 硬件连接

目前还是采用我们的nodemcu模块,只是现在将引脚全部焊接上了。

接上电源与地线,同时接上SDA与CLK

8.2 软件操作

第一步:新建一个8266工程

第二步:寻找相关的库函数

第三步:在工程中配置SSD1306的库

说明:由于下面的例子会用到Time相关的函数,所以需要时间库

第四步:添加例程

8.3 实验结果

当我们将程序编译通过后,就可以下载到8266上进行功能验证了。

9.实验分析

由于底层的原理是设置GDDRAM中的像素点,这样就会带来很多操作上的麻烦,比如显示ICON及文字,这时,就需要采用字模制作工具,将BMP图片及中文汉字转换成相应的二进制文件进行显示。这些操作可以通过通用函数来完成,操作实现的过程也并不难。

10.总结

本次为8266加上了一个屏作为显示,瞬间觉得提示信息好多了。后期会对8266的使用做一个综合性的应用,也会用到这个屏来作为显示。现在先保证先用起来,然后弄清楚最基本的使用原理。这样才是最好的。后续文章也会持续讲述这个OLED的使用的,今天只写到这里。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式IoT 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 说明
  • 2.什么是OLED?
  • 3.OLED的技术特点
  • 4.实物赏析
  • 5.SSD1306
  • 6.通信总线基本介绍
  • 7.操作原理
  • 8.实战操作
    • 8.1 硬件连接
      • 8.2 软件操作
        • 8.3 实验结果
        • 9.实验分析
        • 10.总结
        相关产品与服务
        对象存储
        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档