【史上最全面esp32教程】oled显示篇

简介: 【史上最全面esp32教程】oled显示篇

前言

本节课主要讲的是OLED的基础使用。使用的oled为0.96寸,128*64。

大家的其他型号也是可以用的。


提示:以下是本篇文章正文内容,下面案例可供参考

介绍及库下载

oled的简介:

OLED英文全名Organic Light-Emitting Diode,又可称为「有机发光二极体」或是「有机电雷射显示」。


OLED有着色彩鲜艳、功耗低的优点,它的显示技术具有自发光的特性,透过非常薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料就会发光,不仅显示屏幕可视角度大,因为少了LED背光,耗电能够降低。还有一个很大的特性,在荧幕应用设计上,它可以弯曲,因此能够用来设计的范围更广,如曲面屏幕、屏幕下指纹辨识等。


OLED英文全名Organic Light-Emitting Diode,又可称为「有机发光二极体」或是「有机电雷射显示」。


OLED有着色彩鲜艳、功耗低的优点,它的显示技术具有自发光的特性,透过非常薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料就会发光,不仅显示屏幕可视角度大,因为少了LED背光,耗电能够降低。还有一个很大的特性,在荧幕应用设计上,它可以弯曲,因此能够用来设计的范围更广,如曲面屏幕、屏幕下指纹辨识等。


闪屏:


因OLED的调光方式,导致可能出现闪屏的现象,闪屏指的是屏幕以低频率闪烁,虽然视觉上看不出闪烁,看久了可能会产生视觉疲劳的现象,但这部分因人而异,有些人感觉不出来。


esp oled下载链接

提取码:0000

下载完后,进入arduino—>项目—>包含库----->添加zip库,把上面的放入,不需要解压。

基础使用

引脚的连接

我们可以看到OLED有4个,1个GND,1个VCC,还有最重要的SDA和SCL,SDA和SCL就是用来传输数据的,在这里,我的SDA和SCL为19,18pin脚

使用函数

使用oled需要包含如下头文件:

#include <Wire.h>
#include "SSD1306Wire.h"

oled对象的定义:

//OLED引脚定义
#define SDA   19
#define SCL   18
SSD1306Wire display(0x3c, SDA, SCL);

初始化oled:

display.init();

垂直翻转屏幕(把屏幕显示倒转180°):

display.flipScreenVertically();

设置字体大小:

display.setFont(ArialMT_Plain_24);//最后的数字是字体的大小

显示字符串:

display.drawString(x, y, "Hello World");

在每次绘制完后都要调用显示函数:

display.display();

然后就会显示到屏幕上了。

显示hello world在屏幕上:

  display.init();//初始化UI
  display.flipScreenVertically();//垂直翻转屏幕设置
  display.setFont(ArialMT_Plain_24);//设置字体大小
  display.drawString(0, 0, "Hello World");//显示
  display.display();//将缓存数据写入到显示器

设置字符串对齐:

display.setTextAlignment(TEXT_ALIGN_LEFT);

对齐方式:

TEXT_ALIGN_LEFT:左对齐

TEXT_ALIGN_RIGHT:右对齐

TEXT_ALIGN_CENTER:中间对齐

填满整个width:

display.drawStringMaxWidth(0, 0, width,
                             "Lorem ipsum\n dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore." );

运行后,就会发现,整个屏幕都是字。

绘图相关函数:

画点:

display.setPixel(x, y);

画矩形:

display.drawRect(x,y, width, height);

画填充矩形

display.fillRect(x,y, width, height);

画水平线和垂直线:

display.drawHorizontalLine(x, y, width);
  display.drawVerticalLine(x, y, width);

画圆形:

display.drawCircle(x, y, r);

画进度条:

display.drawProgressBar(x1, y1, x2, y2, progress进度);

画xbm图片:

display.drawXbm(x, y, width, height, 图片变量数组);

总结

总的来说,ESP32 OLED是一个功功能强大的开发板,结合OLED屏幕和Adafruit SSD1306库,可以轻松显示信息。连接OLED屏幕和编写代码的过程可能需要一些技术技能,但是一旦环境搭建完毕并了解了相关函数,使用ESP32 OLED就变得非常简单。

请大家关注我,以后还会继续更新esp32的教程。

相关文章
|
IDE 物联网 开发工具
【史上最全面esp32教程】点灯大师篇
【史上最全面esp32教程】点灯大师篇
1844 0
|
监控 IDE 开发工具
【esp32c3配置arduino IDE教程】
设计用户操作界面,该设备具备简单易用的操作界面,外加显示屏SSD1306和旋转编码器进行显示和控制,用户后期可进行二次开发WiFi或蓝牙连接电脑或手机监控。
4529 0
|
9月前
|
芯片
MicroPython+ESP32 C3+ST7735S LCD屏 WIFI联网并显示时间
本案例基于ESP32 C3与ST7735S驱动的1.8寸TFT屏,实现WIFI连接显示、实时时间展示及中英文字符渲染。通过MicroPython驱动屏幕,支持自定义字库与彩色文字输出,适用于嵌入式图形显示应用。
1291 1
MicroPython+ESP32 C3+ST7735S LCD屏 WIFI联网并显示时间
VScode修改打开默认编码及自动匹配文件编码格式
VScode修改打开默认编码及自动匹配文件编码格式
7534 0
VScode修改打开默认编码及自动匹配文件编码格式
|
7月前
|
芯片 数据格式
STM32F103 驱动 WS281x 灯珠的三种方式详解(普通 IO / SPI+DMA / PWM+DMA)【开源免费】
本文详解STM32F103驱动WS281x灯珠的三种方法:普通IO模拟、SPI+DMA编码、PWM+DMA调占空比。对比时序精度、CPU占用与适用场景,推荐PWM+DMA为最优方案,并提供串口/CAN控制示例工程,助力高效实现LED控制。(239字)
STM32F103 驱动 WS281x 灯珠的三种方式详解(普通 IO / SPI+DMA / PWM+DMA)【开源免费】
|
机器学习/深度学习 人工智能 算法
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
本文介绍了如何使用 Python 和 YOLO v8 开发专属的 AI 视觉目标检测模型。首先讲解了 YOLO 的基本概念及其高效精准的特点,接着详细说明了环境搭建步骤,包括安装 Python、PyCharm 和 Ultralytics 库。随后引导读者加载预训练模型进行图片验证,并准备数据集以训练自定义模型。最后,展示了如何验证训练好的模型并提供示例代码。通过本文,你将学会从零开始打造自己的目标检测系统,满足实际场景需求。
14177 1
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
|
安全 Unix Linux
VMware Workstation 17.6.3 发布下载,现在完全免费无论个人还是商业用途
VMware Workstation 17.6.3 发布下载,现在完全免费无论个人还是商业用途
148089 65
|
Java
3D炫酷赛车游戏【附源码】设计实现
3D炫酷赛车游戏【附源码】设计实现
348 10
|
人工智能 算法 机器人
开源极客桌面机器人 Desk-Emoji
Desk-Emoji 是一款开源的实体 AI 桌面陪伴机器人,具备酷炫外观、流畅 Emoji 表情、双自由度云台及大模型语音聊天功能,支持手势识别和情绪反馈,适合 DIY 和二次开发,是性价比极高的桌面机器人。
4072 1
开源极客桌面机器人 Desk-Emoji