在本文中,您将学习如何通过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。
有关更多练习,我们添加示例规范和文本动画。尝试编辑它并在显示屏
上制作自己的动画。

- #include "ssd1306.h"
- #define VCCSTATE SSD1306_SWITCHCAPVCC
- #define WIDTH 128
- #define HEIGHT 64
- #define PAGES 8
- #define OLED_RST 9
- #define OLED_DC 8
- #define OLED_CS 10
- #define SPI_MOSI 11 /* connect to the DIN pin of OLED */
- #define SPI_SCK 13 /* connect to the CLK pin of OLED */
- uint8_t oled_buf[WIDTH * HEIGHT / 8];
- void setup() {
- Serial.begin(9600);
- Serial.print("OLED Example\n");
- SSD1306_begin();
- SSD1306_clear(oled_buf);
- /* display images of bitmap matrix */
- SSD1306_bitmap(0, 2, Signal816, 16, 8, oled_buf);
- SSD1306_bitmap(24, 2,Bluetooth88, 8, 8, oled_buf);
- SSD1306_bitmap(40, 2, Msg816, 16, 8, oled_buf);
- SSD1306_bitmap(64, 2, GPRS88, 8, 8, oled_buf);
- SSD1306_bitmap(90, 2, Alarm88, 8, 8, oled_buf);
- SSD1306_bitmap(112, 2, Bat816, 16, 8, oled_buf);
- SSD1306_string(0, 52, "MUSIC", 12, 0, oled_buf);
- SSD1306_string(52, 52, "MENU", 12, 0, oled_buf);
- SSD1306_string(98, 52, "PHONE", 12, 0, oled_buf);
- SSD1306_char3216(0, 16, '1', oled_buf);
- SSD1306_char3216(16, 16, '2', oled_buf);
- SSD1306_char3216(32, 16, ':', oled_buf);
- SSD1306_char3216(48, 16, '3', oled_buf);
- SSD1306_char3216(64, 16, '4', oled_buf);
- SSD1306_char3216(80, 16, ':', oled_buf);
- SSD1306_char3216(96, 16, '5', oled_buf);
- SSD1306_char3216(112, 16, '6', oled_buf);
- SSD1306_display(oled_buf);
- }
- void loop() {
- }
复制代码
全部资料51hei下载地址:
OLED.zip
(10.89 MB, 下载次数: 233)
|