arduino i2c 如何写16位寄存器_arduino学习笔记之OLED液晶屏

01

前期准备

1.arduino UNO开发板

2.OLED 显示屏

3.导线若干

4.取模软件

02

引脚接线

4180dbce66850c7c0d8bc3a6b21f2e47.png

OLED 显示屏有四个引脚,分别是:
SDA(数据线) SCK(时钟线) VDD(3.3V) GND
在UNO开发板上I2C接口,SDA对应D4,SCK对应D5
在MEGA2560开发板上I2C接口,SDA对应D20, SCL对应D21

03

通讯地址

背面图:

fe5bc86e4ac6d3b54922b4c4511b72fa.png

模块背面的IIC ADRESSSELECT表示该模块在IIC通信作为从机时的地址,当中间的脚用电阻和左边接起来时,地址为0x78,当和右边接起来时,地址为0x7A。

48fe700d2fdd3bf4e924eba16918ff73.png

这款屏幕尺寸约为0.96英寸,由SSD1306驱动,驱动接口I2C,I2C地址(0x3c 默认/0x3d)。
不同型号有不同的通信地址,可通过程序查询:

872e63ed49d77438c55609d8e69deed8.png f0b96962dbd13516535a37f7c4625679.png

上传到arduino板上,打开串口可查看地址

de84e568536ab1a0275411762894336b.png

04

编程与程序解读

注:编程之前需要添加Adafruit_SSD1306和Adafruit_GFX这两个库文件

官方例程:

64e011a4a17f571c63522ecc01c7f212.png 4cab35e9727d07d280cc13fd71495087.png faf116f9c5d020b28c97a939bc3d44ff.png f2f309aa056d5a6a485203bd11f46a0b.png f11bb4f416da2bcd10c366941d340279.png 3f009f28548d9a44eba2c43bd53b2993.png f06b918247f94351f1655adbe70964b6.png eb6dc309a5fbd9efc47f60dde99a5c79.png 2873ac976def681927e7c223843d3ac9.png a129e6e1182f6bec0f4528513ef66c38.png 8a8c79331597a16e597c02e87ea8048b.png 0249bc75943d273c578b64c5c327c96f.png 9987bbb6e439a733b2af2f1f97da3f9e.png ee2a0b4598c147af3658d3241cd1f35b.png 7ede0710a117097c59d37e5ff287dffd.png 910dd47cff944d3b1837963aea8ef5d2.png fc0788fd746e063cfe09355ef5128091.png 80e1fc901ee59f6a5f7ec79ad3db2f51.png

程序与函数讲解

以下面简单显示程序为例

49ca2482eba6fa8cff0ebece2b5bfd6c.png efb5aa2e39320a36655e6a90af199cd4.png d2de92e536c17707c69bc9d9fb1c12c1.png 87fb4c1bc081cfa5f331d41d79eea37b.png 0bc933cdbab13b6fc5235171ff590b60.png f7944c725ad06837a56b4740e2225e62.png

关于显示,首先要建立坐标概念

f79400338c52443019d176ef25ec85ba.png

这种型号的OLED 显示屏就是一个128(width)X64(height)点阵。在坐标系中,左上角是原点,X轴水平向右数值增加,Y轴竖直向下数值增大。

7952d1e5784e8b5a7a1944b006b6c8fd.png 11c2e24b4274959596685a44d07d233d.png abcadff65575700f435847831909d15f.png

文字的显示

1.单文字显示

文字的显示需要运用取模软件取模,这里用的是zimoV2.2

3cea3a05dc5e5fedfd6ef5c0f49d6c9b.png

打开软件

f475889242061297122c60719ea81800.png

以文字“一”为例

12931a4d31ce9d7c029f504ca28a2ed9.png

新建一个16*16的像素块
在文字区输入 汉字“一”, Ctrl+回车生成文字,
在取模方式项选择C51格式生成代码

0c44822fbe86aa3f1c6df0ede90f994c.png

复制代码代码添加到下面程序中

ebda168387c61e2655dfa27632608f60.png 0d5bcd216d40f0ce7c4a4b72dfcb92fb.png

其中display.drawBitmap(16,16,Strong_16x16,16,16,WHITE);
括号里面存放的依次是 起点坐标(16,16),Strong_16x16,显示区域大小(16 * 16)

2840384023dfbdbe5fc154bfca16c160.png

起点为(0,0)

9d471af7d3c7bc93d4d91e405f3fd4e6.png

起点为(16,16)

a5632a3e5745bced7efb732b29455e87.png

显示区域为(32,16)

e41b3b7f397e90b4875530b77a12b960.png

显示区域为(128,64),实际为一堆乱码
关于其他文字显示出错的问题,原因是取模软件取模不正确需要在参数设置里面修改

ae6ff0dbb320f44845664d022dccc466.png

观察显示的文字大小是否为16*16,如果不是,选择‘文字输入区字体选择’更改字体

a05d332ecc443c55c69ad4f6c8ab2074.png 749e7d8a3fe7a222e2b454efbda2d720.png

如果还有问题点击 其它选项更改取模方式

这样基本上就能解决显示出错的问题。

2.多字显示
多字显示跟单字显示类似,用取模软件分别提取出文字的代码

08afe14c8b2763ae0d2c4dbeb0c16e92.png e2397f0c052f163abb991e4552103d6e.png 685455dcc006684e307f6077d45e706a.png 418ddbca46e4504395e7975a4c03a1eb.png

显示效果

26a445fce847a96ba6add984788fac06.png

图片的显示

图片的显示与文字显示基本相同,具体步骤如下:

选择显示的图片

将图片的大小和格式更改为128*64,单色

dedf10d6cba4ccea937c9f1f10c04c23.png dc4e225f81c85d95420266681fc462ce.png

打开取模软件,选择
打开图片,然后生成代码

1dde9917dd40bfa295c7d6dc51f5018c.png

复制代码移植到程序中

29662c8605a076ec4d984745dc302a9d.png cd5021f86d0a95a29c7103bdaff60ea7.png f8b79004fa14ea7beffc4f7ce246e3ea.png 3778a8d1a4cb55b3e0923258e2dcec2e.png 854a239f302c8a0c51bec44d12422f9e.png f34ec30e5548cb8823390cf84dd4c897.png

效果图

c2fcd305cb1bcdacd69f0727c415700d.png

OLED 显示串口信息

OLED 实时读取串口信息,可应用于诸多适用场合,方便人们在第一时间识别和处理一些信息
(需要串口助手)

0280750fb0c4c103c7a803a718c1f817.png 30d6201b169e6f735e562b9bf1233e95.png 66216cd670e236db73a77beb57f98d88.png

效果图

b75a01680e3639a8cce876c34346fd46.png 369c674cfe13fb06dd2eefab4ad2fa9d.png

本文转自网络(转载自科技爱好者博客),版权归原作者,如果您觉得不好,请联系我们删除!

95dca3f5195421056c9323c81b8d5f23.png

有一种令人向往的

梦想,

激发内心深处的

渴望。

电子艺术

微信公众号:processing与arduino

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值