首页 / 行业
怎样通过Arduino运行OLED
2019-08-05 09:32:00
有机发光二极管(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端口。
按上传(箭头标志)按钮。
您已经完成了设置!
结果
#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 ”);
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() {
}
汇编
您可以使用面包板和公/母跳线来完成它。
现在上传代码。
显示图像和动画
要显示图像,必须将其转换为十六进制代码。有几个应用程序将图像转换为十六进制代码。您可以从以下链接下载其中一个。首先,运行软件并从“文件”菜单中打开图像。您的图像尺寸应小于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位置,y位置,图像名称,宽度,高度)
已完成,上传代码到Arduino。
下一步是什么?
为了更多练习,我们添加了一个示例规范和文本动画。尝试编辑它并在显示屏上制作自己的动画。
您还可以在ElectroPeak官方网站上阅读此项目。
https://electropeak.com/learn/引导件/所述-初学者引导到显示文本的图像的动画-OLED显示逐Arduino的上/
最新内容
手机 |
相关内容
豪威发布新款 4K 分辨率图像传感器
豪威发布新款 4K 分辨率图像传感器,适用于安防摄像头,分辨率,新款,区域,像素,运行,图像,豪威科技最近发布了一款全新的4K分辨率BAS70高通骁龙8 Gen4曝光:升级台积电3nm
高通骁龙8 Gen4曝光:升级台积电3nm CPU回归自研架构,升级,台积电,优化,能和,功耗,处理器,高通骁龙8 Gen4是高通公司即将推出的一款NE拒绝一次性芯片,新技术:无线升级芯片
拒绝一次性芯片,新技术:无线升级芯片,芯片,升级,新技术,一次性,智能家居,物联网,一次性芯片是一种在使用后不能再次编程的MAX241CWI集森萨塔推出首款经UL认证的A2L制冷
森萨塔推出首款经UL认证的A2L制冷剂泄漏检测传感器,检测,首款,认证,森萨塔,推出,传感器,森萨塔是一家专注于制冷和空调技术的领先公PODsys:大模型AI算力平台部署的开源
PODsys:大模型AI算力平台部署的开源“神器”,开源,模型,平台,运行,计算,用户,PODsys(Platform for Open-source Distributed System)是什么是节能变压器,节能变压器的基本
什么是节能变压器,节能变压器的基本结构、特点、工作原理、应用、操作规程、常见问题及发展前景,常见问题,结构,工作原理,负载,损耗电流传感器在电梯中的作用是什么?
电流传感器在电梯中的作用是什么?,作用,提供数据,运行,测量,监测,故障,AO3400A电流传感器在电梯中的作用是用于监测和测量电梯的电流什么是合封芯片,它与单封芯片有何不
什么是合封芯片,它与单封芯片有何不同?,芯片,系统,升级,集成,接触,功能模块,合封芯片是指将多个芯片整合在一起封装成一个独立的ADV74