I2C 12864OLED的工作机制
有许多不同规格的OLED显示屏与Arduino兼容, 128x64是最常见的型号, 也很便宜, 淘宝上大概是12~14元一片.
OLED与Arduino的通信
首先, 使用I2C总线的设备, 都可以使用Wire这个library与其通信, 其设备地址可以从0x00至0xFF, 可以通过指定地址操作对应的设备.
其次, 在OLED显示屏中, 每个寄存器地址对应某个功能, 例如反转颜色, 或关闭显示, 寄存器地址的范围也是0x00到0xFF.
所以, 基本上你只需要3个参数就能让OLED显示屏执行某项命令, 方式如下:
Wire.beginTransmission(devAddr);
Wire.write(regAddr);
Wire.write(data);
Wire.endTransmission(); // stop transmitting
例如, 要关闭0x3C这个地址的设备的显示, 我们修改寄存器地址0x40的值为0xAE
Wire.beginTransmission(0x3C); // might be different for your display
Wire.write(0x80);
Wire.write(0xAE);
Wire.endTransmission(); // stop transmitting
我们需要了解的寄存器地址主要有两个: 一个是命令地址, 另一个是数据地址, 可以自行查阅datasheet
如何控制每个像素的显示
这个屏幕的像素矩阵的划分是比较特殊的, 整个屏幕水平方向划分为8个page, 垂直方向则是按像素划分为128 column. 每个page-column包含8个像素, 通过一个十六进制数(其实就是一个字节, 8个bit)来控制, 每个bit控制一个像素
如果我们要在左上角显示一个亮点, 需要发送0x01到数据地址, 例如
Wire.beginTransmission(0x3C); // might be different for your display
Wire.write(0x40);
Wire.write(0x01);
Wire.endTransmission(); // stop transmitting
如果需要改变下一column的显示, 你只需要继续给数据地址发送数据, 指针会自动走到下一个column. 如果已经到了最后一个column, 取决于当前的寻址模式, 如果是Page Addressing, 会返回到本page的第一个column, 如果是Horizontal Addressing, 会跳到下一个page的第一个column. 还有第三种寻址模式, Vertical addressing mode. 具体的地址增长方式如下
以上就是需要了解的OLED显示机制
翻译自: https://oscarliang.com/arduino-oled-display-library/
I2C 12864OLED的工作机制的更多相关文章
- android 6.0 高通平台sensor 工作机制及流程(原创)
最近工作上有碰到sensor的相关问题,正好分析下其流程作个笔记. 这个笔记分三个部分: sensor硬件和驱动的工作机制 sensor 上层app如何使用 从驱动到上层app这中间的流程是如何 Se ...
- bq27441-G1 工作机制
/*************************************************************************** * bq27441-G1 工作机制 * 声明: ...
- Java IO工作机制分析
Java的IO类都在java.io包下,这些类大致可分为以下4种: 基于字节操作的 I/O 接口:InputStream 和 OutputStream 基于字符操作的 I/O 接口:Writer 和 ...
- malloc 函数工作机制(转)
malloc()工作机制 malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表.调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块.然后,将 ...
- springMVC工作机制和框架搭建配置说明
先说一下springMVC的工作机制 1.springmvc把 所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作. 2.Dispatcher ...
- CKPT进程工作机制
CKPT进程工作示意图 2.CKPT进程工作机制 检查点进程被触发的条件为: a> 当发生日志组切换时: b> 用户提交了事务时(commit): c> Redo log buf ...
- 15 sql base line 工作机制
<个人Configuration> 正常配置一下, 就OK了, 不用理了, oracle 11g 默认启动 发展: .从Oracle的发展角度来看,估计这种方法是Oracle发展和改进的方 ...
- HBase读写路径的工作机制
出处:http://wuyudong.com/1946.html HBase 写路径工作机制 在HBase 中无论是增加新行还是修改已有的行,其内部流程都是相同的.HBase 接到命令后存下变化信息, ...
- PHP自动加载__autoload的工作机制
PHP自动加载__autoload的工作机制 PHP的懒加载lazy loading 在 2011年11月12日 那天写的 已经有 4559 次阅读了 感谢 参考或原文 服务器君一共花费了 ...
随机推荐
- 如何将frm格式MYD格式MYI格式文件导入MySQL中
frm,myd,myi是属于MySQL存储数据的文件,phpMyAdmin是无法导入的. phpMyAdmin支持的文件格式为sql文件. 其实很简单: 1.找到你的mysql的安装目录下的data文 ...
- 构建-4 dependencies 依赖管理
官方文档 Add build dependencies The Gradle build system in Android Studio makes it easy to include exter ...
- 初识C#程序结构
一.编写第一个C#程序.注释: 1.编写程序 static void Main(string[] args)//在Mian方法下编写代码输出数据 { C ...
- 揭秘uc浏览器二
这节,四个议题: ①一个网页显示在webview控件中 ②如何正常隐藏显示标题栏. ③如何用runnable来隐藏标题栏,这样子就更加的专业化. ④上节我们说道了QuickActionGrid,看他长 ...
- Sublime 3156 LICENSE key
mac sublime3 3156 LICENSE 转自:http://blog.csdn.net/myboyliu2007/article/details/78748253 下载地址:https:/ ...
- php获取网址
#测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br> ...
- 浅谈压缩感知(九):正交匹配追踪算法OMP
主要内容: OMP算法介绍 OMP的MATLAB实现 OMP中的数学知识 一.OMP算法介绍 来源:http://blog.csdn.net/scucj/article/details/7467955 ...
- HTTP服务原理
第1章 HTTP服务介绍 1.1 简述用户访网站流程 a 进行域名信息的DNS解析 dig +trace 获得www.oldboyedu.com ip地址信息 b 进行与网站服务器建立连接,tcp三次 ...
- Eclipse导入git上的maven web项目 部署 - lpshou
http://www.tuicool.com/articles/fqm2Qf 推酷 文章 微博 主题 站点 活动 应用 周刊 登录 Eclipse导入git上的maven web项目 部署 - ...
- JavaScript String 对象扩展方法
/** 在字符串末尾追加字符串 **/ String.prototype.append = function (str) { return this.concat(str); } /** 删除指定索引 ...