ESP32 入门笔记04: 0.96寸OLED 显示屏 + u8g2库丝滑显示UI (ESP32 for Arduino IDE)

这篇具有很好参考价值的文章主要介绍了ESP32 入门笔记04: 0.96寸OLED 显示屏 + u8g2库丝滑显示UI (ESP32 for Arduino IDE)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


先导知识

  • ESP32 入门笔记01:开发板信息、开发环境搭建以及学资料准备
  • ESP32 入门笔记02: GPIO参考指南

在本例中,我们使用 I2C 通信协议。ESP32 中最适合 I2C 通信的引脚是通用输入输出接口 22(SCL) 和通用输入输出接口 21(SDA)

安装 SSD1306 OLED 库 – ESP32

(也可以用u8g2库,在Arduino IDE中可以搜索下载该库)

有几个库可用于使用 ESP32 控制 OLED 显示器。在本教程中,我们将使用两个 Adafruit 库:Adafruit_SSD1306 库和Adafruit_GFX 库。

下载库文件,解压在Arduino IDE安装的对应路径。
0.96oled显示屏动态显示,ESP32,单片机
0.96oled显示屏动态显示,ESP32,单片机

在您的 Arduino IDE 中,转到文件>示例> Adafruit SSD1306并选择您正在使用的显示器的示例。

0.96oled显示屏动态显示,ESP32,单片机

编译报错:libraries\Adafruit-GFX-Library-master\Adafruit_GrayOLED.h:30:32: fatal error: Adafruit_I2CDevice.h: No such file or directory为开发板 ESP32 Dev Module 编译时出错。

解决方法:如果使用较早版本的 Arduino IDE1.8.10 之前,请找到并安装 Adafruit_BusIO,较新版本会自动处理此先决条件。
Adafruit_BusIO 库和Adafruit_EPD库。


如果您的 OLED 模块没有 RESET 引脚,则应将 OLED_RESET 变量设置为 -1,如下所示:

#define OLED_RESET     -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32

再次遇到问题: OLED 显示屏没有显示任何内容。

0.96oled显示屏动态显示,ESP32,单片机

  • 检查 OLED 显示屏是否正确连接到 ESP32
  • 仔细检查 OLED 显示 I2C 地址:在 OLED 连接到 ESP32 的情况下,上传以下代码并在串行监视器中检查 I2C 地址
    如有必要,您应该更改以下行中的 OLED 地址。在我们的例子中,地址是 0x3C
/*********
  Rui Santos
  Complete project details at https://randomnerdtutorials.com  
*********/

#include <Wire.h>
 
void setup() {
  Wire.begin();
  Serial.begin(115200);
  Serial.println("\nI2C Scanner");
}
 
void loop() {
  byte error, address;
  int nDevices;
  Serial.println("Scanning...");
  nDevices = 0;
  for(address = 1; address < 127; address++ ) {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    if (error == 0) {
      Serial.print("I2C device found at address 0x");
      if (address<16) {
        Serial.print("0");
      }
      Serial.println(address,HEX);
      nDevices++;
    }
    else if (error==4) {
      Serial.print("Unknow error at address 0x");
      if (address<16) {
        Serial.print("0");
      }
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0) {
    Serial.println("No I2C devices found\n");
  }
  else {
    Serial.println("done\n");
  }
  delay(5000);          
}

0.96oled显示屏动态显示,ESP32,单片机

完成以上操作后,将ssd1306_128x64_i2c示例编译上传到ESP32开发板中,上传过程中按住BOOT按键或者RST按键,直到上传成功。程序上传完毕后,单击RST重启开发板即可看见OLED屏幕显示的动画。

注意:上传程序的时候需要拔掉OLED模块的电源,不然也有可能上传失败,报错信息Warning: Could not auto-detect Flash size (FlashID=0xffffff, SizeID=0xff), defaulting to 4MB Compressed 8192 bytes to 47...


Adafruit OLED 库提供了有用的方法来轻松滚动文本:

  • startscrollright(0x00, 0x0F): 从滚动文本
  • startscrollleft(0x00, 0x0F): 从右到左滚动文本
  • startscrolldiagright(0x00, 0x07): 将文本从左下角滚动到右上角
  • startscrolldiagleft(0x00, 0x07): 将文本从右下角滚动到左上角
#include <Wire.h> // 使用 I2C 的库
#include <Adafruit_GFX.h> //Adafruit 库写入显示器
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // 使用的是 128×64 OLED 显示屏
#define SCREEN_HEIGHT 64 // 

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
//  I2C 通信协议
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);// (-1) 参数表示您的 OLED 显示器没有 RESET 引脚

void testscrolltext(void); //函数声明


void setup() {
  Serial.begin(115200);//115200 的波特率初始化串行监视器以进行调试

  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))  0x3d 0x3c  0x78 0x7A // Address 0x3D for 128x64
   { 
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }
  delay(2000);
  display.clearDisplay();// 清除显示
  display.setTextSize(2);// 设置文本大小
  display.setTextColor(WHITE);// 设置文本颜色
  display.setCursor(0, 30);//设置显示坐标
  // Display static text
  display.println("naiva");// 
  display.display(); // 屏幕上实际显示文本
}

 

void loop() {
//  //testscrolltext();
//  display.clearDisplay();
//  display.setTextSize(1); // 
//  display.setTextColor(WHITE);
//  display.setCursor(10, 0);
//  display.println(F("naiva"));
//  display.display();      //
  delay(100);
  display.startscrollright(0x00, 0x0F);//  从左到右滚动文本
  delay(4000);
  display.stopscroll();// 停止滚动
  delay(1000);
  display.startscrollleft(0x00, 0x0F);//  从右到左滚动文本
  delay(4000);
  display.stopscroll();
  delay(1000);
}

void testscrolltext(void) {
  display.clearDisplay();

  display.setTextSize(2); // Draw 2X-scale text
  display.setTextColor(WHITE);
  display.setCursor(10, 0);
  display.println(F("NAIVA415"));
  display.display();      // Show initial text
  delay(100);

  // Scroll in various directions, pausing in-between:
  display.startscrollright(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1000);
  display.startscrollleft(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1000);
  display.startscrolldiagright(0x00, 0x07);
  delay(2000);
  display.startscrolldiagleft(0x00, 0x07);
  delay(2000);
  display.stopscroll();
  delay(1000);
}



在 OLED 中显示位图图像

0.96oled显示屏动态显示,ESP32,单片机

您可以在 OLED 显示屏上显示 128×64 位图单色图像。

首先,使用成像程序调整照片或图片的大小并将其保存为单色位图。如果您使用的是 Windows PC,则可以使用 Paint。

0.96oled显示屏动态显示,ESP32,单片机

0.96oled显示屏动态显示,ESP32,单片机

然后,使用 Image to C Array 转换软件(LCD Image Converter)将图像转换为数组。 运行程序并从新图像开始。转到 Image > Import并选择您之前创建的位图图像。

转至Options > Conversion,然后在准备选项卡中,选择以下选项:

  • Type: Monochrome, Threshold Dither
  • Main Scan Direction: Top to Bottom
  • Line Scan Direction: Forward

0.96oled显示屏动态显示,ESP32,单片机

Go to the Image tab and select the following options:

0.96oled显示屏动态显示,ESP32,单片机

然后,单击 OK。最后,在主菜单中,转到File > Convert。应保存一个带有.c扩展名的新文件。该文件包含图像的 C 数组。使用文本编辑器打开该文件,然后复制数组。

在我们的例子中,这是我们得到的数组:

static const jamesharden[1024] = {
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xf8, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0x80, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 
    0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xdf, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 
    0xff, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0x1f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0xff, 
    0xff, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x7f, 0xff, 
    0xff, 0xff, 0xf0, 0x7f, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x3f, 0xff, 
    0xff, 0xff, 0xe0, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x0f, 0xff, 
    0xff, 0xff, 0xc1, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x07, 0xff, 
    0xff, 0xff, 0x81, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x03, 0xff, 
    0xff, 0xff, 0x03, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x01, 0xff, 
    0xff, 0xfe, 0x07, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xff, 
    0xff, 0xfc, 0x07, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7f, 
    0xff, 0xf8, 0x0f, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7f, 
    0xff, 0xf0, 0x0f, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3f, 
    0xff, 0xe0, 0x0f, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3f, 
    0xff, 0xc0, 0x1f, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0x80, 0x38, 0x00, 0x00, 0x00, 0x1f, 
    0xff, 0x80, 0x1f, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x80, 0xfc, 0x00, 0x00, 0x00, 0x1f, 
    0xff, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x1f, 
    0xfe, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0xfe, 0x00, 0x00, 0x00, 0x0f, 
    0xfc, 0x00, 0x3f, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfe, 0x00, 0x00, 0x00, 0x0f, 
    0xf8, 0x00, 0x3f, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x0f, 
    0xf8, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xf8, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xf0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xf0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xe0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xe0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xf0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xf0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xf8, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xf8, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x0f, 
    0xf8, 0x00, 0x3f, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x0f, 
    0xfc, 0x00, 0x3f, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfe, 0x00, 0x00, 0x00, 0x0f, 
    0xfe, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0xfe, 0x00, 0x00, 0x00, 0x0f, 
    0xff, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x1f, 
    0xff, 0x80, 0x1f, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x80, 0xfc, 0x00, 0x00, 0x00, 0x1f, 
    0xff, 0xc0, 0x1f, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0x80, 0x38, 0x00, 0x00, 0x00, 0x1f, 
    0xff, 0xe0, 0x0f, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3f, 
    0xff, 0xf0, 0x0f, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3f, 
    0xff, 0xf8, 0x07, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7f, 
    0xff, 0xfc, 0x07, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7f, 
    0xff, 0xfe, 0x07, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xff, 
    0xff, 0xff, 0x03, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x01, 0xff, 
    0xff, 0xff, 0x81, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x03, 0xff, 
    0xff, 0xff, 0xc1, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x07, 0xff, 
    0xff, 0xff, 0xe0, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x0f, 0xff, 
    0xff, 0xff, 0xf0, 0x7f, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x3f, 0xff, 
    0xff, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x7f, 0xff, 
    0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0x1f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0xff, 
    0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0x80, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);// -1 
static const uint8_t jamesharden[1024] = {
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xf8, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0x80, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 
    0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xdf, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 
    0xff, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0x1f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0xff, 
    0xff, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x7f, 0xff, 
    0xff, 0xff, 0xf0, 0x7f, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x3f, 0xff, 
    0xff, 0xff, 0xe0, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x0f, 0xff, 
    0xff, 0xff, 0xc1, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x07, 0xff, 
    0xff, 0xff, 0x81, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x03, 0xff, 
    0xff, 0xff, 0x03, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x01, 0xff, 
    0xff, 0xfe, 0x07, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xff, 
    0xff, 0xfc, 0x07, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7f, 
    0xff, 0xf8, 0x0f, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7f, 
    0xff, 0xf0, 0x0f, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3f, 
    0xff, 0xe0, 0x0f, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3f, 
    0xff, 0xc0, 0x1f, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0x80, 0x38, 0x00, 0x00, 0x00, 0x1f, 
    0xff, 0x80, 0x1f, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x80, 0xfc, 0x00, 0x00, 0x00, 0x1f, 
    0xff, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x1f, 
    0xfe, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0xfe, 0x00, 0x00, 0x00, 0x0f, 
    0xfc, 0x00, 0x3f, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfe, 0x00, 0x00, 0x00, 0x0f, 
    0xf8, 0x00, 0x3f, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x0f, 
    0xf8, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xf8, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xf0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xf0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xe0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xe0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xf0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xf0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xf8, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x07, 
    0xf8, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x0f, 
    0xf8, 0x00, 0x3f, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x0f, 
    0xfc, 0x00, 0x3f, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x07, 0xfe, 0x00, 0x00, 0x00, 0x0f, 
    0xfe, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0xfe, 0x00, 0x00, 0x00, 0x0f, 
    0xff, 0x00, 0x1f, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x1f, 
    0xff, 0x80, 0x1f, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x80, 0xfc, 0x00, 0x00, 0x00, 0x1f, 
    0xff, 0xc0, 0x1f, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0x80, 0x38, 0x00, 0x00, 0x00, 0x1f, 
    0xff, 0xe0, 0x0f, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3f, 
    0xff, 0xf0, 0x0f, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3f, 
    0xff, 0xf8, 0x07, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7f, 
    0xff, 0xfc, 0x07, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7f, 
    0xff, 0xfe, 0x07, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xff, 
    0xff, 0xff, 0x03, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x01, 0xff, 
    0xff, 0xff, 0x81, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x03, 0xff, 
    0xff, 0xff, 0xc1, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x07, 0xff, 
    0xff, 0xff, 0xe0, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x0f, 0xff, 
    0xff, 0xff, 0xf0, 0x7f, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x3f, 0xff, 
    0xff, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x7f, 0xff, 
    0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0x1f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x01, 0xff, 0xff, 
    0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0x80, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 
    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};
 
void setup() {
  Serial.begin(115200);
 // 0x3C IIC地址
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }
  delay(2000); // Pause for 2 seconds
 
  // Clear the buffer.
  display.clearDisplay();
  
  // Draw bitmap on the screen
  display.drawBitmap(0, 0, jamesharden, 128, 64, 1);
  display.display();
}
 
void loop() {
  
}

资料下载:

  • ESP32 for Arduino IDE:0.96寸OLED 显示屏 资料(2022.4.15)

参考资料:

  • [1] ESP32 OLED Display with Arduino IDE

Mixly米思齐 Micropyton[ESP32 Generic] 下载程序是要比Arduino IDE 快很多,但是米思齐的限制也很多,OLED屏幕显示的字体大小,还有特殊符号显示都很麻烦,很受限制。

0.96oled显示屏动态显示,ESP32,单片机

0.96oled显示屏动态显示,ESP32,单片机
资料下载:Mixly米思齐 Micropython 0.96oled显示库文件和Mixly显示实验源程序


2022.11.14 更新

OLED丝滑菜单

#include <U8g2lib.h>
#include <Wire.h>
#include <math.h>
const uint8_t sanlian[] U8X8_PROGMEM  = 
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0xE0,
0x07,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,
0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0xFC,
0x7F,0x00,0x00,0x00,0x00,0xF0,0x01,0x00,
0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x01,0x00,0x00,0x00,0xF8,0x01,0x00,
0x00,0x00,0x7F,0x00,0x00,0x00,0xC0,0xFF,
0xFF,0x03,0x00,0x00,0x00,0xF8,0x03,0x00,
0x00,0x00,0x7F,0x00,0x00,0x00,0xE0,0xFF,
0xFF,0x07,0x00,0x00,0x00,0xFC,0x03,0x00,
0x00,0x00,0x7F,0x00,0x00,0x00,0xF0,0xFF,
0xFF,0x1F,0x00,0x00,0x00,0xFC,0x03,0x00,
0x00,0x80,0x7F,0x00,0x00,0x00,0xF8,0x01,
0x00,0x1F,0x00,0x00,0x00,0xFC,0x07,0x00,
0x00,0x80,0x7F,0x00,0x00,0x00,0xFC,0x00,
0x00,0x3F,0x00,0x00,0x00,0xFE,0x0F,0x00,
0x00,0xC0,0x7F,0x00,0x00,0x00,0xFC,0x00,
0x00,0x7F,0x00,0x00,0x00,0xFF,0x1F,0x00,
0x00,0xE0,0x7F,0x00,0x00,0x00,0xFE,0x7F,
0xFC,0x7F,0x00,0x00,0xC0,0xFF,0x3F,0x00,
0x00,0xF8,0x7F,0x00,0x00,0x00,0xFE,0x7F,
0xFC,0xFF,0x00,0x00,0xFE,0xFF,0xFF,0x0F,
0xF0,0xF8,0xFF,0xFF,0x01,0x00,0xFE,0x1F,
0xF0,0xFF,0x00,0xC0,0xFF,0xFF,0xFF,0x7F,
0xFC,0xF8,0xFF,0xFF,0x07,0x00,0xFF,0x07,
0xC0,0xFF,0x00,0xE0,0xFF,0xFF,0xFF,0x7F,
0xFC,0xF8,0xFF,0xFF,0x07,0x00,0xFF,0x01,
0x80,0xFF,0x01,0xC0,0xFF,0xFF,0xFF,0x7F,
0xFE,0xF8,0xFF,0xFF,0x07,0x00,0xFF,0x41,
0x00,0xFF,0x01,0xC0,0xFF,0xFF,0xFF,0x3F,
0xFE,0xF8,0xFF,0xFF,0x07,0x00,0xFF,0x70,
0x0C,0xFE,0x01,0x80,0xFF,0xFF,0xFF,0x1F,
0xFE,0xF8,0xFF,0xFF,0x07,0x00,0x7F,0x78,
0x3C,0xFE,0x01,0x00,0xFF,0xFF,0xFF,0x0F,
0xFE,0xF8,0xFF,0xFF,0x07,0x00,0x7F,0x7C,
0x3C,0xFC,0x01,0x00,0xFE,0xFF,0xFF,0x07,
0xFE,0xF8,0xFF,0xFF,0x07,0x00,0x7F,0x7C,
0x3C,0xFC,0x01,0x00,0xFC,0xFF,0xFF,0x03,
0xFE,0xF8,0xFF,0xFF,0x03,0x00,0x7F,0x7C,
0x7C,0xFC,0x01,0x00,0xF8,0xFF,0xFF,0x03,
0xFE,0xF8,0xFF,0xFF,0x03,0x00,0x7F,0x7C,
0x7C,0xFC,0x01,0x00,0xF0,0xFF,0xFF,0x01,
0xFE,0xF8,0xFF,0xFF,0x03,0x00,0x7F,0x7C,
0x7C,0xFC,0x00,0x00,0xF0,0xFF,0xFF,0x01,
0xFE,0xF8,0xFF,0xFF,0x03,0x00,0x7E,0x7C,
0x7C,0xFC,0x00,0x00,0xF0,0xFF,0xFF,0x00,
0xFE,0xF8,0xFF,0xFF,0x01,0x00,0xFE,0x7F,
0xFC,0xFF,0x00,0x00,0xF0,0xFF,0xFF,0x00,
0xFE,0xF8,0xFF,0xFF,0x01,0x00,0xFE,0x7F,
0xFC,0x7F,0x00,0x00,0xF0,0xFF,0xFF,0x00,
0xFE,0xF8,0xFF,0xFF,0x01,0x00,0xFC,0x7F,
0xFC,0x7F,0x00,0x00,0xF0,0xFF,0xFF,0x00,
0xFE,0xF8,0xFF,0xFF,0x01,0x00,0xFC,0x7F,
0xFC,0x3F,0x00,0x00,0xF0,0xFF,0xFF,0x00,
0xFE,0xF8,0xFF,0xFF,0x00,0x00,0xF8,0x7F,
0xFC,0x1F,0x00,0x00,0xF0,0xFF,0xFF,0x01,
0xFE,0xF8,0xFF,0xFF,0x00,0x00,0xF0,0xFF,
0xFF,0x1F,0x00,0x00,0xF0,0xFF,0xFF,0x01,
0xFC,0xF8,0xFF,0x7F,0x00,0x00,0xE0,0xFF,
0xFF,0x0F,0x00,0x00,0xF8,0x0F,0xFF,0x01,
0xFC,0xF8,0xFF,0x3F,0x00,0x00,0xC0,0xFF,
0xFF,0x03,0x00,0x00,0xF8,0x03,0xFC,0x01,
0xF8,0xF8,0xFF,0x1F,0x00,0x00,0x00,0xFF,
0xFF,0x01,0x00,0x00,0xF8,0x01,0xF0,0x01,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,
0x7F,0x00,0x00,0x00,0x70,0x00,0xC0,0x01,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
// U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);//该驱动是1.3寸的OLED屏幕。
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
uint8_t ui_disapper(void)
{
  static short disapper_temp = 0; // 0 ~8  消失时右移的位数
  int len = 8 * u8g2.getBufferTileHeight() * u8g2.getBufferTileWidth(); // len = 1024 , 8 * 8 * 16
  uint8_t *p = u8g2.getBufferPtr(); // 1bye = 8bit  即 1111 1111
  uint8_t return_flag = 0;
  // Serial.println("len:" + String(len));
  // delay(2000);
  for( int i = 0;i< len ;i++)
  {
    p[i] = p[i] & (rand()%0xff) >> disapper_temp;   // 随机与清除掉一些像素,呈现像素的颗粒感 假如p[1024]=8bit=1111 1111  0xff=8bit=1111 1111  
    // p[i] = p[i]  >> disapper_temp;  // p[i] = 1111 1111 >> 2 ,即0011 1111 1是点亮像素 0是熄灭像素
    // Serial.println("P"+String(i)+"="+ String(p[i])); // p[0]~p[1024] 整个屏幕每一个像素点都要右移 0位 2位 4位 6位 8位 共右移5次屏幕才完全消失
    // delay(30);
  }
  disapper_temp +=2;
  if(disapper_temp > 8)
  {
      return_flag = 1;
      disapper_temp = 0;
      // Serial.println("右移消失完毕");
  }
  return return_flag ? 0 : 1;
}
uint8_t ui_come(void)
{
    static short come_temp = 8;     // 8 ~ 0 显示时左移的位数
    int len = 8 * u8g2.getBufferTileHeight() * u8g2.getBufferTileWidth();
    uint8_t *p = u8g2.getBufferPtr();
    uint8_t return_flag = 0;
    for( int i = 0;i< len ;i++)
    {
        p[i] = p[i] & (rand()%0xff) >> come_temp;
        // p[i] = p[i]  >> come_temp;    // 右移8位 6 位 4 位 2位 0位

    }
    come_temp -=2;
    if(come_temp < 0)
    {
        return_flag = 1;
        come_temp = 8;
        // Serial.println("右移显示完毕");
    }
    return return_flag ? 0 : 1;
}

void setup(void) 
{
 	// pinMode(2, INPUT_PULLUP);
  // pinMode(3, INPUT_PULLUP);
  Serial.begin(9600);
  u8g2.begin();
  u8g2.setFont(u8g2_font_t0_22_mf ); //设置字体
}

void loop(void) 
{
  static uint8_t flag = 0;
  static uint8_t stop_flag = 0;
  u8g2.clearBuffer();                  // 清除内部缓冲区
  u8g2.drawXBMP(0,20,128,36,sanlian);  // 第一段输出位置   
  if(flag==1)
  {
    if(ui_disapper() == 0)
    { 
      // Serial.println("消失完毕");
      flag = 0;
    }
  }
  else// flag = 0 先显示 后消失
  {
    if(ui_come() == 0)
    {        
      // Serial.println("显示完毕"); 
      flag = 1;
      stop_flag = 1;   // 暂停1秒的flag

    }
  }
  u8g2.sendBuffer();          // transfer internal memory to the displa
  if(stop_flag == 1)
  {
    stop_flag = 0;
    delay(1000); // 暂停一秒
  }
}

资料下载:

  • [1] OLED丝滑菜单教程(四)(完结)

  • [2] 原B站up的:https://wokwi.com/projects/347732159306400339

  • [2] 我个人修改的:https://wokwi.com/projects/348289411291546195文章来源地址https://www.toymoban.com/news/detail-804490.html


到了这里,关于ESP32 入门笔记04: 0.96寸OLED 显示屏 + u8g2库丝滑显示UI (ESP32 for Arduino IDE)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32F103硬件IIC控制4针0.96寸OLED显示屏

    OLED使用的0.96寸四针屏幕,以下直接看实际操作。 使用PCtoLCD2002软件提取OLED字模。 注意红色方框的选项内容,不要选错了,选错会导致烧录程序后无法显示。 此为硬件IIC,如果使用过我的模拟IIC控制程序可直接看 void OLED_Write_Command(unsigned char IIC_Command); void OLED_Write_Data(unsig

    2024年02月02日
    浏览(24)
  • STM32F103模拟IIC控制4针0.96寸OLED显示屏

    OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为

    2023年04月24日
    浏览(20)
  • STM32F103硬件SPI控制6针/7针0.96寸OLED显示屏

    OLED主要参数 1、高分辨率:128 64(和12864LCD相同分辨率,但该OLED屏的单位面积像素点多)。 2、广可视角度:大于160°。 3、低功耗:正常显示时0.04W。 4、宽供电范围:直流3.3V-5V。 5、工业级:工作温度范围-30°℃~70°℃。 6、体积小:28.8mm 28.5mm。 7、通信方式:lIC、SPI。 8、亮

    2024年02月17日
    浏览(46)
  • STM32F103模拟SPI控制6针/7针0.96寸OLED显示屏

    OLED主要参数 1、高分辨率:128 64(和12864LCD相同分辨率,但该OLED屏的单位面积像素点多)。 2、广可视角度:大于160°。 3、低功耗:正常显示时0.04W。 4、宽供电范围:直流3.3V-5V。 5、工业级:工作温度范围-30°℃~70°℃。 6、体积小:28.8mm 28.5mm。 7、通信方式:lIC、SPI。 8、亮

    2024年02月04日
    浏览(51)
  • 0.96寸 4针 OLED显示屏模块学习笔记(基于89C52单片机)

    一,OLED简介:(学习本模块之前建议先把IIC,SPI通信协议提前了解) OLED,即有机发光二极管( Organic Light Emitting Diode )。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,

    2023年04月08日
    浏览(19)
  • 0.96寸OLED显示屏介绍

    OLED显示屏简介       OLED,即有机发光二极管(Organic Light Emitting Diode)。OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。

    2024年03月25日
    浏览(69)
  • 【mcuclub】0.96寸oled显示屏

     proteus8.9版本中没有OLED,通常用LCD12864模拟代替,而proteus8.13中有OLED,大家有兴趣可以下载测试 OLED(Organic Light-Emitting Diode),又称为有机电激光显示、有机发光半导体。OLED显示技术具有自发光的特性,采用非常薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料

    2024年03月28日
    浏览(23)
  • 0.96寸OLED显示屏文字取模和图片取模教程

    目录 1、文字取模 2、图片取模         第一种、PCtoLCD2002         第二种、Img2Lcd(个人推荐)  总结 资源见本章最底部         打开取模软件,如下图所示:          设置相关选项          可设置汉字宽高,如下图所示:          开始生成汉字C数组,如下图

    2024年02月06日
    浏览(24)
  • STM32+7针脚0.96OLED屏显示数字汉字符号英文(入门级)

    本文即做单纯的简单使用介绍说明,基于stm32t103函数库,采用GPIO口模拟的通信协议方式。 在OLED屏上显示字符以及汉字。 源码获取:链接:https://pan.baidu.com/s/1D6lk-fRq64gJILgeDBd2rQ?pwd=qng5  提取码:qng5 目录 一、OLED屏介绍 二、硬件接线说明 三、软件代码介绍 1、驱动代码 2、OL

    2024年04月14日
    浏览(27)
  • stm32实现0.96oled图片显示,菜单功能

    本期内容,我们将学习0.96寸oled的进阶使用,展示图片,实现菜单切换等功能,关于oled的基础内容,这里我不做介绍,大家可以学习 : 夜深人静学32系列17——OLED ,里面讲述了oled的基本知识并实现了一个简单页面的编写。 这个菜单一共有三个等级, 一级菜单:原神启动界

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包