bbc11234 发表于 2015-11-27 22:11:46

Arduino Nano下使用u8glib点亮Oled 128x64

本帖最后由 bbc11234 于 2015-11-27 22:14 编辑

买了个oled,准备玩玩。拿到手一看,完全不懂。上网一查,关于oled这一块都是语焉不详,就没有好好说说要如何接线,如何设置的。所以说国人的作风就是太粗放了,就没有踏踏实实从基础做起的。
然后我得到了这个:

想要知道怎么做的吗?跟我按下面的步骤一步一步来即可。
1. 先在u8glib的官方网站下载u8glib的库。最新arduino版的:1.18.1
2. 解压文件到arduino IDE安装目录的libraries目录下。
3. 连接你的oled到arduino主控板。我用的是nano。
如何连接呢? u8glib是一个非常强大的库,支持任何连接方式。我买的这个oled需要连5个脚,加上vcc和gnd一共要7个脚。
咱们全联在模拟口上即可。如果你数字口空余你就可以联在数字口。

简单来说,我们把这些端口全联上nano就可以了。除vcc, gnd连在特定端口外,其它口随意插接。
接好后记下你分别联在哪个端口了。
查阅你的模块资料,上面应有写每个口的意义,比如说我这块:
D0 时钟线
D1 数据线
RST 复位线
DC 数据/命令线
CS 片选线
这些翻译成u8glib的语言就是:

[*]d0->sck   时钟线
[*]d1->mosi 数据线
[*]res->reset 复位
[*]dc->a0 命令线
[*]cs->cs 片选线

你要记住sck, mossi, reset, a0, cs都插在哪里了。
再查阅一下你的oled用的是什么控制芯片,很多用的是ssd1306的。
在arduino里打开示例->u8glib, 在里面选择helloworld.
打开后,找到下面这一行:
//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9);        // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9
注释去掉,改成
U8GLIB_SSD1306_128X64 u8g(14,15,16,17,18);        // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9
并且在最后加上你插上的reset端口号。虽然官方说reset是可选的,但实测必须指定一下,否则不能点亮。
编译上传,即可完成点点亮。
要注意的几点:
[*]arduino的模拟口对应的号码你需要在资料上查阅一下,比如说nano的:
[*]
我这里用的是14-18, 也就是a0-a4口。
[*]reset的端口号是额外加上的,否则实测不行。缺省是不需要的。
[*]点亮oled不需要外接电源,功耗非常小。这算是唯一的一个优点吧,毕竟显示太小了,而且就目前这样子,也没有办法封装,加个外壳什么的。


接下来你就可以按照示例的做法来输出文字,或者任何其它的动画效果了。
希望大家都能早日用上oled。
在这个愉快的周末,可以好好玩玩oled.
有写好的例程,别忘了分享!

小猪会轮滑 发表于 2015-11-28 11:29:29

:lol

topdog 发表于 2015-11-29 08:50:09

ss1306有采用I2C的,也有采用SPI的,你这块是后者。u8glib因为是google的所以被墙了,谢谢你的分享。
VCC就是电源的意思,屏是需要电源的。:)

keneng 发表于 2015-11-29 14:06:26

res可以接在nano的reset上,这应该就是缺省了,可以少占用一个端口。

panqi 发表于 2015-11-30 00:44:35

谢谢分享,。。

suoma 发表于 2016-1-3 18:57:16

U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9)
4个引脚可以的。下载完后,按下reset就可以显示

avanyway 发表于 2016-1-8 12:57:46

:)很给力啊啊

Nice 发表于 2016-7-29 17:47:17

赞:lol,给力

765231 发表于 2016-9-7 20:06:53

我的为什么没办法编译呢,图片在附件。谢谢
页: [1]
查看完整版本: Arduino Nano下使用u8glib点亮Oled 128x64