在Arduino给自己的SSD1306 OLED显示定制Logo或者图片

我在使用Arduino上的SSD1306显示屏时,基本都用使用Adafruit的SSD1306库,但是Adafruit的开机logo实在没特色(如下图),如果在开机时,让自己的项目上显示自己的定制logo,甚至是照片(如果你自认为很帅),有点小酷吧。
通过阅读本文件,你将能自己设计简易Logo,并在你的OLED屏上显示出来。
在这里插入图片描述

1. 开始前的准备

1.1 需要具备的硬件:

  1. 支持Arduino框架的开发板,比如Arduino Uno, ESP32等
  2. SSD1306显示屏,我使用的是IIC, 0.96寸,128X64像素的单色OLED

1.2 需要具备的软件 :

  1. Arduino IDE或者在VS Code里的PlatformIO
  2. 已经安装Adafruit GFX Library和Adafruit SSD1306两个Arduino库
  3. Windows系统下的画图

1.3 假设你已经具有的软硬件知识

  1. 已掌握如何在Arduino开发板上配置IIC或者SPI接口的OLED屏
  2. 已基本掌握如何使用Adafruit SSD1306相关库

2. 具体步骤

2.1 设计Logo

2.1.1 进入免费设计logo的网站,FreeLogoDesign, 我们只要注册一下,不要选择任何购买内容,因为免费的200x200像素的输出已经足够我们在128x64像素的分辨率上显示了。
选Sign up来注册,或者用自己的社交账号继续
在这里插入图片描述

2.2.1 设计方法

  • 设计界面,在左侧有各种各样的图标和形状选择, 选自己喜欢的内容拖进画布

  • 点中自己的对象,在右侧可以看到EDIT ICON的选项,把它变成纯黑或者纯白

  • 比如我的这个开机logo,一共有三个元素,纯黑的长方形形状,纯白的logo图标,纯白的logo字母。记住白色的内容将会在开机过程中显示
    在这里插入图片描述

  • 点击右上角的Download,下载图片,下载时选择最左侧的Free计划,免费的足够我们用了。
    在这里插入图片描述

2.2 裁减Logo

2.2.1 在画图中打开刚才下载的图片,可以看到一幅200x200的图片,我们要把它裁剪成128x64像素,你可以根据自己屏幕的分辨率来调整。
在这里插入图片描述
2.2.2 用命令栏里的矩形选择进行选择后,点击旁边的裁剪,就可以得到我们想要的像素的图片,图像的大小可以在画图最下方的信息栏里看到,这次我的图片刚刚裁剪成128x64.
在这里插入图片描述
2.2.3 并不是每次手气都刚刚好把图片裁成自己想要的尺寸,比如裁成130x66, 就要点击“裁剪”图标下面的“重新调整大小”,点选“像素”,去掉“保持纵横比”选项,把水平和垂直的像素值按你的屏幕规格来设置

在这里插入图片描述
2.2.4 把Logo图片另存为“单色位图”
在这里插入图片描述

2.3 转换Logo

2.3.1 打开转换网站 image2cpp
2.3.2 只要在网站上按数字序号一路选下去就可以,在我们这里只要点第一步的打开图片,和第四步的code output format下拉列表内的Arduino code选项即可。
最后点“Generate code".

2.4 复制代码到Arduino程序

2.4.1 在主程序中将2.3生成的代码复制void setup()之前,示例如下:
PS. 下面的代码我删除了部分内容

const unsigned char logo [] PROGMEM = {
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, 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, 0x00, 0x00, 0xf8, 0x10, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x1e, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x8c, 0x3f, 0x80, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0x9f, 0xe8, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe7, 0xde, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0xde, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0x3c, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x0f, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x03, 0xf9, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0x71, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe0, 0x03, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0xe0, 0x03, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xc0, 0x03, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0xc0, 0x07, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x80, 0x07, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x80, 0x0f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x80, 0x0e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x1e, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x38, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x7f, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x7f, 0xc0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0c, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x9f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x01, 0xe7, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x88, 0x00, 0x70, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x10, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x3c, 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, 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, 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, 
	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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x03, 0xfe, 0xf0, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x60, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x03, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x66, 0x66, 0x62, 0x08, 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0xe7, 0xff, 0xff, 0x9d, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x03, 0xfc, 0xf7, 0xef, 0xff, 0x9d, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
};

2.4.2 在setup()里添加下列代码。

 //Display bitmap
  display.clearDisplay();
  display.drawBitmap(0, 0, logo, 128, 64, WHITE);
  display.display();
  delay(2000);
  display.clearDisplay();

2.5 显示效果

不用期望太高,毕竟是128X64的屏幕
在这里插入图片描述

  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Arduino SSD1306 OLED显示屏是一种基于Arduino开发板的显示屏,采用SSD1306驱动芯片,具有高亮度、低功耗、高对比度等特点。它可以用于显示各种信息,如文本、图像、图标等,适用于各种Arduino项目。 ### 回答2: Arduino SSD1306 OLED显示屏是一块高分辨率的单色显示屏,非常适合DIY电子爱好者在自己的项目中使用。与传统的LCD显示屏不同,OLED显示屏具有更快的响应速度、更低的功耗和更高的对比度,同时消耗的电力也更少,在相同的亮度下更加节能,因此在需要使用电池供电的项目中得到广泛应用。Arduino SSD1306 OLED显示屏由OLED屏幕、驱动IC、电容、电阻和其他一些辅助器件组成,通过I2C总线与Arduino板通信。 为了控制这块显示屏,我们需要一个专门编写的程序。在这个程序中,我们可以定义需要显示的内容,包括文本、图形、图标和图像。可以通过设置显示屏坐标和颜色来创建自定义的显示内容。可以使用不同的字体、大小和样式来创建独特的设计。 使用Arduino SSD1306 OLED显示屏的优点不只是它的高效能和易用性,还在于其开放性和扩展性。用户可以使用不同的软件库和驱动程序来创建自己的创新项目,或者使用可用的库和例子来快速上手。对于那些不熟悉编程的用户,也可以使用现成的图形库来轻松地创建复杂的图形和界面。 总的来说,Arduino SSD1306 OLED显示屏是一款多功能的单色显示屏,其灵活性和高效能使其成为DIY电子爱好者的首选。适用于各种类型的项目,包括智能家居、传感器网络、机器人、万花筒、数据可视化和可穿戴设备。 ### 回答3: Arduino ssd1306 oled显示屏是一种非常常见和实用的显示屏,其特点是高亮度、高对比度、低功耗、反应速度快等。这种显示屏采用SSD1306控制芯片,可以通过I2C接口与Arduino连接。SSD1306控制芯片集成了控制器和驱动器,可以通过软件控制屏幕内容。 要使用Arduino ssd1306 oled显示屏,首先需要下载并安装相应的库。在Arduino IDE中打开菜单“工具”-“库管理器”,搜索SSD1306并下载“Adafruit SSD1306”或者“U8g2”库。接下来,连接Arduino ssd1306 oled显示屏到Arduino板上,将VCC连接到5V,GND连接到GND,SDA连接到SDA,SCL连接到SCL。在Arduino IDE中选择正确的板子和端口,并打开一个新的示例程序。如果已安装了U8g2库,可以在示例中找到ssd1306的例子程序进行测试。 在程序中,可以通过调用相应函数来控制显示屏上显示内容,例如显示文本、图形、动画等。可以设置屏幕分辨率、字体大小、对齐方式等缩放和定位属性。可以使用函数来绘制点、线、矩形、圆形、多边形等基本图形,也可以导入和显示位图和动画等多媒体内容。 总的来说,Arduino ssd1306 oled显示屏是一种非常实用和常用的显示屏,可以用于各种跟踪、监控、测量、控制等应用场景。通过简单的硬件和软件设计,可以快速、方便、高效地实现其功能。在今后的开发中,Arduino ssd1306 oled显示屏将会得到更广泛的应用和发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值