怎样通过Arduino运行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端口。
按上传(箭头标志)按钮。
您已经完成了设置!
结果
#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的上/

联发科进一步扩大5G应用场景
聚焦五大功能体系,打造“5G+工业互联网”升级版
技术领先领先别无所求:Intel NAND闪存新战略纵览
iphone8什么时候上市?iphone8最新曝光:iPhone8九月发布,功能不全还涨价成风,这是你期待苹果8吗
555方波三角波发生器 产生器电路图
怎样通过Arduino运行OLED
研究物联网与传感器二者之间的关联
受到中美贸易影响,美国自中国进口的手机、电脑已经开始大幅下滑
振动传感器测量前要做哪些准备
未来的汽车行业 高精定位是实现自动驾驶的入场券
Daqri凭借全新Worksense套件 进入企业级AR软件端
终端厂商和摄像头模组厂商们纷纷将目光投向了摄像头新技术上
iPhone5加速4G发展,四大板块将受益
超声波风速风向传感器的工作原理及特点
Redmi K30 5G正式发布 首发搭载骁龙765G处理器
伺服电机内部结构介绍1
加快电力装备绿色低碳创新发展行动计划
iPhone 12系列短期缺货,Mate 40系列是不是更难买到?
小米5X、小米MIUI9发布会最新消息:发布会正式开始,小米5X、小米MIUI9发布会亮点汇总
瑞鑫环保:致力于让PCB生产废物“变废为宝”