用Arduino显示颜色序列(u8g2,OLED)
用Arduino显示颜色序列(u8g2,OLED)
提前祝大家新年快乐!
主控:Arduino Mega 2560
硬件:126×64 OLED屏幕
IDE:Arduino官方IDE
u8g2库是Arduino常用于驱动OLED屏幕的好库,里面有非常多好用的函数,而且可以匹配不同驱动,不同分辨率的OLED屏幕,网上也有很多人对其进行了详尽的介绍,我这里就不再赘述,有需要的可以通过传送门学习一下u8g2库的函数:传送门(深入学习Arduino u8g2 OLED库,一篇就够)
如果没有u8g2库的可以去Github上去下载,地址:(https://github.com/olikraus/u8g2)
或者用蓝奏云(我网上找的,不知道哪个版本):传送门(蓝奏云)
今天测试的是网上买的一个普通OLED屏幕

显示颜色序列采用的是类似“123+231”的形式,要将其显示在屏幕上,且对字高有一定需求

因此我使用了PCtoLCD2002软件,还是取字模->打印图的操作
PCtoLCD2002下载地址:传送门(蓝奏云)
代码也很简单,直接放上来
Test_OLED.ino
#include <U8g2lib.h>
#include <Wire.h>
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
String str = "123+321";
void setup() {
// put your setup code here, to run once:
OLED_Init();
}
void loop() {
// put your main code here, to run repeatedly:
OLED_Display(str);
while (1);
}
OLED.ino
char ScanNum_One[] =
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x3C, 0x00, 0x00,
0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x80, 0x3F,
0x00, 0x80, 0x3F, 0x00, 0xC0, 0x3F, 0x00, 0xE0, 0x3F, 0x00, 0xE0, 0x3F, 0x00, 0xF0, 0x3F, 0x00,
0xF8, 0x3F, 0x00, 0xF8, 0x3F, 0x00, 0xF8, 0x3F, 0x00, 0xF8, 0x3E, 0x00, 0xF8, 0x3E, 0x00, 0x78,
0x3E, 0x00, 0x78, 0x3E, 0x00, 0x38, 0x3E, 0x00, 0x18, 0x3E, 0x00, 0x18, 0x3E, 0x00, 0x08, 0x3E,
0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00,
0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00,
0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E,
0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00,
0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00,
0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
};
char ScanNum_Two[] =
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0xC0, 0x3F, 0x00, 0xE0, 0x7F, 0x00, 0xE0,
0xFF, 0x00, 0xF0, 0xFF, 0x00, 0xF0, 0xFF, 0x00, 0xF8, 0xFF, 0x01, 0xF8, 0xFF, 0x01, 0xF8, 0xFF,
0x01, 0xF8, 0xF9, 0x03, 0xF8, 0xF0, 0x03, 0xFC, 0xF0, 0x03, 0x7C, 0xE0, 0x03, 0x7C, 0xE0, 0x03,
0x7C, 0xE0, 0x03, 0x7C, 0xE0, 0x03, 0x70, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00,
0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xF0, 0x01, 0x00, 0xF0, 0x01, 0x00, 0xF0, 0x01, 0x00, 0xF8,
0x01, 0x00, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x7E, 0x00,
0x00, 0x7E, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x80, 0x1F, 0x00, 0x80, 0x1F, 0x00, 0xC0,
0x0F, 0x00, 0xC0, 0x07, 0x00, 0xE0, 0x07, 0x00, 0xE0, 0x03, 0x00, 0xF0, 0x03, 0x00, 0xF0, 0x01,
0x00, 0xF0, 0x01, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0xFC, 0xFF, 0x03,
0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFC, 0xFF, 0x03, 0xFE, 0xFF, 0x03, 0xFE,
0xFF, 0x03, 0xFE, 0xFF, 0x03, 0xFE, 0xFF, 0x03, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
};
char ScanNum_Three[] =
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0xC0, 0x1F, 0x00, 0xE0, 0x3F, 0x00, 0xE0,
0x7F, 0x00, 0xF0, 0x7F, 0x00, 0xF0, 0x7F, 0x00, 0xF8, 0xFF, 0x00, 0xF8, 0xFF, 0x00, 0xF8, 0xFF,
0x00, 0xF8, 0xF9, 0x01, 0xFC, 0xF8, 0x01, 0xFC, 0xF0, 0x01, 0x7C, 0xF0, 0x01, 0x7C, 0xF0, 0x01,
0x7C, 0xF0, 0x01, 0x60, 0xF0, 0x01, 0x00, 0xF0, 0x01, 0x00, 0xF0, 0x01, 0x00, 0xF0, 0x01, 0x00,
0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F,
0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xF8, 0x01, 0x00, 0xF0, 0x01, 0x00, 0xF0, 0x01, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00,
0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x00, 0xE0, 0x03, 0x30, 0xE0, 0x03, 0x3E, 0xE0,
0x03, 0x3E, 0xE0, 0x03, 0x3E, 0xE0, 0x03, 0x7E, 0xF0, 0x03, 0x7E, 0xF0, 0x03, 0x7C, 0xF0, 0x01,
0xFC, 0xF8, 0x01, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0xF8, 0xFF, 0x00, 0xF8, 0xFF, 0x00, 0xF0,
0x7F, 0x00, 0xF0, 0x7F, 0x00, 0xE0, 0x3F, 0x00, 0xC0, 0x1F, 0x00, 0x80, 0x0F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
};
char ScanNum_jia[] =
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00,
0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00,
0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0xFE, 0xFF, 0x03, 0xFE, 0xFF,
0x03, 0xFE, 0xFF, 0x03, 0xFE, 0xFF, 0x03, 0xFE, 0xFF, 0x03, 0xFE, 0xFF, 0x03, 0xFE, 0xFF, 0x03,
0xFE, 0xFF, 0x03, 0xFE, 0xFF, 0x03, 0xFE, 0xFF, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00,
0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F,
0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00,
0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
};
void OLED_Init()
{
u8g2.begin();
u8g2.enableUTF8Print();
u8g2.setFont(u8g2_font_logisoso58_tn);//不设置也没事
u8g2.setFontDirection(0);
u8g2.clearBuffer();
}
void OLED_Display(String temp)
{
u8g2.clearBuffer();
for (int i = 0; i < 7; ++i)
{
char str = temp.charAt(i);
switch (str)
{
case '1': u8g2.drawXBM(18 * i, 0, 18, 60, ScanNum_One); break;
case '2': u8g2.drawXBM(18 * i, 0, 18, 60, ScanNum_Two); break;
case '3': u8g2.drawXBM(18 * i, 0, 18, 60, ScanNum_Three); break;
case '+': u8g2.drawXBM(18 * i, 0, 18, 60, ScanNum_jia); break;
default: break;
}
}
u8g2.sendBuffer();
}
手边没有Arduino板,演示不了.....有时间我再上传图
测试很成功~
用Arduino显示颜色序列(u8g2,OLED)的更多相关文章
- 玩转u8g2 OLED库 MAX7219_32X8点阵模块
u8g2 OLED库 + MAX7219_32X8点阵模块 理论基础 玩转u8g2 OLED库,一篇就够 玩转u8g2 OLED库,一篇就够(字数太多 要分篇) 实验内容 Full screen bu ...
- 玩转u8g2 OLED库,一篇就够(分篇)
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- Ubuntu终端命令行不显示颜色
在网上找到的一个有效方案是在.bash_profile 中增加颜色定义 export LS_COLORS='di=01;35:ln=01;36:pi=40;33:so=01;35:do=01;35:b ...
- vim 显示颜色脚本
vim 显示颜色脚本 echo TERM=xterm >>/root/.bash_profile echo export TERM >>/root/.bash_profile ...
- Python:print显示颜色
显示颜色格式:\033[显示方式;字体色;背景色m......[\033[0m] ------------------------------------------- --------------- ...
- cojs 疯狂的魔法树 疯狂的颜色序列 题解报告
疯狂的魔法树 一个各种操作大杂烩的鬼畜数据结构题目 首先我们注意到树的形态是半随机的 我们可以树分块,对树分成若干个块 对于每个块我们维护一个add标记表示增量 维护一个vis标记表示覆盖量 注意标记 ...
- 为archlinux终端ls不同类型文件设置不同显示颜色
title: 为archlinux终端ls不同类型文件设置不同显示颜色 date: 2017-11-13 20:53:55 tags: linux categories: linux archlinu ...
- 设置UniDbGrid的整行显示颜色,如果某字段值是我们的控制字段
设置UniDbGrid的整行显示颜色,如果某字段值是我们的控制字段,使用下列判断设置更快捷一点: procedure TUniForm.UniDBGridDrawColumnCell(Sender: ...
- echo 内容显示颜色
一,字体显示颜色 #字体颜色:30m-37m 黑.红.绿.黄.蓝.紫.青.白str=”要显示的字体“echo -e "\033[30m ${str}\033[0m" ## ...
随机推荐
- Bitmap图片的处理
一.View转换为Bitmap 在Android中所有的控件都是View的直接子类或者间接子类,通过它们可以组成丰富的UI界面.在窗口显示的时候Android会把这些控件都加载到内存中,形成一个以 ...
- EMS查看单个邮箱的已用空间
Exchange查询单个邮箱用户使用状态. 查看用户"wsj"的邮箱使用状态 键入以下命令: Get-MailboxStatistics wsj | FL DiplayName,T ...
- 利用css3渐变效果实现圆环旋转效果
* { margin: 0; padding: 0; } .stage { width: 200px; height: 130px; margin: 100px auto; position: rel ...
- AcWing 1050. 鸣人的影分身
题目链接 题目描述: 在火影忍者的世界里,令敌人捉摸不透是非常关键的. 我们的主角漩涡鸣人所拥有的一个招数--多重影分身之术--就是一个很好的例子. 影分身是由鸣人身体的查克拉能量制造的,使用的查克拉 ...
- Kafka 使用-安装
Kafka 使用-安装 官方网站 http://kafka.apache.org/ 官方文档 Kafka 是什么? Apache Kafka is an open-source distributed ...
- Zabbix-Proxy 部署和运行
Zabbix-Proxy 部署&运行 前提 版本: zabbix-server 5.4 任务: 通过SNMP监控网络设备,需要需通过zabbix-proxy 发送到zabbix-server. ...
- ArrayList扩容问题
今天上午上课在看JavaSE的面经,其中有问关于ArrayList和LinkedList的区别,就突然思考到,既然ArrayList是采用数组形式存储数据,对比我们自己使用到的数组,为什么ArrayL ...
- Java学习day21
今天学习了弹窗,除了此前学的按键以外,弹窗也是程序中广泛使用到的一个方面 做了一个简单的弹窗 除了按键以外,有时候我们需要在界面上显示更多的内容,甚至是图片等,这个时候就需要使用到标签 通过标签和Ic ...
- grpc流模式-go实现
目录 1. 什么是数据流 2. grpc的四种数据流 2.1 简单模式 2.2 服务端数据流模式 2.3 客户端数据流模式 2.4 双向数据流 3. 上代码 3.1 代码目录 3.2 编写stream ...
- 2022.02.27 CF811E Vladik and Entertaining Flags(线段树+并查集)
2022.02.27 CF811E Vladik and Entertaining Flags(线段树+并查集) https://www.luogu.com.cn/problem/CF811E Ste ...