用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)的更多相关文章

  1. 玩转u8g2 OLED库 MAX7219_32X8点阵模块

    u8g2 OLED库 + MAX7219_32X8点阵模块 理论基础 玩转u8g2 OLED库,一篇就够 玩转u8g2 OLED库,一篇就够(字数太多 要分篇) 实验内容 Full screen bu ...

  2. 玩转u8g2 OLED库,一篇就够(分篇)

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  3. Ubuntu终端命令行不显示颜色

    在网上找到的一个有效方案是在.bash_profile 中增加颜色定义 export LS_COLORS='di=01;35:ln=01;36:pi=40;33:so=01;35:do=01;35:b ...

  4. vim 显示颜色脚本

    vim 显示颜色脚本 echo TERM=xterm >>/root/.bash_profile echo export TERM >>/root/.bash_profile ...

  5. Python:print显示颜色

    显示颜色格式:\033[显示方式;字体色;背景色m......[\033[0m] ------------------------------------------- --------------- ...

  6. cojs 疯狂的魔法树 疯狂的颜色序列 题解报告

    疯狂的魔法树 一个各种操作大杂烩的鬼畜数据结构题目 首先我们注意到树的形态是半随机的 我们可以树分块,对树分成若干个块 对于每个块我们维护一个add标记表示增量 维护一个vis标记表示覆盖量 注意标记 ...

  7. 为archlinux终端ls不同类型文件设置不同显示颜色

    title: 为archlinux终端ls不同类型文件设置不同显示颜色 date: 2017-11-13 20:53:55 tags: linux categories: linux archlinu ...

  8. 设置UniDbGrid的整行显示颜色,如果某字段值是我们的控制字段

    设置UniDbGrid的整行显示颜色,如果某字段值是我们的控制字段,使用下列判断设置更快捷一点: procedure TUniForm.UniDBGridDrawColumnCell(Sender: ...

  9. echo 内容显示颜色

    一,字体显示颜色 #字体颜色:30m-37m 黑.红.绿.黄.蓝.紫.青.白str=”要显示的字体“echo -e "\033[30m ${str}\033[0m"      ## ...

随机推荐

  1. Bitmap图片的处理

      一.View转换为Bitmap 在Android中所有的控件都是View的直接子类或者间接子类,通过它们可以组成丰富的UI界面.在窗口显示的时候Android会把这些控件都加载到内存中,形成一个以 ...

  2. EMS查看单个邮箱的已用空间

    Exchange查询单个邮箱用户使用状态. 查看用户"wsj"的邮箱使用状态 键入以下命令: Get-MailboxStatistics wsj | FL DiplayName,T ...

  3. 利用css3渐变效果实现圆环旋转效果

    * { margin: 0; padding: 0; } .stage { width: 200px; height: 130px; margin: 100px auto; position: rel ...

  4. AcWing 1050. 鸣人的影分身

    题目链接 题目描述: 在火影忍者的世界里,令敌人捉摸不透是非常关键的. 我们的主角漩涡鸣人所拥有的一个招数--多重影分身之术--就是一个很好的例子. 影分身是由鸣人身体的查克拉能量制造的,使用的查克拉 ...

  5. Kafka 使用-安装

    Kafka 使用-安装 官方网站 http://kafka.apache.org/ 官方文档 Kafka 是什么? Apache Kafka is an open-source distributed ...

  6. Zabbix-Proxy 部署和运行

    Zabbix-Proxy 部署&运行 前提 版本: zabbix-server 5.4 任务: 通过SNMP监控网络设备,需要需通过zabbix-proxy 发送到zabbix-server. ...

  7. ArrayList扩容问题

    今天上午上课在看JavaSE的面经,其中有问关于ArrayList和LinkedList的区别,就突然思考到,既然ArrayList是采用数组形式存储数据,对比我们自己使用到的数组,为什么ArrayL ...

  8. Java学习day21

    今天学习了弹窗,除了此前学的按键以外,弹窗也是程序中广泛使用到的一个方面 做了一个简单的弹窗 除了按键以外,有时候我们需要在界面上显示更多的内容,甚至是图片等,这个时候就需要使用到标签 通过标签和Ic ...

  9. grpc流模式-go实现

    目录 1. 什么是数据流 2. grpc的四种数据流 2.1 简单模式 2.2 服务端数据流模式 2.3 客户端数据流模式 2.4 双向数据流 3. 上代码 3.1 代码目录 3.2 编写stream ...

  10. 2022.02.27 CF811E Vladik and Entertaining Flags(线段树+并查集)

    2022.02.27 CF811E Vladik and Entertaining Flags(线段树+并查集) https://www.luogu.com.cn/problem/CF811E Ste ...