【雕爷学编程】Arduino动手做(93)--- 0.96寸OLED液晶屏_arduino 0.96oled_驴友花雕的博客-程序员秘密

技术标签: arduino  【Arduino】66种传感器模块系列实验  传感器  单片机  

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验九十三:0.96寸I2C IIC通信128*64显示器 OLED液晶屏模块

在这里插入图片描述
OLED(OrganicLight-Emitting Diode)
又称为有机电激光显示、有机发光半导体(OrganicElectroluminesence Display,OLED)。OLED属于一种电流型的有机发光器件,是通过载流子的注入和复合而致发光的现象,发光强度与注入的电流成正比。OLED在电场的作用下,阳极产生的空穴和阴极产生的电子就会发生移动,分别向空穴传输层和电子传输层注入,迁移到发光层。当二者在发光层相遇时,产生能量激子,从而激发发光分子最终产生可见光。一般而言,OLED可按发光材料分为两种:小分子OLED和高分子OLED(也可称为PLED)。OLED是一种利用多层有机薄膜结构产生电致发光的器件,它很容易制作,而且只需要低的驱动电压,这些主要的特征使得OLED在满足平面显示器的应用上显得非常突出。OLED显示屏比LCD更轻薄、亮度高、功耗低、响应快、清晰度高、柔性好、发光效率高,能满足消费者对显示技术的新需求。全球越来越多的显示器厂家纷纷投入研发,大大的推动了OLED的产业化进程。

在这里插入图片描述

OLED特点
(1)功耗低——与LCD相比,OLED不需要背光源,而背光源在LCD中是比较耗能的一部分,所以OLED是比较节能的。例如,24in的AMOLED模块功耗仅仅为440mw,而24in的多晶硅LCD模块达到了605mw。
(2)响应速度快——OLED技术与其他技术相比,其响应速度快,响应时间可以达到微秒级别。较高的响应速度更好的实现了运动的图像。根据有关的数据分析,其响应速度达到了液晶显示器响应速度的1000倍左右。
(3)较宽的视角——与其他显示相比,由于OLED是主动发光的,所以在很大视角范围内画面是不会显示失真的。其上下,左右的视角宽度超过170度。
(4)能实现高分辨率显示——大多高分辨率的OLED显示采用的是有源矩阵也就是AMOLED,它的发光层可以是吸纳26万真彩色的高分辨率,并且随着科学技术的发展,其分辨率在以后会得到更高的提升。
(5)宽温度特性——与LCD相比,OLED可以在很大的温度范围内进行工作,根据有关的技术分析,温度在-40摄氏度到80摄氏度都是可以正常运行的。这样就可以降低地域限制,在极寒地带也可以正常使用。
(6)OLED能够实现软屏——OLED可以在塑料、树脂等不同的柔性衬底材料上进行生产,将有机层蒸镀或涂布在塑料基衬上,就可以实现软屏。
(7)OLED成品的质量比较轻——与其他产品相比,OLED的质量比较小,厚度与LCD相比是比较小的,其抗震系数较高,能够适应较大的加速度,振动等比较恶劣的环境。

在这里插入图片描述

OLED结构
由基板、阴极、阳极、空穴注入层(HIL)、电子注入层(EIL)、空穴传输层(HTL)、电子传输层(ETL)、电子阻挡层(EBL)、空穴阻挡层(HBL)、发光层(EML)等部分构成。其中,基板是整个器件的基础,所有功能层都需要蒸镀到器件的基板上;通常采用玻璃作为器件的基板,但是如果需要制作可弯曲的柔性OLED器件,则需要使用其它材料如塑料等作为器件的基板。阳极与器件外加驱动电压的正极相连,阳极中的空穴会在外加驱动电压的驱动下向器件中的发光层移动,阳极需要在器件工作时具有一定的透光性,使得器件内部发出的光能够被外界观察到;阳极最常使用的材料是ITO。空穴注入层能够对器件的阳极进行修饰,并可以使来自阳极的空穴顺利的注入到空穴传输层;空穴传输层负责将空穴运输到发光层;电子阻挡层会把来自阴极的电子阻挡在器件的发光层界面处,增大器件发光层界面处电子的浓度;发光层为器件电子和空穴再结合形成激子然后激子退激发光的地方;空穴阻挡层会将来自阳极的空穴阻挡在器件发光层的界面处,进而提高器件发光层界面处电子和空穴再结合的概率,增大器件的发光效率;电子传输层负责将来自阴极的电子传输到器件的发光层中;电子注入层起对阴极修饰及将电子传输到电子传输层的作用;阴极中的电子会在器件外加驱动电压的驱动下向器件的发光层移动,然后在发光层与来自阳极的空穴进行再结合。

在这里插入图片描述
发光原理
OLED器件的发光过程可分为:电子和空穴的注入、电子和空穴的传输、电子和空穴的再结合、激子的退激发光。具体为:
(1)电子和空穴的注入。处于阴极中的电子和阳极中的空穴在外加驱动电压的驱动下会向器件的发光层移动,在向器件发光层移动的过程中,若器件包含有电子注入层和空穴注入层,则电子和空穴首先需要克服阴极与电子注入层及阳极与空穴注入层之间的能级势垒,然后经由电子注入层和空穴注入层向器件的电子传输层和空穴传输层移动;电子注入层和空穴注入层可增大器件的效率和寿命。关于OLED器件电子注入的机制还在不断的研究当中,目前最常被使用的机制是穿隧效应和界面偶极机制。
(2)电子和空穴的传输。在外加驱动电压的驱动下,来自阴极的电子和阳极的空穴会分别移动到器件的电子传输层和空穴传输层,电子传输层和空穴传输层会分别将电子和空穴移动到器件发光层的界面处;与此同时,电子传输层和空穴传输层分别会将来自阳极的空穴和来自阴极的电子阻挡在器件发光层的界面处,使得器件发光层界面处的电子和空穴得以累积。
(3)电子和空穴的再结合。当器件发光层界面处的电子和空穴达到一定数目时,电子和空穴会进行再结合并在发光层产生激子。
(4)激子的退激发光。在发光层处产生的激子会使得器件发光层中的有机分子被活化,进而使得有机分子最外层的电子从基态跃迁到激发态,由于处于激发态的电子极其不稳定,其会向基态跃迁,在跃迁的过程中会有能量以光的形式被释放出来,进而实现了器件的发光。

在这里插入图片描述
OLED与LED\LCD对比
1、相较于LED或LCD的晶体层,OLED的有机塑料层更薄、更轻而且更富于柔韧性。
2、OLED的发光层比较轻,因此它的基层可使用富于柔韧性的材料,而不会使用刚性材料。OLED基层为塑料材质,而LED和LCD则使用玻璃基层。
3、OLED比LED更亮,OLED有机层要比LED中与之对应的无机晶体层薄很多,因而OLED的导电层和发射层可以采用多层结构。此外,LED和LCD需要用玻璃作为支撑物,而玻璃会吸收一部分光线。OLED则无需使用玻璃。
4、OLED并不需要采用LCD中的逆光系统。LCD工作时会选择性地阻挡某些逆光区域,从而让图像显现出来,而OLED则是靠自身发光。因为OLED不需逆光系统,所以它们的耗电量小于LCD(LCD所耗电量中的大部分用于逆光系统)。这一点对于靠电池供电的设备(例如移动电话)来说,尤其重要。
5、OLED制造起来更加容易,还可制成较大的尺寸。OLED为塑胶材质,因此可以将其制作成大面积薄片状。而想要使用如此之多的晶体并把它们铺平,则要困难得多。
6、OLED的视野范围很广,可达170度左右。而LCD工作时要阻挡光线,因而在某些角度上存在天然的观测障碍。OLED自身能够发光,所以视域范围也要宽很多。

在这里插入图片描述
在这里插入图片描述
0.96寸I2C IIC通信12864显示器 OLED液晶屏模块
电压:3V~5V DC
工作温度:-30℃~70℃
驾驶义务:1/64职责
高分辨率:128 * 64
面板尺寸:26.70 * 19.26 * 1.85mm / 1.03 * 0.76 * 0.07英寸(约)
有效面积:21.74 * 11.2mm /0.86
0.44英寸(约)
驱动IC:SSD1306
128 * 64 LED显示模块,支持多种控制芯片。
完全兼容51系列,MSP430系列,STM32 / 2,CSR IC等
超低功耗:全屏点亮0.08W
超高亮度和对比度可调
带嵌入式驱动/控制器
接口类型为IIC

在这里插入图片描述
在这里插入图片描述
模块电原理图

在这里插入图片描述

实验接线示意图
在这里插入图片描述

/*

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验九十三:0.96寸I2C IIC通信128*64显示器 OLED液晶屏模块

安装驱动库:工具—管理库—搜索“U8glib”-下载-安装

实验接线:A4---SDA, A5---SCL

项目一:第一次点亮OLED屏

*/



#include "U8glib.h"

String i="Time:";

int s=0;//变量秒  用来显示

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);      // 小E开发板上面就是用的这个

void draw() {
    

  u8g.setFont(u8g_font_unifont); //  设置字体 这句必要

  u8g.drawStr( 1, 10, "Hello Eagler8!");//第一个是x第二个是y坐标

  u8g.setFont(u8g_font_ncenB14);//还是先设置一个字体

  u8g.setPrintPos(0,44);//然后设置一个位置

  u8g.print(i);//然后就是数据

  u8g.print(s);

}

void setup(void) {
    

}

void loop(void) {
    

if(s!=millis()/10)

  s=millis()/10;

  //上面这一句是取系统运行秒数  单位ms除以1000就是秒

  u8g.firstPage();  

  do {
    

  draw();

  }

  while( u8g.nextPage() ); //延迟一段时间后重新生成图片

  delay(10);

}

实验场景图
在这里插入图片描述

/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验九十三:0.96寸I2C IIC通信128*64显示器 OLED液晶屏模块
安装驱动库:工具—管理库—搜索“U8glib”-下载-安装
实验接线:A4---SDA, A5---SCL
项目二:测试之1-100循环显示数字
*/

#include "U8glib.h"  //加载显示库文件
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);  // I2C / TWI 实例化

void setup() {
    
}

void loop() {
    
  for(int i=1;i<101;i++){
    
    u8g.firstPage();  //一下是显示实现部分
  do {
    
  u8g.setFont(u8g_font_fub30);
  //设置字体和自号,目前测试字号有fub14,17,20,30
  u8g.setPrintPos(0, 50); //显示的位置
  u8g.print(i);//显示变量i的值
  u8g.setFont(u8g_font_fub14);//设置字体和自号
  u8g.setPrintPos(95, 50); //显示的位置
  u8g.print("cm");//显示cm字样
  }
  while( u8g.nextPage() );
  delay(100);//显示的时间间隔。
  }
}

有关OLED的两个非常重要的知识点:
其一 像素点点阵
点阵图也叫栅格图像,像素图,简单的说,就是最小单位由像素构成的图,缩放会失真。构成位图的最小单位是像素,位图就是由像素阵列的排列来实现其显示效果的,每个像素有自己的颜色信息,在对位图图像进行编辑操作的时候,可操作的对象是每个像素,我们可以改变图像的色相、饱和度、明度,从而改变图像的显示效果。举个例子来说,位图图像就好比在巨大的沙盘上画好的画,当你从远处看的时候,画面细腻多彩,但是当你靠的非常近的时候,你就能看到组成画面的每粒沙子以及每个沙粒单纯的不可变化颜色。

OLED其实就是一个M x n 的像素点阵,想显示什么就得把具体位置的像素点亮起来。对于每一个像素点,有可能是1点亮,也有可能是0点亮。

在这里插入图片描述
其二 坐标系

坐标系,是理科常用辅助方法。常见有直线坐标系,平面直角坐标系。为了说明质点的位置、运动的快慢、方向等,必须选取其坐标系。在参照系中,为确定空间一点的位置,按规定方法选取的有次序的一组数据,这就叫做“坐标”。在某一问题中规定坐标的方法,就是该问题所用的坐标系。坐标系的种类很多,常用的坐标系有:笛卡尔直角坐标系、平面极坐标系、柱面坐标系(或称柱坐标系)和球面坐标系(或称球坐标系)等。中学物理学中常用的坐标系,为直角坐标系,或称为正交坐标系。从广义上讲:事物的一切抽象概念都是参照于其所属的坐标系存在的,同一个事物在不同的作标系中就会有不同抽象概念来表示,坐标系表达的事物有联系的抽象概念的数量【既坐标轴的数量】就是该事物所处空间的维度。两件能相互改变的事物必须在同坐标系中。

在OLED坐标系中,左上角是原点,向右是X轴,向下是Y轴。

在这里插入图片描述

实验开源图形编程(Mind+、Mixly、编玩边学)

在这里插入图片描述
实验场景图
在这里插入图片描述
实验开源图形编程(Mind+、Mixly、编玩边学)

在这里插入图片描述

实验场景图

在这里插入图片描述

实验开源图形编程(Mind+、Mixly、编玩边学)

在这里插入图片描述

实验场景图
在这里插入图片描述
实验开源仿真编程(Linkboy V4.62)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41659040/article/details/121426835

智能推荐

No module named 'win32api' 解决办法_liwei28的博客-程序员秘密

打开终端(windows+r)pip install pypiwin32 搞定

Halcon实现Otsu最大类间方差法_建设精神的博客-程序员秘密

这里写自定义的目录标题最佳分割灰度阈值从1遍历到255,确定最终值BestThreshold*最大类间方差法(OSTU) dev_update_off ()read_image (Image1, 'F:/halcon_test/beraing/1 (5).bmp')get_image_size (Image1, Width, Height)dev_close_window ()dev_open_window_fit_image (Image1, 0, 0, -1, -1, WindowHand

软件工具——IDEA使用git版本控制工具_unversioned file的xml_祁峰sunny的博客-程序员秘密

前面博文对git的使用做了简要教程,项目文档通过GIT GUI进行上传同步等操作需求已基本满足。下面对项目代码的版本控制进行学习。操作系统 win10 ,开发环境IDEA, 语言java, 版本控制工具Git。git使用相关教程:git客户端下载安装:https://blog.csdn.net/qq_15903671/article/details/87966916git bash 使...

漫画:程序员小赵的架构师之路 _weixin_33796205的博客-程序员秘密

《架构师小赵的故事》原文作者刘欣先生,工作15年的前IBM架构师。原文地址:http://m.sohu.com/n/473759776/​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​...

LINUX环境下的IP和MAC地址绑定_LinuxJoey的博客-程序员秘密

Linux服务器承担整个校园网访问因特网的网关,在Linux环境中,有一个非常灵活的IP过滤工具是iptables,这个工具在使用的时候可以设置多个条件同时满足才允许通过IP数据,利用这个功能就可以实现地址绑定功能。设计理念是只有IP地址和MAC地址同时满足条件时才允许数据转发,命令如下:iptables -P FORWARD DROPiptables -A FORWARD -s 192.

Spring单例初始化流程_融极的博客-程序员秘密

概述Spring的单例对象的初始化主要分为三步。createBeanInstance:实例化,其实就是 调用对象的构造方法实例化对象。populateBean:填充属性,这一步主要是多bean的依赖属性进行填充。initializeBean:调用spring xml中的init() 方法,或者@PostConstruct注解的init()方法。三级缓存对于单例来说,在Spring容器整个生命周期内,有且只有一个对象,所以很容易想到这个对象应该存在Cache中,Spring为了解决单例的循环

随便推点

(转)如何正解决库存超卖问题 --乱_tamink2013的博客-程序员秘密

  一般电子商务网站都会遇到如团购、秒杀、特价之类的活动,而这样的活动有一个共同的特点就是访问量激增、上千甚至上万人抢购一个商品。然而,作为活动商品,库存肯定是很有限的,如何控制库存不让出现超买,以防止造成不必要的损失是众多电子商务网站程序员头疼的问题,这同时也是最基本的问题。  本文来源:http://blog.csdn.net/caomiao2006/article/details/3856...

学好python的资料汇总_学好python需要什么知识库_-早起的码农的博客-程序员秘密

转载  一个论坛:http://www.python-forum.org/pythonforum/index.php<br />Python基本安装:<br />    * http://www.python.org/ 官方标准Python开发包和支持环境,同时也是Python的官方网站;<br />    * http://www.activestate.com/ 集成多个有用插件的强大非官方版本,特别是针对Windows环境有不少改进;<br />Python文档:<br />    * http://

docker 打印出来的日志与服务器时间不一致_nas docker 打日志时区不对_leexiehui的博客-程序员秘密

docker的时间与宿主机是一致的docker 打印出来的日志与服务器时间不一致解决办法:echo 'Asia/Shanghai' &gt;/etc/timezone#宿主机和容器时间相查8个小时#宿主机采用CST时区,CST是指China Shanghai Time,东八区时间#容器采用UTC时区,UTC应该是指Coordinated Universal Time,标准时间 统一两者的时区有下面几种方法1、共享主机的localtime#创建容器的时候指定启动参数,挂...

GObject 学习笔记汇总---13_yanbixing123的博客-程序员秘密

转自: http://garfileo.is-programmer.com/2011/3/27/gobject-signal-extra-2.25621.htmlGObject 信号机制——信号 Accumulator在文档 [1] 中,从外围对 GObject 信号注册的过程进行了初步分析。生命不息,折腾不止,我们应当以  Adrian Hands 大叔为榜样。所以,本文

java string 日期_java String转化为时间和日期_Rui Chu的博客-程序员秘密

平时在开发中经常会遇到String和日期之间的转换。但是有的时候只是需要日期的某一部分,比如年、月。如果这个时候再用DateFormat 或者是Calendar 的话,会感觉废了多余的工夫,有时候就觉得没必要。今天看翻了一遍Java从入门到精通,发现了String自带有简单有方便的方法(之前一直没发现),代码如下:public class Date2StringTest {@Testpublic ...

Linux初学(一)_facix_wang_tager2000的博客-程序员秘密

本篇随笔为Linux实验报告一,讨论linux系统安装与初步应用。受时间精(neng)力所限,本文多是一些简略的描述。如果发现事实性错误,希望读者不吝指正。Linux的历史  我们都知道机器本身不具备供人操作的能力,我们通过精巧的电路设计让它有了基本的记忆存储、条件判断等基本逻辑功能,然而这些依旧无...

推荐文章

热门文章

相关标签