http://ardui.co/archives/738

我是潘,曾经是个工程师。这是为 Ardui.Co 制作的 “Arduino 公开课” 系列的入门教程。上一课介绍了I2C 协议连接1602 LCD。现在我们将屏幕升级到更强大的12864 OLED(也称“1306”),让交互界面更加丰富。有任何疑问请在评论区提出,我会逐一回答。

1602 LCD 限制很多,只能显示字符不能绘图,而且每个字符的像素是分隔的,一般用在简单的交互设备上,比如显示电压、温度等。而 12864 OLED,则是一块功能完整屏幕,想象一下早期的诺基亚手机,利用这块屏幕还可以设计一些像贪吃蛇等简单游戏。

首先,12864 OLED 屏幕有 I2C 和 SPI 两种通信协议的模组,由于协议不同,所以完全不兼容。这次使用的是 I2C 协议的模组,SPI 协议后面会介绍。不过,可以提前剧透一下,I2C 和 SPI 性能和扩展性有很大差异,在产品设计开发过程中,选用哪一种将是一场艰难的选择。

回到正题,与 1602 LCD 的命名不同(“16”代表16个字符,“2”代表2行),12863 的含义是 128 X 64 个像素,这些像素都是连续的,可以构成不同的字符或者图形。OLED 意味着面板的显示方式是 发光二极管。但 12864 也是一款单色的屏幕,所以每个像素就是一个二极管,而不是彩色的 3~4 个(一些OLED 屏幕会在 RGB 之外增加 W 白色二极管,从而提升对比度和亮度)。

一般屏幕是横向使用的,128 个像素横向排列在 X 轴上,分别以 0~127 来代表,64个像素垂直排列在 Y 轴上,分别以 0~63 来代表。

按照 I2C 方式接线即可:
SCL 接到 A5
SDA 接到 A4
VCC、GND 分别接 VCC 和 GND

驱动这块屏幕要用到 U8g2 库,可以直接从 IDE 的库管理器中下载。这个库功能非常强大,除了能驱动 12864 外,还能驱动市面上大部分常用的LCD/OLED。而且能方便地调节字体的大小、间距,还可以显示比较复杂的动态图形。

安装好后,打开示例程序,找到 “U8g2 -> full_buffer ->  HelloWorld” :

让人崩溃的注释,但只要找到对应的模块:U8G2_SSD1306_128X64_NONAME_F_SW_I2C,对于 Arduino UNO 选择标注有 SCL、SDA 即可(第21行),把注释去掉,其他注释内容就能删除掉。现在,上传程序到 Arduino 就可以工作了:

但我们并不满足静态的文字,现在要让文字动起来,让Hello World 自上而下循环滚动,此时就要用到坐标系:

按照 I2C 方式接线即可:

不用对接
SCL 接到 A5
SDA 接到 A4
VCC、GND 分别接 VCC 和 GND

贴出了一个寻找设备地址的代码

https://blog.csdn.net/ling3ye/article/details/51542424

  • IIC 介面:
  • GND: 電源地
  • VCC: 2.2V~5.5V
  • SCL: CLK 時鐘(高電平2.2V~5.5V)
  • SDA: MOSI 資料(高電平2.2V~5.5V)尺寸:約29.5mm*27.35mm
  • https://www.taiwaniot.com.tw/product/1-3%E5%90%8Boled-%E6%B6%B2%E6%99%B6%E5%B1%8F%E9%A1%AF%E7%A4%BA%E6%A8%A1%E7%B5%84-%E9%BB%91%E5%BA%95%E7%99%BD%E5%AD%97-i2c-oled%E6%A8%A1%E5%A1%8A%EF%BC%81%E5%8F%AA%E9%9C%804%E5%80%8B%E5%BC%95%E8%85%B3/

https://blog.csdn.net/ling3ye/article/details/53399305

相关开源代码:
程序与库与软件打包下载:https://u16460183.ctfile.com/fs/16460183-296052219

文件夹说明:

Adafruit_SSD1306-master   ——SSD1306库(OLED的主要库文件,库请复制在Arduino的库目录下)

Adafruit-GFX-Library-master  —— GFX库(是一种图形库)

字模提取V2.2   —— 可以生成中文字点阵变量的软件

LS_PrintChinese —— 主程序

可能有人好奇这些乱七八糟的怎么来的?↓

这其实就用到  字模提取V2.2  的软件了,

分享地址:http://pan.baidu.com/s/1i50UmxB

打开软件,具体操作如下:

把点阵生成的数组,套入程序的相关变量,调用相关的函数就可以实现显示中文。

其实取模软件,就是把中文字转换成点阵,实现在没有中文字库程序中显示中文。

我想有字库的也是这样的点阵库,如有理解错误请指出。

转载于:https://www.cnblogs.com/kekeoutlook/p/10810219.html

I2C 连接 12864 OLED 屏幕相关推荐

  1. 51单片机IIC 12864 OLED屏幕滚动显示仿真

    51单片机IIC 12864 OLED屏幕滚动显示仿真 程序代码接着前面文章<STC15W408AS单片机IIC驱动0.96寸OLED显示> 这里不再贴出代码了,前面有一篇有实物效果演示, ...

  2. 基于STC8G2K64S4单片机通过I2C硬件控制OLED屏幕

    #前言 本文主要是讲解了如何使用STC8G2K64S4单片机自带I2C硬件来控制OLED屏幕 写这篇文章主要是为了之后的模拟量光敏调节参数,使参数直接显示在OLED屏幕中更方便调节 在刚学习之时,查遍 ...

  3. I2C通信实现OLED屏幕

    I2C通信 半双工通信 基本原理 空闲状态 I2C总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态 起始信号与停止信号 起始信号:当SCL为高期间,SDA由高到低的跳变:启动信号是 ...

  4. 【Renesas RA6M4开发板之I2C(模拟)驱动ssd1306 OLED屏幕】

    [Renesas RA6M4开发板之I2C(模拟)驱动ssd1306 OLED屏幕] 1.0 OLED 1.1产品特性: 1.2产品参数: 2. RT-theard配置 2.1 硬件需求 2.2 软件 ...

  5. Arduino使用u8g2库函数驱动4线/6线OLED屏幕(I2C/SPI通讯)附带库函数详解

    话不多说,直接入正题: 常见的OLED通常有两种样式,如下图所示,分别是4线和6线控制 本人几乎浏览了网上所有关于控制OLED模块的教程,并都经过了项目实测:大力推荐u8g2这个库函数来控制,文章末尾 ...

  6. OLED屏幕花屏的原因(I2C+DMA)

    OLED屏幕在通电后花屏,呈雪花状. 在网上查询原因,开始了尝试: 1.可能是由于杜邦线的问题,可能接触不良导致,但更换了杜邦线依然花屏. 2.可能是OLED屏幕问题.因为经常在工作,之前听说OLED ...

  7. STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、图像(硬件IIC)

    参考:基于STM32-Oled(IIC)的使用 作者:奋斗的小殷 发布时间: 2021-05-07 13:09:26 网址:https://blog.csdn.net/boybs/article/de ...

  8. python oled库_在树莓派上使用 SSD1306 OLED 屏幕

    树莓派在许多使用场景下并不需要接一台专用显示器,如需要查看树莓派上的一些信息可以通过手机.电脑登录到树莓派上操作,但总归不够便利. 下面介绍两款 OLED 小屏(均为 SSD1306 芯片驱动)可以直 ...

  9. SPI驱动0.96/1.3寸 OLED屏幕,易修改为DMA控制

    目录 OLED SPI 端口定义 七针OLED引脚定义 六针OLED引脚定义 驱动程序 oled.c oled.h oledfont.h 使用 main.c 实验现象 STC实验箱4 IAP15W4K ...

最新文章

  1. 扩展卡尔曼滤波EKF与多传感器融合
  2. 推荐VS2008插件CodeRush Xpress for C#
  3. 贪吃蛇程序设计报告python_20192116 2019-2020-2 《Python程序设计》实验四报告
  4. python左移右移位运算_Python这些位运算的妙用,绝对让你大开眼界
  5. 【转】DCM(DICOM)医学影像文件格式详解
  6. sql server (mssqlserver)无法启动,事件查看器提示SQL Server 无法生成 FRunCM 线程
  7. atitit.提升开发效率---使用server控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比較...
  8. autojs刷网课之一、刷视频篇
  9. 计算机技术工种技师,技师10个职业(工种)国家职业标准要求申报条件
  10. python 全国省市区列表查询
  11. 天涯论坛--只看楼主
  12. linux查看进程的代码,Linux ps 查看进程(示例代码)
  13. 链家网爬取深圳租房信息并存入MySQL
  14. Python时间序列建模基础
  15. UE4 虚幻 常用的流程控制蓝图节点介绍
  16. android应用开发-从设计到实现 2-4 文字的使用
  17. 聊聊志愿填报那点事儿
  18. 直播代码中关于敏感词替换的代码编辑
  19. 当你看不清自己的时候,读一些句子会有启发
  20. odoo15全面解决财务应收应付全面管理方案(含银企直联)(1)

热门文章

  1. Linux中set -x 与 set +x命令的使用
  2. 问题:npm如何设置仓库地址?
  3. oppo A57(全网通)一键救砖,轻松刷回官方系统。
  4. Vue-什么是vuex
  5. 计算机专业毕业设计致谢,计算机专业毕业论文致谢范文
  6. Android下的配置管理之道之主从gerrit配置使用replication插件
  7. 关于解决虚拟机不能挂起的问题
  8. SAP 物料的最小订购量、及舍入值的测试
  9. is.gd免费网址压缩
  10. solaris服务器系统,Sun Solaris系统服务器RAID-5数据恢复实例分析