本帖最后由 Maker_kun 于 2024-5-23 21:36 编辑
一、OLED概述
OLED(有机发光二极管)是一种先进的显示技术,具有许多显著的优势和特点。以下是关于OLED的详细介绍:
OLED屏幕的工作原理是在两电极之间夹上有机材料层,这些材料在通过电流时会自发光。每个像素都可以独立控制,因此OLED屏幕能够实现更深的黑色和更高的对比度。
-
优点:
- 响应速度:OLED屏幕具有更快的响应速度,适用于观看高速视频和玩游戏等场景。
- 对比度:OLED屏幕在显示黑色时只需关闭相应的像素,而不需要背光,因此能够实现更高的对比度。
- 可视角度:OLED屏幕的可视角度更广,用户在不同角度观看时都能获得良好的显示效果。
- 厚度和柔性:由于OLED屏幕结构简单,不需要背光层,因此可以做到更薄甚至是柔性。
- 功耗:OLED屏幕在显示黑色时几乎不消耗电力,因此整体功耗较低。
- 色域和亮度:OLED屏幕通常具有更大的色域和更高的亮度,带来更加鲜艳清晰的色彩表现。
OLED技术广泛应用于智能手机、智能穿戴设备、电视和其他移动终端设备。其中,智能手机是最大的OLED应用领域,占比达到73%。
OLED市场规模持续增长,预计2024年将达到516.3亿美元,并在2029年进一步扩大到959.3亿美元。中国OLED产业也在快速发展,产能不断提升,市场份额逐步逼近国际巨头如三星。
OLED技术未来的发展趋势包括更大尺寸的屏幕、更高分辨率(如8K)、以及更多的创新应用,如柔性显示和透明OLED屏幕。此外,随着技术的进步和成本的降低,OLED屏幕将在更多设备中得到广泛应用。
综上所述,OLED技术以其独特的优势和广泛的应用前景,正在逐步成为显示技术的主流方案。
二、esp32驱动0.96OLED
怎么简单怎么来,程序月简单越好
首先下载驱动库:esp32驱动0.96OLED,打开arduino库管理,搜索SSD1306,找到ESP8266 and ESP32 OLED driver for SSD1306 displays安装即可
代码如下:
/*
安装库
ESP8266 and ESP32 OLED driver for SSD1306 displays@4.3.0
*/
#include <Wire.h>
#include "SSD1306.h"
SSD1306 display(0x3c, SCL, SDA);
void setup() {
display.init();//初始化
display.setFont(ArialMT_Plain_16);//设置字体
display.drawString(0, 0, "Hello World");//显示字符串
display.display();//显示
}
void loop() {
}
三、下载编译
参考案例:https://blog.csdn.net/weixin_42854045/article/details/127310228
四、显示电压参数
/* 使用0.96寸的OLED屏幕需要使用包含这个头文件 */
#include "SSD1306Wire.h"
#include <Battery.h>
Battery battery(3400, 4200, 0, 12);
/* 设置oled屏幕的相关信息 */ //有一些引脚接口不支持I2C
const int I2C_ADDR = 0x3c; // oled屏幕的I2c地址
#define SDA_PIN SDA //
#define SCL_PIN SCL //
/* 新建一个oled屏幕对象,需要输入IIC地址,SDA和SCL引脚号 */
SSD1306Wire oled(I2C_ADDR, SDA_PIN, SCL_PIN);
//测试屏幕显示
void drawRect(void) {
for (int16_t i=0; i<oled.getHeight()/2; i+=2) {
oled.drawRect(i, i, oled.getWidth()-2*i, oled.getHeight()-2*i);
oled.display();
delay(50);
}
}
void setup() {
Serial.begin(115200); //串口频率
analogReadResolution(12); // switches ADC resolution to 12 bits
battery.begin(4200, 2, &asigmoidal);
// put your setup code here, to run once:
/* oled屏幕初始化 */
oled.init();
oled.flipScreenVertically(); // 设置屏幕翻转
oled.setContrast(255); // 设置屏幕亮度
drawRect(); // 测试屏幕显示
oled.clear(); oled.display(); // 清除屏幕
}
void loop() {
float h = 3;
float t = 4;
// put your main code here, to run repeatedly:
/* 显示字母 */
oled.setFont(ArialMT_Plain_16); // 设置字体
oled.clear(); oled.display();
oled.drawString(0,0, "Voltage:" +String(battery.voltage())+"mV"); // 将要显示的字母写入缓存
oled.drawString(0,20, "POWER:"+String(battery.level())+"%"); // 将要显示的字母写入缓存
oled.display(); // 将缓存里的文字在屏幕上显示
}
效果展示: