找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 23210|回复: 8
打印 上一主题 下一主题
收起左侧

Arduino初学者在OLED上显示文本,图像和动画 程序+资料

  [复制链接]
跳转到指定楼层
楼主
ID:472844 发表于 2019-7-20 20:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在本文中,您将学习如何通过Arduino运行OLED,并在其上显示文本,图像和动画。
硬件组件:
Arduino Uno Rev3× 1
0.96英寸OLED 64x128显示模块× 1
21厘米40P公/母跳线× 1
软件应用程序和在线服务:
Arduino IDE
在本文附件中,我们将介绍OLED显示器、OLED显示器的差异,如何通过简单的控制器运行它们,以及在它们上显示文本和图像。非常适合新手小白学习如何在OLED上显示文本、图像和动画。

在本文中,我们将讨论 OLED 显示器的故事及其差异,如何通过简单的

控制器运行它们,以及在它们上显示文本和图像。在本文结尾处,您将 能够:


解释 OLED 显示理论

运行 Arduino 的 OLED 显示器

显示所有类型的文本或图像

显示简单的动画

OLED:什么是理论? 有机发光二极管(OLED)是一种高对比度和高分辨率的显示器,使用户易于阅读。这种显示器没有背光并且自己创建背光,这使得它们比


LCD 更清晰,更清晰和更平滑。美国物理化学家 Ching W. Tang 和
Steven Van Slyke 在 Eastman Kodak 于 1987 年建造了第一台实用的

OLED 设备。如今我们可以看到升级后的 OLED,如 SAMSUNG 的

Super AMOLED 和 AMOLED Plus 以及 LG 的 POLED。


小型 OLED 模块在电子项目中非常有用。简单的布线和高可读性的显示 器适用于显示数据,数字和简单图像。您可以找到具有不同分辨率的这 些面板的不同尺寸和颜色。根据您的项目,您可以选择并行,SPI 或 I2C 模型。有单色,2 色和 16 位全彩色面板可供使用。我们选择带有 SSD1306 驱动器和 Arduino UNO 的 128 * 64,0.96 英寸 SPI OLED 显 示器。阅读本文的其余部分,了解如何在 OLED 显示屏上显示文本和图 像。



电路

有不同的 SPI OLED 显示器具有不同的引脚名称。使用上面的电路图来

找出模块引脚名称的含义。大多数 OLED 模块也使用 3.3 伏电源。您可 以更改 Arduino 的引脚,但您也必须在代码中更改它。



模拟

如果您没有组件或者不想购买它们,可以通过 Proteus 仿真尝试并根据 您的兴趣进行编辑。下载以下项目文件。



码

有许多针对 OLED 模块编写的库。在本文中,我们选择了 WaveShare OLED SSD1306 库。它并不复杂,您甚至可以根据您的代码更改库。 您必须先添加库,然后上传代码。如果这是您第一次运行 Arduino 板, 请不要担心。只需按以下步骤操作:


访问 www.arduino.cc/en/Main/Software 并下载操作系统的软件。按照 说明安装 IDE 软件。


运行 Arduino IDE 并清除文本编辑器并在文本编辑器中复制以下代码。

导航到草图并包含库(从以下链接下载库)。现在单击添加 ZIP 库并添 加库


选择工具和板卡中的板,选择 Arduino UNO。

将 Arduino 连接到 PC 并在工具和端口中设置 COM 端
按上传(箭头符号)按钮。
你们都准备好了!

集合 您可以使用面包板和公/母跳线进行操作。 现在上传代码。



要显示图像,您必须将其转换为十六进制代码。有几个应用程序将图像

转换为十六进制代码。您可以从以下链接下载其中一个。首先,运行软 件并从“文件”菜单中打开图像。您的图像尺寸应小于128 * 64 像素。然 后单击“选项”菜单中的转换,并确保设置与下图相同。


单击从文件菜单转换。现在打开.c 文件并复制十六进制代码。在主代码 中,按以下格式添加十六进制代码。

const uint8_t SAMPLE_NAME [] PROGMEM = {0x00, 0x00, 0x00, 0x00 ....

0xFF };

现在,将以下行添加到循环中。

SSD1306_bitmap(0, 0, SAMPLE_NAME, 128, 64,oled_buf); // (x location, y location, Name of image, width, height)


完成后,将代码上传到 Arduino。


有关更多练习,我们添加示例规范和文本动画。尝试编辑它并在显示屏

上制作自己的动画。


  1. #include "ssd1306.h"
  2. #define VCCSTATE SSD1306_SWITCHCAPVCC
  3. #define WIDTH     128
  4. #define HEIGHT     64
  5. #define PAGES       8
  6. #define OLED_RST    9
  7. #define OLED_DC     8
  8. #define OLED_CS    10
  9. #define SPI_MOSI   11    /* connect to the DIN pin of OLED */
  10. #define SPI_SCK    13     /* connect to the CLK pin of OLED */

  11. uint8_t oled_buf[WIDTH * HEIGHT / 8];

  12. void setup() {
  13.   Serial.begin(9600);
  14.   Serial.print("OLED Example\n");


  15.   SSD1306_begin();
  16.   SSD1306_clear(oled_buf);

  17.   /* display images of bitmap matrix */
  18.   SSD1306_bitmap(0, 2, Signal816, 16, 8, oled_buf);
  19.   SSD1306_bitmap(24, 2,Bluetooth88, 8, 8, oled_buf);
  20.   SSD1306_bitmap(40, 2, Msg816, 16, 8, oled_buf);
  21.   SSD1306_bitmap(64, 2, GPRS88, 8, 8, oled_buf);
  22.   SSD1306_bitmap(90, 2, Alarm88, 8, 8, oled_buf);
  23.   SSD1306_bitmap(112, 2, Bat816, 16, 8, oled_buf);

  24.   SSD1306_string(0, 52, "MUSIC", 12, 0, oled_buf);
  25.   SSD1306_string(52, 52, "MENU", 12, 0, oled_buf);
  26.   SSD1306_string(98, 52, "PHONE", 12, 0, oled_buf);

  27.   SSD1306_char3216(0, 16, '1', oled_buf);
  28.   SSD1306_char3216(16, 16, '2', oled_buf);
  29.   SSD1306_char3216(32, 16, ':', oled_buf);
  30.   SSD1306_char3216(48, 16, '3', oled_buf);
  31.   SSD1306_char3216(64, 16, '4', oled_buf);
  32.   SSD1306_char3216(80, 16, ':', oled_buf);
  33.   SSD1306_char3216(96, 16, '5', oled_buf);
  34.   SSD1306_char3216(112, 16, '6', oled_buf);

  35.   SSD1306_display(oled_buf);
  36. }

  37. void loop() {

  38. }
复制代码

全部资料51hei下载地址:
OLED.zip (10.89 MB, 下载次数: 233)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏10 分享淘帖 顶顶 踩踩
回复

使用道具 举报

沙发
ID:282095 发表于 2019-7-21 10:47 | 只看该作者
现在据说中学生都在学adrinuo
回复

使用道具 举报

板凳
ID:383182 发表于 2019-11-14 09:10 | 只看该作者
正好需要这个 谢谢
回复

使用道具 举报

地板
ID:452731 发表于 2019-11-19 16:58 | 只看该作者
开发思路,可以借鉴
回复

使用道具 举报

5#
ID:53978 发表于 2021-2-26 21:45 | 只看该作者
怎么加载不上ssd1306.h库呢
回复

使用道具 举报

6#
ID:1040525 发表于 2022-7-26 08:00 | 只看该作者
四针如何连接
回复

使用道具 举报

7#
ID:71977 发表于 2025-9-2 16:14 | 只看该作者
谢谢楼主分享  非常感谢中
回复

使用道具 举报

8#
ID:138956 发表于 2025-9-30 12:30 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

9#
ID:1172764 发表于 2026-6-6 16:44 | 只看该作者
谢谢分享,学习中
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表