当前位置: 首页 > news >正文

【史上最全面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();//初始化UIdisplay.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的教程。

相关文章:

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

文章目录前言介绍及库下载基础使用引脚的连接使用函数总结前言 本节课主要讲的是OLED的基础使用。使用的oled为0.96寸&#xff0c;128*64。 大家的其他型号也是可以用的。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 介绍及库下载 oled的简介&…...

第十四届蓝桥杯三月真题刷题训练——第 21 天

目录 第 1 题&#xff1a;灭鼠先锋 问题描述 运行限制 代码&#xff1a; 思路&#xff1a; 第 2 题&#xff1a;小蓝与钥匙 问题描述 答案提交 运行限制 代码&#xff1a; 思路 : 第 3 题&#xff1a;李白打酒加强版 第 4 题&#xff1a;机房 第 1 题&#xff1…...

css绘制一个Pinia小菠萝

效果如下&#xff1a; pinia小菠萝分为头部和身体&#xff0c;头部三片叶子&#xff0c;菠萝为身体 头部 先绘制头部的盒子&#xff0c;将三片叶子至于头部盒子中 先绘制中间的叶子&#xff0c;利用border-radius实现叶子的效果&#xff0c;可以借助工具来快速实现圆角的预想…...

OpenCV入门(二十)快速学会OpenCV 19 对象测量

OpenCV入门&#xff08;二十&#xff09;快速学会OpenCV 19 对象测量1.对象测量2.多边形拟合3.计算对象中心作者&#xff1a;Xiou 1.对象测量 opencv 中对象测量包括&#xff1a; 如面积&#xff0c;周长&#xff0c;质心&#xff0c;边界框等。 弧长与面积测量&#xff1b; …...

TCP和UDP协议的区别?

是否面向连接&#xff1a; TCP 是面向连接的传输&#xff0c;UDP 是面向无连接的传输。 是否是可靠传输&#xff1a;TCP是可靠的传输服务&#xff0c;在传递数据之前&#xff0c;会有三次握手来建立连接&#xff1b;在数据传递时&#xff0c;有确认、窗口、重传、拥塞控制机制…...

【C语言蓝桥杯每日一题】——排序

【C语言蓝桥杯每日一题】—— 排序&#x1f60e;前言&#x1f64c;排序&#x1f64c;总结撒花&#x1f49e;&#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的座右铭&#xff1a;全神贯注的上吧&#xff01;&#xff01;&#xff01; &#x1f60a;作者简介&am…...

学校官网的制作

学校官网 代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>*{margin: 0;padding: 0;}.top{background-color: #3D3BB8;width: 100%;position: fixed;padding: 20px 0 12px 0;}.box{width…...

【云原生】k8s集群命令行工具kubectl之故障排除和调试命令

kubectl之故障排除和调试命令一、describe二、logs三、attach四、exec五、port-forward六、proxy七、cp八、debug8.1、案例1&#xff1a;共享进程空间8.2、案例2&#xff1a;更改启动命令、容器镜像8.3、案例3&#xff1a;调试节点8.4、其他一、describe 显示某个资源或某组资…...

AJAX,Axios,JSON简单了解

一. AJAX简介概念: AJAX(Asynchronous JavaScript And XML): 异步的JavaScript 和XMLAJAX作用:1.与服务器进行数据交换: 通过AJAX可以给服务器发送请求&#xff0c;并获取服务器响应的数据使用了AJAX和服务器进行通信&#xff0c;就可以使用 HTMLAJAX来替换JSP页面了2.异步交互…...

私域流量该如何打造?这套模式直接借鉴

梦龙商业案例分析&#xff0c;带你了解商业背后的秘密 古往今来&#xff0c;消费方与购买方的地位似乎就没有变过&#xff0c;消费者始终是处在被动接受的地位。 但到了现在&#xff0c;其实消费地位早已经不知不觉产生了改变。 就比如以前都是厂家有什么消费者买什么&#…...

【jenkins部署】一文弄懂自动打包部署(前后台)

这里写目录标题序言软件安装jdkmaven配置maven阿里镜像以及本地库位置git安装安装jenkins插件安装环境配置创建项目配置gitee生成gitee WebHookmaven打包验证是否打包成功连接远程服务器并重启服务远程服务器生成私钥配置ssh项目配置ssh脚本vue项目打包nodejs安装下载配置环境变…...

应届生投腾讯,被面试官问了8个和 ThreadLocal 相关的问题。

问&#xff1a;谈一谈ThreadLocal的结构。 ThreadLocal内部维护了一个ThreadLocalMap静态内部类&#xff0c;ThreadLocalMap中又维护了一个Entry静态内部类&#xff0c;和Entry数组。 Entry类继承弱引用类WeakReference&#xff0c;Entry类有一个有参构造函数&#xff0c;参数…...

Linux命令scp用法

本文主要讲的是scp用法如果哪里不对欢迎指出&#xff0c;主页https://blog.csdn.net/qq_57785602?typeblogscp 可以在win系统使用&#xff0c;本文百分之八十写的是win系统怎么使用&#xff0c;在本地上到服务器文件,从服务器下载文件到本地用工具连接到公司服务器时&#xff…...

数据质量怎么监控

目录 一、任务基线级别 二、任务级别 & 表级别 三、字段级别 1. 对指标字段的监控 2. 对维度字段的监控 四、报表级别监控 五、总结 跑了几场面试&#xff0c;数据质量怎么监控是经常被问到的问题&#xff0c;仅次于自我介绍。 因为数据行业发展了几年&#xff0c;数…...

.NET Core 实现Excel的导入导出

.NET Core 使用NPOI实现Excel的导入导出前言NPOI简介一、安装相对应的程序包1.1、在 “管理NuGet程序包” 中的浏览搜索&#xff1a;“NPOI”二、新建Excel帮助类三、调用3.1、增加一个“keywords”模型类&#xff0c;用作导出3.2、添加一个控制器3.3、编写导入导出的控制器代码…...

排好队,一个一个来:宫本武藏教你学队列(附各种队列源码)

文章目录前言&#xff1a;理解“队列”的正确姿势一个关于队列的小思考——请求处理队列的两大“护法”————顺序队列和链式队列数组实现的队列链表实现的队列循环队列关于开篇&#xff0c;你明白了吗&#xff1f;最后说一句前言&#xff1a; 哈喽&#xff01;欢迎来到黑洞晓…...

C语言--动态内存管理1

目录前言动态内存函数介绍mallocfreecallocrealloc常见的动态内存错误对NULL指针的解引用操作对动态开辟空间的越界访问对非动态开辟内存使用free释放使用free释放一块动态开辟内存的一部分对同一块动态内存多次释放动态开辟内存忘记释放&#xff08;内存泄漏&#xff09;对通讯…...

HTTPS 的工作原理

1、客户端发起 HTTPS 请求 这个没什么好说的&#xff0c;就是用户在浏览器里输入一个 https 网址&#xff0c;然后连接到 server 的 443 端口。 2、服务端的配置 采用 HTTPS 协议的服务器必须要有一套数字证书&#xff0c;可以自己制作&#xff0c;也可以向组织申请&#xf…...

游戏开发中建议使用半兰伯特光照

游戏开发中建议使用半兰伯特光照模型 在基本光照模型中求出漫反射部分的计算公式: 漫反射 = 入射光线的颜色和强度(c light) * 材质漫反射系数 (m diffuse)* 表面法线(n) * 其光源防线 (I) 在shader中为了不让 n和i的点乘结果为负数,即使用了saturate函数让值截取在[0,1]区…...

JavaScript到底如何存储数据?

1.var的迷幻操作 普遍的观点&#xff1a;JavaScript中的基本数据类型是保存在栈空间&#xff0c;而引用数据类型则是保存在堆空间里, 是否正确&#xff1f; 浏览器环境下JavaScript变量类型的运行实践结果: var a 10;console.log(a);console.log(window.a); console.log(wind…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...