极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 21480|回复: 5

ADRUINO 使用U8GLIB库 IIC 或者 SPI 驱动OLED液晶屏

[复制链接]
发表于 2016-7-7 23:56:45 | 显示全部楼层 |阅读模式
关键词 U8GLIB U8G_I2C_OPT_NONE U8GLIB_SSD1309_128X64 IIC

首先说一下我的开发环境
我用的开发板 Arduino Mega 2560,Arduino版本1.6.4,U8GLIB库版本为1.18.0
使用的LED屏幕为2.42寸的 7接口SPI/IIC 12864 由SSD 1309驱动
分别为GND VCC SCL SDA RES DC CS
默认使用SPI模式,焊接了R17,而R15 R18 R13 未焊接
按照厂家给出的SPI 接线方式
SCL=13 SDA=11 CS=10 DC=9 RES=开发板上的复位脚。等号左右是 OLED 屏;右边是 arduino 开发板
并且定义
U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS =10, A0 = 9
则库文件正常运行,且能显示
对于IIC模式,厂家只是说了将R17电阻拆下换到15上,R13短接。如果没有引线用到CS,则短接R18,即将CS接地。
定义U8GLIB_SSD1309_128X64 u8g(U8G_I2C_OPT_NONE);
而仅仅这么做是不完全的。
仔细阅读SSD1309的数据手册后,发现D/C为IIC地址选择,只有接地后才可以使用库文件正确的寻址。
RES为信号复位输入端,低电平为初始化,高电平为一般工作模式。
为此,使用IIC 模式的时候,首先定义U8GLIB_SSD1309_128X64 u8g(U8G_I2C_OPT_NONE);
其次,可以将RES接arduino开发板上的reset或者接VCC。SCL和SDA为IIC通信端口。
但这样在板子上电时,LED容易花屏或者不显示,有时候需要多上电几次。
还有一种办法,将VCC端口引出,在上电情况下,将RES先接GND,再接VCC,关闭总电源,再打开总电源,显示成功率高。

下面给出厂家的资料 电路原理图(部分)

SPI模式的液晶

IIC模式的液晶

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2016-7-7 23:57:40 | 显示全部楼层
上传一下库文件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2016-7-10 09:54:26 | 显示全部楼层
我用的是SSD1306,你的头像是MAPS吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-11 22:16:56 | 显示全部楼层
后进一步发现,可以在VCC RES GND直接焊接电容和电阻解决此问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-11 22:17:46 | 显示全部楼层
suoma 发表于 2016-7-10 09:54
我用的是SSD1306,你的头像是MAPS吧

头像怎么了?
回复 支持 反对

使用道具 举报

发表于 2017-7-15 21:20:25 | 显示全部楼层
又学到了一点,感谢楼主
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-25 14:26 , Processed in 0.042971 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表