首页 > 其他分享 >【史上最全面esp32教程】oled显示篇

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

时间:2023-08-05 22:31:52浏览次数:44  
标签:SCL 教程 esp32 oled width OLED 屏幕 display

@TOC


前言

本节课主要讲的是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的教程。

标签:SCL,教程,esp32,oled,width,OLED,屏幕,display
From: https://blog.51cto.com/u_16176403/6978793

相关文章

  • 无涯教程-Perl - abs函数
    描述此函数返回其参数的绝对值。如果传递了纯整数值,则它将按原样返回它,但是如果传递了字符串,则它将返回零。如果省略VALUE,则使用$_语法以下是此函数的简单语法-absVALUEabs返回值此函数返回其参数的绝对值。例以下是显示其基本用法的示例代码-#!/usr/bin/perl......
  • 无涯教程-Perl - last 语句函数
    当在循环内遇到last语句时,循环立即终止,程序控制在循环后的下一条语句处恢复。您可以为LABEL提供最后一个语句,其中LABEL是循环的标签。last语句可以在嵌套循环内使用,如果未指定LABEL,则该语句将适用于最近的循环。last-语法last[LABEL];last-流程图last-示例#!/us......
  • 传奇服务端架设-服务端程序启动教程
    进入D:\mirserver目录运行IGE引擎提供的游戏控制台GameCenter.exe单击“配置向导”选项卡游戏服务端所在目录!:\MirServer游戏数据库名称:HERODB  这就数据库名字就是我们在1.4节讲到的数据库名游戏服务器名称:服务器的名字,会在进入游戏时,和游戏窗口标题栏显示游戏服务器外网......
  • 无涯教程-Perl - redo语句函数
    redo命令重新启动循环块,而无需再次判断条件。您可以提供带有redo语句的LABEL,其中LABEL是循环的标签。redo语句可以在嵌套循环中使用,如果未指定LABEL,则该语句将适用于最近的循环。redo-语法redo[LABEL]redo-流程图redo-示例以下程序显示了redo语句的用法-#/......
  • python系列教程211——map
    声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值......
  • 无涯教程-Perl - do...while 语句函数
    与for和while循环不同,它在循环的顶部测试循环条件,而do...while循环在以下位置检查其条件:循环的底部。do...while循环与while循环相似,除了保证do...while循环至少执行一次。do...while-语法do{statement(s);}while(condition);应当注意,条件表达式出......
  • 无涯教程-Perl - 嵌套循环函数
    一个循环可以嵌套在另一个循环中,Perl允许嵌套所有要嵌套的循环。nestedloops-语法Perl中嵌套for循环语句的语法如下-for(init;condition;increment){for(init;condition;increment){statement(s);}statement(s);}Perl中嵌套while循环语......
  • 服务端apk打包教程
    本文我将给大家介绍一个apk打包工具VasDolly的使用介绍、原理以及如何在服务端接入VasDolly进行服务端打渠道包操作。使用介绍VasDolly是一个快速多渠道打包工具,同时支持基于V1和V2签名进行多渠道打包。插件本身会自动检测Apk使用的签名类别,并选择合适的多渠道打......
  • 通达信指标使用教程
      通达信指标使用教程 作者:深海游鱼 QQ:396068801 日期:2023年8月 目录1.通达信版本2.电脑端2.1.导入指标2.2.应用主图指标2.3.选股操作3.手机端3.1.导入指标3.2.主图应用3.3.选股方法4.教程结束 1. 通达信版本当前使用的版本:V7.602  ......
  • 无涯教程-Perl - foreach 语句函数
    foreach循环遍历列表值,并将控制变量(var)依次设置为列表的每个元素-foreach-语法Perl编程语言中的foreach循环的语法是-foreachvar(list){...}foreach-流程图foreach-示例#!/usr/local/bin/perl@list=(2,20,30,40,50);#foreachloopexecutionf......