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 次阅读了 感谢 参考或原文 服务器君一共花费了 ...
随机推荐
- Windows8、Windows8.1使用便签工具
Windows8.8.1没有了小工具,但是很多小工具实际上还是存在的,便签就是常用的小工具之一,既然系统自带就不用在安装第三方的了,使用方法: 启动或显示 Sticky Notes : Win+R-- ...
- dcm4chee 修改默认(0002,0013) ImplementationVersionName
dcm4chee-2.17.3-psql\server\default\lib\dcm4che.jar ----org\dcm4che\Implementation.properties dcm4ch ...
- 第五章 mybatis批量更新update
一.所有的指定id的模型类的同一个字段进行批量更新 实际上: update t set fileld='xx' where id in (id1,id2,...,idn) 代码: <update ...
- 使用DebugView小工具调试已部署的.net程序 (转)
DebugView for Windows能够捕捉Debug输出的信息在本地的操作系统上.如何你需要调试程序有网络访问推荐使用Wireshark和监听HTTP的工具Fiddler. 下载下来是一个ZI ...
- css之图片羽化处理
需求: 对图片做css羽化处理 实现: <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- C# 播放铃声最简短的代码实现方式
因为只是做一个软件的闹铃播放效果,到网上找的时候试了几种,哎,都失败了,而且代码挺杂的,最终一句搞定了: 1 // 窗体加载事件 2 private void Time ...
- Java怎么转义Ӓ这种字符
import org.apache.commons.lang.StringEscapeUtils; public class EscapeHtml { /** * @param args */ pub ...
- awk的基本使用方法
awk是处理文本文件的一个应用程序,几乎所有 Linux 系统都自带这个程序. 它依次处理文件的每一行,并读取里面的每一个字段.对于日志.CSV 那样的每行格式相同的文本文件,awk可能是最方便的工具 ...
- WordPress 获取指定分类ID的分类信息
get_term:直接从数据库中获取分类信息get_the_category:使用post_id作为参数,先根据post_id查询对应的文章然后再返回对应的分类信息,如果没有文章信息则返回Null 之 ...
- Python输出信息
Python很多情况下,都是通过Console输出信息,大量翻屏滚动的信息,太乱.而pip安装的效果就很好,只是在一行输出信息,不断变化.网上找资料,不难. 用print的话,跟一个“,”就表示不换行 ...