OLED显示屏的驱动库非常多,本篇介绍强大的U8g2库,通过使用U8g2库来驱动OLED屏。

1. U8g2库介绍

U8g2库是嵌入式设备单色图形库,支持非常多的嵌入式设备平台,如单片机、STM32、Arduino等,支持大部分主流的单色OLED和LCD显示控制器,如我们常见的SSD1306。其包括了多种图形的绘制,支持多种字体。

官方提供了一些U8g2库测试图:

2. 安装U8g2库

在Arduino IDE中点击「项目」—「加载库」—「管理库」,查找选择最新版本进行安装。

3. 实验材料

  • Uno R3开发板
  • 配套USB数据线
  • 面包板及配套连接线
  • OLED显示屏

4. 实验步骤

1. 根据原理图搭建电路图。

电路连接与前几篇相同,使用IIC接口两线驱动OLED屏。OLED屏的VCC和GND分别连接开发板的3.3V和GND,OLED屏的SDA和SCL分别连接开发板A4和A5。

实验原理图如下图所示:

实物连接图如下图所示:

2. 在Arduino IDE中,点击「文件」—「示例」—「U8g2」,会看到官方库提供了很多的示例程序,我们只需要确定自己屏幕使用的驱动方式和显示控制器,对应打开屏蔽的构造函数。

#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);

3. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>//iic驱动方式
U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);   void setup(void) {u8g2.begin();
}uint8_t m = 24;void loop(void) {char m_str[3];strcpy(m_str, u8x8_u8toa(m, 2));    /* convert m to a string with two digits */u8g2.firstPage();do {u8g2.setFont(u8g2_font_logisoso62_tn);u8g2.drawStr(0,63,"9");u8g2.drawStr(33,63,":");u8g2.drawStr(50,63,m_str);} while ( u8g2.nextPage() );delay(1000);m++;if ( m == 60 )m = 0;
}

4. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

5. 实验现象

本例程使用的是U8g2的page_buffer中的Clock示例,可以看到时间刷新显示。

6. 相关函数介绍

U8g2库提供的API函数有很多,这里简单介绍几个比较常用的,更多的介绍可以参考官方手册。

  • u8g2.begin():U8g2构造函数。
  • u8g2.clean():清除屏幕显示,清除缓冲区,光标回到原点位置。
  • u8g2.setFont():设置字体。
  • u8g2.drawStr():绘制字符串。
  • u8g2.firstPage()/nextPage():循环刷新显示。

关注微信公众号:TonyCode
Arduino学习交流群:868283450

更多内容,欢迎关注我的公众号。 微信扫一扫下方二维码即可关注:

Arduino提高篇04—U8g2库驱动OLED相关推荐

  1. arduino使用oled代码_Arduino提高篇04—U8g2库驱动OLED

    OLED显示屏的驱动库非常多,本篇介绍强大的U8g2库,通过使用U8g2库来驱动OLED屏. 1. U8g2库介绍 U8g2库是嵌入式设备单色图形库,支持非常多的嵌入式设备平台,如单片机,STM32, ...

  2. arduino上ESP8266用Adafruit_SSD1306库驱动OLED屏

    关注.星标公众号,不错过精彩内容 编辑:Tony 来源:公众号TonyCode 在进行后续的ESP8266学习前,我们先来对OLED屏进行驱动,为后续学习提供直观的信息显示. 1. 安装驱动库 在之前 ...

  3. 基于Lua框架下Air103使用U8g2库驱动I2C OLED图像显示

    基于Lua框架下Air103使用U8g2库驱动I2C OLED屏幕图像演示

  4. Arduino提高篇24—摇杆调节时钟时间

    对于电子时钟而言,虽然我们可以在程序中对RTC芯片写入初始时间数据,但按键调时功能也是必不可少的,它可以让我们更加灵活的进行时间调节校准.本篇我们使用摇杆按键来调节时间数据,采用多级菜单的思路进行设计 ...

  5. Arduino 提高篇 1 —— 电子时钟

    一.实验器材 Arduino Uno R3开发板及扩展板 公对母.母对母杜邦线若干 面包板 0.96英寸 OLED显示屏 DS1302模块 二.实验步骤 Arduino DS1302 3.3V VCC ...

  6. Arduino框架下通过TFT_eSPI库驱动ESP32+合宙1.54“ 电子墨水屏(e-paper)显示

    Arduino框架下通过TFT_eSPI库驱动ESP32+合宙1.54" 电子墨水屏(e-paper)显示 demo演示效果 相关库 EPD_Libraries:https://github ...

  7. Arduino提高篇02—OLED屏汉字显示

    上篇中我们已经使用驱动库在OLED屏上显示出英文字符,除去数字.字母.符号等,OLED还能显示汉字.图片及任意图形.本篇介绍取模软件的使用,教大家如何在OLED屏上显示汉字. 1. 字模显示原理及取模 ...

  8. Arduino提高篇23—OLED电子时钟

    在前篇文章中,我们通过库函数驱动DS1302获取到时间数据并且通过串口输出,而串口只是方便调试,要制作电子时钟,我们需要使用显示模块,本篇结合OLED对时间数据进行展示. 1. 实验材料 Uno R3 ...

  9. 【arduino】【u8g2库】OLED屏-U8glib库 增强版 U8G2库

    转载请注明:  冬菇不败   及出处 :http://www.arduino.cn/thread-41193-1-1.html 以下的函数描述是源自原文: https://github.com/oli ...

最新文章

  1. HarmonyOS 设置图标在Text 旁边
  2. javascript进阶教程第一章案例实战
  3. 第十六届全国大学生智能车竞赛竞速组-室内视觉组补充说明
  4. 基本概念—监督与非监督
  5. 学习理发去哪里_学习美发去哪里学
  6. VC在windows下编写用于串行通讯的程序
  7. 字体乱码的时候,可以使用英文下的写法
  8. C/C++头文件全解析
  9. 中英文对照 —— 标点符号(punctuation)
  10. sp3 win xp 符号表_Windows XP with SP3 各版本全搞定(附序列号)
  11. 各种常用的 Win32Api 汇总(持续更新中. . .)
  12. fan4801开关电源原理图_六款简单的开关电源电路设计,内附原理图详解
  13. dnf服务器老是连接中断,《dnf》老是网络连接中断怎么办 网络总是中断解决办法...
  14. 预约洗车/美容/维修/家政/保养/上门洗车预约小程序源码及管理系统
  15. 冉宝的每日一题--8月6日、8月7日--今天想学会拓扑排序
  16. ALPS语言学校(西雅图)|ALPS Language School (Seattle)
  17. 心理正常与异常的区分_判断心理正常异常三原则
  18. 5.Java SE 多线程
  19. java 防火墙_java如何穿越防火墙
  20. codevs[3145]汉诺塔游戏

热门文章

  1. 【HIN】异质信息网络分析与应用综述
  2. Python3,掌握这20个小技巧,小菜鸡瞬间变成老码农~
  3. css中字体大小font-size的设置
  4. xmind8使用甘特图与导出甘特图PDF
  5. 位操作符左移问题(<<)如果char类型左移后位数超出一字节如何打印?
  6. Daily record-October
  7. UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initial
  8. 解决异常 Data truncation: Incorrect datetime value: '' for column 'ordertime'
  9. 请问如何修复损坏的jpg文件
  10. Vuex是什么?如何理解和应用?