用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" ## ...
随机推荐
- 关于表达式&& 和 || 有多项的时候的取值
&& 表达式只有两项的时候,如果表达式为false, 返回为false 的那一个 ,为true的时候 返回最后一个值 || 只有两项的时候,返回为true 的那一个;都为fal ...
- ubuntu修复找不到sudo命令
1.首先,您需要安装该sudo命令.你可以使用 apt 包管理器来做到这一点.您需要以有权安装软件包的用户身份运行此命令,例如root: apt-get install sudo 2.下一步是为您自己 ...
- Java学习day35(《大道至简》读后感)
对于大一之前的我来说,并不明白计算机这个专业要做的是什么,在我的眼中敲敲键盘打打字就是这个专业的全部:对于现在的我而言,这样的想法显然是十分幼稚的. 当初高考完填报志愿时选择了这门专业,也并不是因为自 ...
- node.js - mysql
今天结束的挺早,因为今天的内容还可以不是很难,今天全程是学了一些关于mysql数据库和sql查询语句的内容包括在node终端里面怎么来连接数据库.经过今天的一个学习,我感觉离那个地步越来越近了,就是那 ...
- 6.2 计划任务crond
创建.编辑计划任务的命令为crontab -e,查看当前计划任务的命令为crontab -l,删除某条计划任务的命令为crontab -r. 参数 作用 -e 编辑计划任务 -u 指定用户名称 -l ...
- MySQL事务基本使用
目录 1 事务概述 1.1 事务的支持情况 1.2 事务的特性 1.3 事务的状态 2 使用事务 2.1 显示事务 2.2 隐藏事务 3 事务隔离等级 3.1 数据并发问题 3.2 事务隔离等级介绍 ...
- 1.8 常见Linux发行版本有哪些?
新手往往会被 Linux 众多的发行版本搞得一头雾水,我们首先来解释一下这个问题. 从技术上来说,李纳斯•托瓦兹开发的 Linux 只是一个内核.内核指的是一个提供设备驱动.文件系统.进程管理.网络通 ...
- Django学习——图书管理系统图书修改、orm常用和非常用字段(了解)、 orm字段参数(了解)、字段关系(了解)、手动创建第三张表、Meta元信息、原生SQL、Django与ajax(入门)
1 图书管理系统图书修改 1.1 views 修改图书获取id的两种方案 1 <input type="hidden" name="id" value=& ...
- 『现学现忘』Git基础 — 22、Git中文件重命名
目录 1.用学过的命令进行文件重命名 2.使用git mv命令进行文件重命名 我们这篇文章来说说在Git中如何进行文件重命名. 提示一下,下面所说明的是对已经被Git管理的文件进行重命名,未被Git追 ...
- js运算符、 流程控制 、函数、内置对象、BOM与DOM操作
运算符 # 1.算术运算符 var x=10; var res1=x++; '先赋值后自增1' var res2=++x; '先自增1后赋值' # 2.比较运算符 弱等于:自动转换类型 '5' == ...