使用U8glib驱动12864图形液晶显示器(一)-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 43875|回复: 11

使用U8glib驱动12864图形液晶显示器(一)

[复制链接]
发表于 2016-3-19 10:02 | 显示全部楼层 |阅读模式
摘自《Arduino程序设计基础(第二版)》,转载请注明出处

除了 1602 LCD外,Arduino还支持众多的显示器,如果你觉得字符型液晶显示器不能满足你的项目需求,那可以选择图形液晶显示器。这里我们将使用到支持众多图形点阵显示器的类库——u8glib。它是目前Arduino平台上最好的图形显示库,支持多种图形显示器。
你可以在以下网址下载到u8glib图形显示类库:
https://github.com/olikraus/U8glib_Arduino/releases/latest
http://clz.me/u8glib/
将类库存放到Arduino IDE下的libraries文件夹中,便可正常使用。
由于u8glib成员函数较多,我们便不一一介绍,你可以在以下网址查看到其成员函数介绍:
https://github.com/olikraus/u8glib/wiki

http://clz.me/u8glib/


8.3.1        使用MINI 12864显示屏
完成本节的学习,你需要先有一块图形液晶显示器。12864 LCD是最常见的液晶显示器,因其分辨率为128×64像素而得名。使用12864 LCD你可以显示图形、汉字,甚至更高级的动画。

·MINI 12864
OpenJumper MINI12864(图8-14)是一块小巧的SPI接口的图形液晶显示器,相较于并行接口的显示器,它使用更为方便,占用引脚资源更少。本节中大部分内容使用该模块作教学演示。

mini12864.jpg


·OpenJumper MINI 12864引脚参数与连接方法
MINI 12864的引脚配置如表8-5所示:

表8-5MINI12864引脚
  
引脚
  
说明
A0
数据\指令选择引脚
RST
复位引脚
CS
设备选择应缴
SCK
时钟引脚
MOSI
数据输入引脚
GND
VCC
电源引脚 3.3V-5V供电
LED
背光引脚,低电平亮



MINI 12864是一款SPI串行接口的LCD,我们可以将它与Arduino上的硬件SPI相连,也可以使用任意引脚模拟SPI接口控制LCD。两种连接方法对应了两个构造函数:

        硬件SPI驱动构造函数:
[mw_shl_code=cpp,true]U8GLIB_MINI12864(cs, a0 , reset)[/mw_shl_code]
使用硬件SPI时,通信速度较快。LCD的sck和mosi引脚应对应连接到Arduino SPI接口的sck、mosi引脚。cs、a0、reset等其他引脚用户可以随意指定。

        模拟SPI驱动构造函数:
[mw_shl_code=cpp,true]U8GLIB_MINI12864(sck, mosi, cs, a0 , reset)[/mw_shl_code]
使用模拟SPI时,通信速度较慢,但LCD的所有引脚可以连接到Arduino任意引脚。

为了获得更好的显示效果,此后的示例中我们均使用Arduino硬件SPI连接LCD,在Arduino UNO上连接引脚对应情况如表8-6所示:

表8- 6MINI12864与Arduino连接
  
MINI 12864
  
Arduino UNO
A0
D9
RST
D8
CS
D10
SCK
D13
MOSI
D11
GND
GND
VCC
5V
LED
GND



连接好LCD与Arduino后,我们需要在程序中包含U8glib.h头文件,并建立一个lcd对象,相关语句如下:

[mw_shl_code=cpp,true]#include "U8glib.h"
U8GLIB_MINI12864 u8g(10, 9, 8); [/mw_shl_code]
这样我们便成功建立了一个名为u8g,代表MINI 12864的对象。


8.3.2        使用其他图形液晶显示器
如果使用的是其他LCD模块,你应该先确定其使用的控制芯片型号,然后在u8glib项目的设备支持页(https://github.com/olikraus/u8glib/wiki/devicehttp://clz.me/u8glib/device/
),找到你使用的设备对应的类及其构造函数,并使用它新建一个LCD操作对象。

继续阅读:使用U8glib驱动12864图形液晶显示器(二)

摘自《Arduino程序设计基础(第二版)》,转载请注明出处


发表于 2016-9-21 21:47 | 显示全部楼层
你好,我在使用u8glib来控制oled显示时怎么实现清屏呀,目前需要用到多个显示页面,但是在调用不同页面显示内容时发现上一页的内容没有被清除掉,谢谢,能否告知怎么实现多页页面切换呀?
发表于 2016-9-21 21:49 | 显示全部楼层
能否告知在使用u8glib来控制oled显示时怎么实现清屏呀,目前需要用到多个显示页面,但是在调用不同页面显示内容时发现上一页的内容没有被清除掉
谢谢
发表于 2017-3-8 17:13 | 显示全部楼层
不能使用arduino nano吗?

点评

可以啊,都一样的  详情 回复 发表于 2017-3-8 23:08
 楼主| 发表于 2017-3-8 23:08 | 显示全部楼层
Byron20 发表于 2017-3-8 17:13
不能使用arduino nano吗?

可以啊,都一样的
发表于 2017-3-16 21:31 | 显示全部楼层
arduino和 lcd12864怎么连接?

点评

看你设备是啥接口,SPI的设备就接到arduino spi,iic的设备就接到iic  详情 回复 发表于 2017-3-17 09:16
 楼主| 发表于 2017-3-17 09:16 | 显示全部楼层
孔凡铭 发表于 2017-3-16 21:31
arduino和 lcd12864怎么连接?

看你设备是啥接口,SPI的设备就接到arduino spi,iic的设备就接到iic
发表于 2017-9-17 13:16 | 显示全部楼层
lcd12864可以用吗 楼主 看了一下mini12864的引脚说明好像和LCD12864的引脚不太一样

点评

一般都可以,要根据你的模组芯片选择对应的构造函数  详情 回复 发表于 2017-9-17 21:21
 楼主| 发表于 2017-9-17 21:21 | 显示全部楼层
yf530030302 发表于 2017-9-17 13:16
lcd12864可以用吗 楼主 看了一下mini12864的引脚说明好像和LCD12864的引脚不太一样 ...

一般都可以,要根据你的模组芯片选择对应的构造函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 11:35 , Processed in 0.150324 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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