0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用Arduino生成二维码在SSD1306 OLED上显示

科技观察员 来源:circuitdigest 作者:Debashis Das 2022-08-19 15:25 次阅读

“快速响应”代码或缩写为 QR 代码已成为我们数字生活的重要组成部分,很可能您现在已经潜意识地熟悉它们,您可能已经在当地的杂货店漫游,或者您可能正在阅读你最喜欢的书,甚至可能你正在使用 Google Pay、PhonePe 或 Paytm 进行在线支付,或者在网上冲浪等(我想我可以继续举例吧?)而你恰好来了穿过这个看起来很奇怪的方形的东西,然后想,这个方形的东西到底是什么,如果你还没有……好吧,别担心它迟早会发生,所以为了更好地理解这个话题,我们将做一个有趣的ArduinoOLED小项目,揭开以下事物的神秘面纱:

QR 码的基本概念。

这个怎么运作。

如何使用 Arduino 制作您自己的二维码。

最后,将其显示在 OLED (SSD1306) 屏幕上。

那么,这个二维码到底是什么?

QR 码(Quick Response code)是用于高速读取数据的矩阵二维码,由 DENSO WAVE 于 1994 年为日本汽车行业开发。与标准条形码相比,QR 码可以非常有效地压缩数据,为此它使用四种标准化编码模式(数字、字母数字、字节/二进制和汉字),该技术是“开源”的,即所有人都可以使用,所以QR 码相对于传统条码的显着优势是更大的数据容量和高容错性。

二维码如何工作?

QR 码(和其他数据矩阵码)被设计为由特殊工具读取,而不是由人类读取,因此我们只能通过视觉研究来理解特定的数量,尽管每个代码都有不同的方式,尽管它们包含一些有趣的共同点通过观察 circuitdigest.com 二维码的功能,我们将研究其中的一些

Finder Patterns:在代码的三个角内有一个实心框的大方框,因为只有三个,所以很容易确认它是一个 QR 码,所以很明显代码的方向是什么。

对齐模式:这可以确保代码在任何方向上都是可读的。

时序模式:这在三个查找器模式之间水平和垂直运行,使用这些线,读者可以确定代码的大小。

版本信息:二维码标准目前有40个不同的版本,这部分代码决定了正在使用的二维码版本,对于营销版本1-7正常使用。

格式信息:格式合作伙伴有关于容错和数据屏蔽的信息。

数据区:这部分代码包含所有数据元素和纠错码。

退出区:每个 QR 码中的间距是强制性的,以便将代码与周围环境区分开来。

下图将使您对代码有一个清晰的认识

poYBAGL_OjyAFYGaAAC2_6bWbUw735.png

代码的其他部分是数据和冗余代码。

在本教程中我不会讨论许多其他功能和复杂的主题,如果您想阅读有关 QR 码的更多详细信息,请关注 EPCglobal 新加坡理事会 Tan Jin Soon 的这个 QR 码 教程。综合杂志,2008 年。

二维码规格

pYYBAGL_OjmAaev9AABFwefMsUY845.png

生成您自己的二维码

按照下面提到的步骤生成您自己的二维码,在这个例子中,我们将制作我们心爱的电路文摘网站的二维码

要生成 QR 码,请访问该网站,如果您查看网站的顶部,您可以看到选项列表,在本教程中,我们将为 URL 生成 QR 码,因此我们将

单击 URL 选项卡,然后将 Circuit Digest 的 URL 粘贴到 Enter URL 部分。

点击保存。

为输出文件指定一个文件名。

选择 PNG 作为我们的首选文件格式。

并点击保存。

下图将让您清楚地了解该过程

poYBAGL_OjSAIiX7AAUIAdG1qEg373.png

我们最亲爱的微控制器“Arduino”不够智能,它只能编译原始 PNG 图像并将其显示在 OLED 显示器上。因此,要将 QR 码显示到 OLED,我们需要执行一些简单的步骤,并将PNG 图像转换为Arduino 可读的位图数组。位图数组转换可以通过以下两个步骤完成:

将 PNG 转换为 BMP 格式。

将 BMP 图像转换为十六进制代码数组。

将 PNG 转换为 BMP 格式

要将下载的 PNG 图像转换为 BMP 图像,请访问此网站并在图像转换器部分中,然后

点击下拉菜单并选择

转换为 BMP

点击前往

下图将使您清楚地了解该过程:

pYYBAGL_OjGAMCHlAAUN4u2Ivss910.png

您将看到一个新页面,如下图所示:

poYBAGL_OiuAehGuAAWwtQ1SMrQ981.png

单击选择文件选项卡并选择下载的图像

在可选设置中,面板输入您想要的尺寸(我们使用的是 128x64 OLED)

点击开始转换按钮

您将看到以下页面,几秒钟后,如果下载没有自动开始,您的转换后的图像将被下载,请单击下载您的文件选项:

pYYBAGL_OiiAEAhTAAN5T8edSqs484.png

伟大的!现在我们得到了 BMP 文件,是时候将其转换为 Arduino 可读的 HEX 代码数组了。

将 BMP 图像转换为 HEX 代码数组

要将下载的 BMP 图像转换为 HEX 数组,请访问此网站并单击工具 -》 image2cpp

下图将让您清楚地了解该过程

poYBAGL_OiSAUjO7AAROBm0xEAs004.png

您将看到一个包含四个选项的屏幕,我们将详细讨论它们

选择图片

图像设置

预习

输出

选择图像部分

在本节中,我们将选择刚刚转换为 BMP 的图像:

pYYBAGL_OiCAdCq0AAEakfT8ENY384.png

图像设置部分

在本节中,我们将画布大小、背景颜色、缩放和中心选项设置为我们需要的值。

画布尺寸(我们设置为 128x64,因为我们使用的是 128x64 像素密度的 OLED)。

在本节中,我们可以设置 OLED 的背景颜色(我们选择它为白色)。

缩放设置为原始大小。

最后,在中心选项中单击水平和垂直复选框,这将使图像出现在中心。

下图会给你一个清晰的思路

poYBAGL_OhyAMHuKAAFLmHQnhck783.png

预览部分

在预览部分,我们可以看到将在 OLED 中显示的图像的清晰预览,如下所示:

pYYBAGL_OhiAN89PAAFgkgnkIns063.png

输出部分

在输出部分,我们将生成并复制生成的代码,执行以下步骤:

代码输出格式(我们将其设置为 Arduino 代码,因为我们使用的是一种)。

标识符(此选项设置生成的数组的名称,我们将其保留为默认值)。

绘图模式(我们将绘图模式选项设置为水平)。

最后,我们点击生成代码按钮,这将生成最终的输出代码。

下图会给你一个清晰的思路

poYBAGL_OhOACx8KAAIHjcJ_YMI843.png

电路原理

下图显示了Arduino Nano 和 SSD1306之间的接口连接:

poYBAGL_Og-AK9BAAAMCeGlFRo0774.png

poYBAGL_OguAB5k1AAASyAnLP1E302.png

代码说明

要在 OLED 上显示图像,我们需要 Arduino 库的帮助,可以从这个GitHub 存储库下载。下载库的U8glib-1.19.1.zip版本并在 Arduino IDE 中导入。如果您是 Arduino 新手,请参考此链接,描述如何导入库。在下面的部分中,我们将修改代码以将先前生成的 HEX 数组显示到 OLED。本文末尾提供了带有工作视频的完整代码。下面给出代码的详细解释。

首先,包括下载的库。

#include "U8glib.h" // 包括 U8glib 库

然后为 OLED 定义所有必要的引脚。

#define OLED_CLK_PIN 13 //Arduino 数字引脚 D13:SCK
#define OLED_MOSI_PIN 11 //Arduino 数字引脚 D11:MOSI
#define OLED_RES_PIN 10 //Arduino 数字引脚 D10:SS
#define OLED_SDC_PIN 9 //Arduino 数字引脚 D9:OC1A
#define OLED_CSS_PIN 8 //Arduino 数字引脚 D13: ICP1

初始化 u8glib 库。

U8GLIB_SH1106_128X64 u8g(OLED_CLK_PIN,OLED_MOSI_PIN,OLED_RES_PIN,OLED_SDC_PIN,OLED_CSS_PIN);

然后包含生成的图像数组。

const uint8_t circuitdigest[] PROGMEM = {
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1c, 0x01, 0x87, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x0c, 0x01, 0x87, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x8f, 0xf0, 0x7f, 0x31, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x8f, 0xf0, 0x7f, 0x33, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xf3, 0x81, 0x8f, 0x31, 0x80, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0x31, 0x80, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0xb1, 0x80, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0xc1, 0x98, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0xc1, 0x98, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff,
……..
…………..

绘图函数用于借助 u8g.drawBitmapP 函数在 OLED 上绘制位图图像(二维码)。

无效绘制(无效){
  // 重绘整个屏幕的图形命令应该放在这里
  u8g.drawBitmapP(0, 0, 16, 64, 电路摘要);
……
……

最后,在loop()函数中,调用所有必要的程序在 OLED 上构建图像

无效循环(){
  u8g.firstPage(); //调用此过程,标志着图片循环的开始。
  做 {
    画();
  } 而(u8g.nextPage());// 对该过程的调用,标志着图片循环主体的结束。
  // 延迟一段时间后重建图片
  延迟(1000);
}

完成代码后,将Arduino插入计算机的USB端口,选择您的COM端口并上传代码。如果您已正确完成所有操作,您将在 OLED 上看到带有 QR 码的工作显示器。

poYBAGL_OgSAXfNjAAdk1RJOXhU153.png

/*

通用 8 位图形库,http://code.google.com/p/u8glib/

*/

#include "U8glib.h" // 包括 U8glib 库

#define OLED_CLK_PIN 13 //Arduino 数字引脚 D13:SCK

#define OLED_MOSI_PIN 11 //Arduino 数字引脚 D11:MOSI

#define OLED_RES_PIN 10 //Arduino 数字引脚 D10:SS

#define OLED_SDC_PIN 9 //Arduino 数字引脚 D9:OC1A

#define OLED_CSS_PIN 8 //Arduino 数字引脚 D13: ICP1

U8GLIB_SH1106_128X64 u8g(OLED_CLK_PIN,OLED_MOSI_PIN,OLED_RES_PIN,OLED_SDC_PIN,OLED_CSS_PIN);

/*

制作 U8GLIB_SH1106_128X64 类的对象并初始化 arduino 的引脚

此方法首先需要五个参数(SCK_PIN、MOSI_PIN、CS_PIN、A0_pin、RESET_PIN)

*/

//定制的电路摘要位图

const uint8_t circuitdigest[] PROGMEM = {

0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1c, 0x01, 0x87, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x0c, 0x01, 0x87, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x8f, 0xf0, 0x7f, 0x31, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x8f, 0xf0, 0x7f, 0x33, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x81, 0x8f, 0x31, 0x80, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0x31, 0x80, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0xb1, 0x80, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0xc1, 0x98, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0xc1, 0x98, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0xc0, 0x67, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0xc0, 0x67, 0x33, 0x81, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x8f, 0x31, 0xe7, 0x33, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x8f, 0x31, 0xe7, 0x33, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x0c, 0xce, 0x67, 0x30, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x0c, 0xce, 0x67, 0x30, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x1c, 0x4e, 0x27, 0x38, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3e, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3e, 0x1e, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0xe1, 0x8f, 0x3e, 0x60, 0x33, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0xe1, 0x8f, 0x3e, 0x60, 0x33, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0x19, 0xf0, 0xcf, 0xf8, 0xfc, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0x19, 0xf0, 0xcf, 0xf8, 0xfc, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0x83, 0x3e, 0x00, 0xcc, 0x67, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0x83, 0x3e, 0x00, 0xcc, 0x67, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x7c, 0xff, 0xc3, 0xf1, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x7c, 0xff, 0xe7, 0xf3, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x7c, 0xff, 0xe7, 0xf1, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0xf9, 0x8f, 0x0e, 0x78, 0xf0, 0x7f, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0xf9, 0x8f, 0x0e, 0x78, 0xf0, 0x7f, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x19, 0xf3, 0xce, 0x18, 0x0f, 0x9e, 0x3f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x19, 0xe3, 0xce, 0x18, 0x0f, 0x9e, 0x3f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0x83, 0x0f, 0x80, 0xf3, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0x83, 0x0f, 0x80, 0xf3, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf1, 0xc7, 0xe0, 0xf3, 0xe3, 0x7c, 0x40, 0x8f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0xe7, 0xf0, 0xf1, 0xe7, 0x3c, 0x61, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0xe7, 0xf0, 0xf9, 0xe7, 0x3c, 0x60, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x19, 0x8c, 0x3e, 0x07, 0x00, 0x18, 0x3f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x39, 0x9c, 0x3e, 0x07, 0x00, 0x18, 0x3f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3e, 0x1f, 0x3f, 0x98, 0x3f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3e, 0x1f, 0x3f, 0x98, 0x3f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1f, 0x01, 0xff, 0x33, 0x9f, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x0f, 0x01, 0xff, 0x33, 0x9f, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0x8f, 0xc7, 0x80, 0x3f, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x8f, 0xcf, 0x80, 0x3f, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x8f, 0xcf, 0x80, 0x3f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8c, 0x30, 0x60, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8c, 0x30, 0x60, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8c, 0xf1, 0xe0, 0x03, 0xfe, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8c, 0xf1, 0xe0, 0x03, 0xfe, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0xc1, 0x83, 0xcf, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0x01, 0x8f, 0xc1, 0x87, 0xcf, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x8c, 0xff, 0xe1, 0xc0, 0x18, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x8c, 0xff, 0xe0, 0xc0, 0x18, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0x8c, 0xff, 0xf0, 0xc0, 0x18, 0x0f, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x0c, 0x0e, 0x7f, 0x3f, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1c, 0x0e, 0x7f, 0x3f, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff

};

无效绘制(无效){

// 重绘整个屏幕的图形命令应该放在这里

u8g.drawBitmapP(0, 0, 16, 64, 电路摘要);

/*

drawBitmapP 方法接受五个参数

第一个:X 位置(位图的左侧位置)。

第二:Y 位置(位图的上方位置)。

第三:位图水平方向的字节数。位图的宽度为 cnt/8。

第四:位图的高度。

第五:位图数组。

*/

/*

在指定的 x/y 位置(位图的左上角)绘制位图。

位图的某些部分可能在显示边界之外。位图由数组位图指定。

清零位表示:不绘制像素。

数组中的一个设置位意味着:用当前颜色索引写入像素。对于单色显示,

颜色索引 0 通常会清除一个像素,颜色索引 1 会设置一个像素。

*/

}

无效设置(){

// 空设置函数,因为库在内部管理所有内容

}

无效循环(){

u8g.firstPage(); //调用此过程,标志着图片循环的开始。

做 {

画();

} 而(u8g.nextPage());// 对该过程的调用,标志着图片循环主体的结束。

// 延迟一段时间后重建图片

延迟(1000);

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 二维码
    +关注

    关注

    7

    文章

    371

    浏览量

    26083
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184838
  • OLED显示
    +关注

    关注

    1

    文章

    52

    浏览量

    16916
  • SSD1306
    +关注

    关注

    2

    文章

    40

    浏览量

    13389
收藏 人收藏

    评论

    相关推荐

    二维码的算法?

    想用51做一个能将简单数字生成二维码图片在LED彩屏显示。问一下二维码的算法?51单片机能处理吗?请教高手了。
    发表于 03-30 20:14

    二维码识别

    `利用笔记本电脑的摄像头采集二维码图像并识别,显示二维码的信息!下载了labview视觉与运动模块的可以下来看看!里面有2张二维码,用二维码
    发表于 08-27 16:52

    二维码软件中制作Dot Code二维码的步骤

      二维码软件中,点击软件左侧的“二维码”按钮,画布绘制二维码样式,双击
    发表于 12-02 15:45

    SSD1306如何显示字符测试结果

    文章目录序言OLED简介模块介绍引脚定义SSD1306控制芯片驱动时序图讲解SSD1306常用命令命令设置SSD1306如何显示字符测试结果
    发表于 08-11 09:07

    SSD1306的相关资料分享

    SSD1306(OLED驱动芯片介绍)介绍0.96寸 SSD1306之前先附上模块链接:点击购买SSD1306
    发表于 11-17 06:24

    SSD1306芯片介绍

    一、基础认识及引脚介绍屏幕参数:尺寸:0.96英寸分辨率:128*64驱动芯片:SSD1306驱动接口协议:SPI引脚说明:SSD1306芯片介绍SSD1306是一款带控制器的用于
    发表于 01-25 06:24

    STM32 单片机字符串生成二维码显示相关资料分享

    ,添加函数声明3.调用LCD_DrawQrcode_fun函数显示二维码显示效果:放大4倍和原图显示注:二维码字符串 是
    发表于 01-27 07:32

    基于SSD1306的0.91寸OLED显示模组

    描述OLED显示模组-0.91寸0.91OLED模组采用SSD1306为主芯片,像素为128*32,通讯方式为IIC,IIC 地址默认为 0x78,界面简单,该模块有一个稳压芯片,支持
    发表于 08-12 07:32

    SSD1306数据表

    128*64 OLED的驱动芯片SSD1306的数据手册0.96oled一般用ssd1306驱动,ssd1306的指令丰富,但是
    发表于 09-27 07:59

    ssd1306 OLED花屏怎么解决?

    ssd1306用spi连接arduino,几率花屏,但是树莓派上用就没问题,请问各位大佬有什么好的建议吗
    发表于 10-19 08:26

    基于SSD1306OLED开发模块

    基于SSD1306OLED开发模块,包含SSD1306-Revision-1.1.pdf和SSD1306命令.doc
    发表于 02-24 14:03 96次下载

    SSD1306(OLED驱动芯片介绍)

    SSD1306(OLED驱动芯片介绍)在介绍0.96寸 SSD1306之前先附上模块链接:点击购买SSD1306 OLED
    发表于 11-09 18:36 52次下载
    <b class='flag-5'>SSD1306</b>(<b class='flag-5'>OLED</b>驱动芯片介绍)

    使用Arduino代码和SSD1306显示器创建动态二维码

    电子发烧友网站提供《使用Arduino代码和SSD1306显示器创建动态二维码.zip》资料免费下载
    发表于 11-03 11:27 1次下载
    使用<b class='flag-5'>Arduino</b>代码和<b class='flag-5'>SSD1306</b><b class='flag-5'>显示</b>器创建动态<b class='flag-5'>二维码</b>

    SSD1306 OLED显示屏上的Arduino Flash文本

    电子发烧友网站提供《SSD1306 OLED显示屏上的Arduino Flash文本.zip》资料免费下载
    发表于 01-31 10:12 1次下载
    <b class='flag-5'>SSD1306</b> <b class='flag-5'>OLED</b><b class='flag-5'>显示</b>屏上的<b class='flag-5'>Arduino</b> Flash文本

    ArduinoSSD1306 OLED显示屏上随机移动文本

    电子发烧友网站提供《ArduinoSSD1306 OLED显示屏上随机移动文本.zip》资料免费下载
    发表于 06-09 10:09 0次下载
    <b class='flag-5'>Arduino</b>在<b class='flag-5'>SSD1306</b> <b class='flag-5'>OLED</b><b class='flag-5'>显示</b>屏上随机移动文本