Arduino SSD1306 OLED 显示器 U8g2库

导读:    

    想起来做本章内容的原因: 一开始在使用U8glib库时,去了GitHub平台上查阅该作者的相关文档说明,作者意思是U8glib不再更新,并且建议大家使用U8g2库(当前GitHub热度最高). 按照作者描述,U8g2更为丰富和强大,而对于开发板内存紧缺的朋友,也集成了U8x8,内存占用低,很是简洁小巧. 

    另外的原因是, U8glib对中文不是很友好 , 而后更新的U8g2,定义了常见的多个中文字库. 对于我们使用者来讲,不必去每个字取模,设置每个字的大小,位置等, 开发效率自然可以提升. 所以在这里呢,笔者建议大家学习并使用U8g2库 .

参考自:  GitHub:u8g2   <<<点击进入 

部分内容翻译:

U8g2是嵌入式设备的单色图形库。

  • 支持的显示控制器:SSD1305,SSD1306,SSD1309,SSD1322,SSD1325,SSD1327,SSD1329,SSD1606,SSD1607,SH1106,SH1107,SH1108,SH1122,T6963,RA8835,LC7981,PCD8544,PCF8812,HX1230,UC1601,UC1604,UC1608,UC1610, UC1611,UC1701,ST7565,ST7567,ST7588,ST75256,NT7534,IST3020,ST7920,LD7032,KS0108,SED1520,SBN1661,IL3820,MAX7219
  • Arduino库U8g2可以从Arduino IDE的库管理器安装。

U8g2还包括U8x8库。U8g2和U8x8的功能包括:

  • U8g2
    • 包括所有图形程序(线/框/圆绘)。
    • 支持许多字体。(几乎)对字体高度没有限制。
    • 微控制器需要一些内存来渲染显示。
  • U8x8
    • 仅文本输出(字符)设备。
    • 只允许每个字符固定大小的字体(8x8像素)。
    • 直接写入显示。微控制器中无需缓冲。

还有一个类/子库“U8log”,它模拟输出终端(如Arduino串行监视器)

 

案例展示:   

  Arduino SSD1306 OLED 显示器 U8g2库_第1张图片

硬件清单:

  • Arduino UNO 开发板
  • SSD1306 OLED 显示器模块 (4个引脚,分别为: VCC GND SCL SDA)
  • 杜邦线
  • psOLED的分辨率为黑白128*64

软件准备:

  • 下载导入U8g2lib库(可在Arduino IDE中加载并安装此库文件,具体流程不再赘述)

代码如下:

#include 

U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,SCL,SDA); //配置构造函数
 
void setup() {
  u8g2.begin(); //启动u8g2驱动程序 / 可按需更改u8x8驱动程序
}
 
void loop() {
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_unifont_t_chinese1);
    u8g2.drawUTF8(0,15,"你好,MDL机器人:");
  } while ( u8g2.nextPage() );
  delay(1000);
}




代码讲解:

配置构造函数

可按照需求更改配置函数

布局

描述

U8G2_R0

没有旋转,正常显示

U8G2_R1

顺时针旋转90度

U8G2_R2

顺时针旋转180度

U8G2_R3

顺时针旋转270度

U8G2_MIRROR

没有旋转,横向,显示内容被镜像

setFont() 字体配置,(设置中文字体)

u8g2.drawUTF8() 绘制编码为UTF-8的字符串

  • u8g2:指向u8g2结构的指针。
  • xy:显示屏上第一个字符的位置。
  • s:UTF-8编码的文本。

其他常用函数:

  • clearDisplay() 清除内部缓冲区和连接的显示屏上的所有像素
  • drawBitmap(u8g2_uint_t x, u8g2_uint_t y, u8g2_uint_t cnt, u8g2_uint_t h, const uint8_t *bitmap在指定的x / y位置(位图的左上角)绘制位图。
  1. u8g2:指向u8g2结构的指针(仅限C接口)。
  2. x:X位置(位图的左侧位置)。
  3. y:Y位置(位图的上部位置)。
  4. cnt:位图在水平方向上的字节数。位图的宽度是cnt*8
  5. h:位图的高度。
  • DrawStr() 绘制一个字符串。第一个字符被放置在位置xy。在显示屏上绘制字符串之前,使用setFont()指定字体。
  1. u8g2:指向u8g2结构的指针。
  2. xy:显示屏上第一个字符的位置。
  3. s:文字。

更多函数以及教程请参见原作者GitHub站点: GitHub:u8g2   <<<点击进入 

 

 

 

你可能感兴趣的:(Arduino模块)