Arduino提高篇04—U8g2库驱动OLED
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相关推荐
- arduino使用oled代码_Arduino提高篇04—U8g2库驱动OLED
OLED显示屏的驱动库非常多,本篇介绍强大的U8g2库,通过使用U8g2库来驱动OLED屏. 1. U8g2库介绍 U8g2库是嵌入式设备单色图形库,支持非常多的嵌入式设备平台,如单片机,STM32, ...
- arduino上ESP8266用Adafruit_SSD1306库驱动OLED屏
关注.星标公众号,不错过精彩内容 编辑:Tony 来源:公众号TonyCode 在进行后续的ESP8266学习前,我们先来对OLED屏进行驱动,为后续学习提供直观的信息显示. 1. 安装驱动库 在之前 ...
- 基于Lua框架下Air103使用U8g2库驱动I2C OLED图像显示
基于Lua框架下Air103使用U8g2库驱动I2C OLED屏幕图像演示
- Arduino提高篇24—摇杆调节时钟时间
对于电子时钟而言,虽然我们可以在程序中对RTC芯片写入初始时间数据,但按键调时功能也是必不可少的,它可以让我们更加灵活的进行时间调节校准.本篇我们使用摇杆按键来调节时间数据,采用多级菜单的思路进行设计 ...
- Arduino 提高篇 1 —— 电子时钟
一.实验器材 Arduino Uno R3开发板及扩展板 公对母.母对母杜邦线若干 面包板 0.96英寸 OLED显示屏 DS1302模块 二.实验步骤 Arduino DS1302 3.3V VCC ...
- Arduino框架下通过TFT_eSPI库驱动ESP32+合宙1.54“ 电子墨水屏(e-paper)显示
Arduino框架下通过TFT_eSPI库驱动ESP32+合宙1.54" 电子墨水屏(e-paper)显示 demo演示效果 相关库 EPD_Libraries:https://github ...
- Arduino提高篇02—OLED屏汉字显示
上篇中我们已经使用驱动库在OLED屏上显示出英文字符,除去数字.字母.符号等,OLED还能显示汉字.图片及任意图形.本篇介绍取模软件的使用,教大家如何在OLED屏上显示汉字. 1. 字模显示原理及取模 ...
- Arduino提高篇23—OLED电子时钟
在前篇文章中,我们通过库函数驱动DS1302获取到时间数据并且通过串口输出,而串口只是方便调试,要制作电子时钟,我们需要使用显示模块,本篇结合OLED对时间数据进行展示. 1. 实验材料 Uno R3 ...
- 【arduino】【u8g2库】OLED屏-U8glib库 增强版 U8G2库
转载请注明: 冬菇不败 及出处 :http://www.arduino.cn/thread-41193-1-1.html 以下的函数描述是源自原文: https://github.com/oli ...
最新文章
- HarmonyOS 设置图标在Text 旁边
- javascript进阶教程第一章案例实战
- 第十六届全国大学生智能车竞赛竞速组-室内视觉组补充说明
- 基本概念—监督与非监督
- 学习理发去哪里_学习美发去哪里学
- VC在windows下编写用于串行通讯的程序
- 字体乱码的时候,可以使用英文下的写法
- C/C++头文件全解析
- 中英文对照 —— 标点符号(punctuation)
- sp3 win xp 符号表_Windows XP with SP3 各版本全搞定(附序列号)
- 各种常用的 Win32Api 汇总(持续更新中. . .)
- fan4801开关电源原理图_六款简单的开关电源电路设计,内附原理图详解
- dnf服务器老是连接中断,《dnf》老是网络连接中断怎么办 网络总是中断解决办法...
- 预约洗车/美容/维修/家政/保养/上门洗车预约小程序源码及管理系统
- 冉宝的每日一题--8月6日、8月7日--今天想学会拓扑排序
- ALPS语言学校(西雅图)|ALPS Language School (Seattle)
- 心理正常与异常的区分_判断心理正常异常三原则
- 5.Java SE 多线程
- java 防火墙_java如何穿越防火墙
- codevs[3145]汉诺塔游戏
热门文章
- 【HIN】异质信息网络分析与应用综述
- Python3,掌握这20个小技巧,小菜鸡瞬间变成老码农~
- css中字体大小font-size的设置
- xmind8使用甘特图与导出甘特图PDF
- 位操作符左移问题(<<)如果char类型左移后位数超出一字节如何打印?
- Daily record-October
- UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initial
- 解决异常 Data truncation: Incorrect datetime value: '' for column 'ordertime'
- 请问如何修复损坏的jpg文件
- Vuex是什么?如何理解和应用?