当前位置: 首页 > news >正文

【雕爷学编程】Arduino动手做(93)--- 0.96寸OLED液晶屏模块14

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相比是比较小的,其抗震系数较高,能够适应较大的加速度,振动等比较恶劣的环境。

在这里插入图片描述

Arduino实验接线示意图

在这里插入图片描述
在这里插入图片描述
【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验九十三: 0.96寸I2C IIC通信128*64显示器 OLED液晶屏模块
项目四十五:选择180度旋转模式设置显示重映射

实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)实验九十七: 0.96寸I2C IIC通信128*64显示器 OLED液晶屏模块项目四十五:选择180度旋转模式设置显示重映射实验接线: oled模块    Ardunio UnoGND---------GND接地线VCC---------5V 接电源SDA---------A4SCL ------- A5
*/#include <Wire.h>
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"// 0X3C+SA0 - 0x3C or 0x3D
#define I2C_ADDRESS 0x3C// Define proper RST_PIN if required.
#define RST_PIN -1SSD1306AsciiWire oled;
//------------------------------------------------------------------------------
void setup() {Wire.begin();Wire.setClock(400000L);#if RST_PIN >= 0oled.begin(&Adafruit128x64, I2C_ADDRESS, RST_PIN);
#else // RST_PIN >= 0oled.begin(&Adafruit128x64, I2C_ADDRESS);
#endif // RST_PIN >= 0oled.setFont(Adafruit5x7);// Use true, normal mode, since default for Adafruit display is remap mode.oled.displayRemap(true);oled.clear();oled.println("Hello world!");oled.println("displayRemap(false)");oled.print("for other mode.");
}
//------------------------------------------------------------------------------
void loop() {}

Arduino实验场景图

在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验九十三: 0.96寸I2C IIC通信128*64显示器 OLED液晶屏模块
项目四十六:显示SSD1306Ascii库的字体样本

实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)实验九十七: 0.96寸I2C IIC通信128*64显示器 OLED液晶屏模块项目四十六:显示SSD1306Ascii库的字体样本实验接线: oled模块    Ardunio UnoGND---------GND接地线VCC---------5V 接电源SDA---------A4SCL ------- A5
*/#include <Wire.h>
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"// 0X3C+SA0 - 0x3C or 0x3D
#define I2C_ADDRESS 0x3C// Define proper RST_PIN if required.
#define RST_PIN -1const char* fontName[] = {"Arial14","Arial_bold_14","Callibri11","Callibri11_bold","Callibri11_italic","Callibri15","Corsiva_12","fixed_bold10x15","font5x7","font8x8","Iain5x7","lcd5x7","Stang5x7","System5x7","TimesNewRoman16","TimesNewRoman16_bold","TimesNewRoman16_italic","utf8font10x16","Verdana12","Verdana12_bold","Verdana12_italic","X11fixed7x14","X11fixed7x14B","ZevvPeep8x16"
};
const uint8_t* fontList[] = {Arial14,Arial_bold_14,Callibri11,Callibri11_bold,Callibri11_italic,Callibri15,Corsiva_12,fixed_bold10x15,font5x7,font8x8,Iain5x7,lcd5x7,Stang5x7,System5x7,TimesNewRoman16,TimesNewRoman16_bold,TimesNewRoman16_italic,utf8font10x16,Verdana12,Verdana12_bold,Verdana12_italic,X11fixed7x14,X11fixed7x14B,ZevvPeep8x16
};
uint8_t nFont = sizeof(fontList)/sizeof(uint8_t*);SSD1306AsciiWire oled;
//------------------------------------------------------------------------------
void setup() {Wire.begin();Wire.setClock(400000L);#if RST_PIN >= 0oled.begin(&Adafruit128x64, I2C_ADDRESS, RST_PIN);
#else // RST_PIN >= 0oled.begin(&Adafruit128x64, I2C_ADDRESS);
#endif // RST_PIN >= 0for (uint8_t i = 0; i < nFont; i++) {oled.setFont(System5x7);oled.clear();oled.println(fontName[i]);oled.println();oled.setFont(fontList[i]);oled.println("*+,-./0123456789:");oled.println("abcdefghijklmno");oled.println("ABCDEFGHIJKLMNO");delay(10000);}oled.clear();oled.print("Done!");
}
void loop() {}

Arduino实验场景图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SSD1306Ascii库的字体清单
在这里插入图片描述

http://www.lryc.cn/news/97373.html

相关文章:

  • ffplay播放器剖析(5)----视频输出剖析
  • 21.2:象棋走马问题
  • 【CSS】手写 Tooltip 提示组件
  • MySQL DDL语法
  • Git 绑定账号 和clone
  • ftp和sftp区别,以及xftp的使用
  • C++ 编程入门(一)—— Hello World
  • openlayers系列:加载arcgis和geoserver在线离线切片
  • 《人工智能安全》课程总体结构
  • unity关于匀速移动某些值的方法
  • 解决VScode下载太慢的问题记录
  • Gitlab服务器备份恢复及系统升级
  • docker入门讲解
  • 【Matlab】基于卷积神经网络的数据回归预测(Excel可直接替换数据))
  • 在Springboot集成Activiti工作流引擎-引入、调用,测试【基础讲解】
  • Java书签 #解锁MyBatis的4种批量插入方式及ID返回姿势
  • 在react项目中如何引入国际化
  • spring学习笔记十三
  • react native 本地存储 AsyncStorage
  • Postgresql数据库中的时间类型汇总
  • 算法刷题Day 51 最佳买卖股票时机含冷冻期+买卖股票的最佳时期含手续费
  • 编程导航算法村 第五关 | 白银挑战
  • (十六十七)时序数据库是怎么存储用户名和密码的从InfluxDB OSS迁移数据
  • 5分钟开发一个AI论文抓取和ChatGPT提炼应用
  • SK5代理与网络安全:保障爬虫隐匿性与HTTP连接稳定性
  • 基于4G网络的嵌入式设备远程升级系统设计与实现(学习一)
  • 陪诊小程序软件|陪诊系统定制|医院陪诊小程序
  • [数据集][目标检测]空中飞鸟目标检测数据集VOC格式4955张
  • 安徽现货黄金代理请看这篇
  • HTML JS实现点击按钮下载文件功能例子(C知道版)