
基于Arduino的ESP32-S3 + 1.3寸OLED(4pin)
发布日期:2025-03-28 00:42:30
浏览次数:7
分类:精选文章
本文共 2427 字,大约阅读时间需要 8 分钟。
前言
随着物联网技术的快速发展,OLED显示屏凭借其高对比度、低功耗等优势,在嵌入式开发中应用广泛。本文以ESP32-S3-DevKitC-1开发板为例,详细叙述了从硬件连接到代码实现的完整驱动方案。与传统的0.96寸SH1106方案相比,本文采用1.3寸SH1306,在保持相同分辨率(128x64)的同时,显著增加了可视面积,适合显示更多信息。
硬件准备
硬件对比
接线示意:
GND - GND VCC - 3.3V / 5V SCL - GPIO21 SDA - GPIO47驱动实现
开发环境配置
#include
#include #include #define SDA 47#define SCL 21 代码示例:
SH1106Wire display(0x3C, SDA, SCL);
引脚定义
代码示例:
#define SDA 47#define SCL 21
I2C地址扫描
注意事项:
#define SDA_PIN 47#define SCL_PIN 21void setup() { Serial.begin(9600); Wire.begin(SDA PIN, SCL PIN);}void loop() { scanI2CDevices(); delay(5000);}void scanI2CDevices() { byte error = 0; int foundDevices = 0; for (byte address = 1; address <= 0x7F; address++) { if (!Wire.beginTransmission(address)) { error = Wire.endTransmission(); if (error != 0) break; } error = Wire.endTransmission(); if (error == 0) { Serial.printf("发现设备:0x%02X\n", address); foundDevices++; } } Serial.printf("共发现%d个设备\n", foundDevices);}
完整驱动代码
代码示例:
#include
#include #define SDA 47#define SCL 21SH1106Wire display(0x3C, SDA, SCL);void oledbegin() { if (!display.init()) { Serial.println("OLED初始化失败"); while(1) delay(100); } display.flipScreenVertically(); display.clear(); display.setFont(&ArialMT_Plain_10);}void displaysensor() { display.drawString(0, 0, "Hello World"); display.drawString(0, 10, "oled"); display.drawString(0, 20, "电磁阀"); display.display();}void displayTemp() { float temp = 0.0; display.drawString(0, 20, String(temp) + "℃"); display.display();}void setup() { Serial.begin(9600); oledbegin();}void loop() { displaysensor(); displayTemp();} 关键函数解析
display.init(); // 初始化屏幕并检测通信状态display.flipScreenVertically(); // 实现180度屏幕旋转display.setFont(&ArialMT_Plain_10); // 支持ArialMT_Plain_10/16/24字体
参考来源
B站 - 普中科技
CSDN博主 - thief_1
总结
本文实现了ESP32-S3对1.3寸OLED屏的完整驱动方案,相比传统方案,可视面积增加30%。在硬件连接和代码实现过程中,需注意GPIO冲突问题。建议通过I2C扫描程序验证连接,后续可扩展实现更多功能。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月19日 16时41分36秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
剑指 Offer 11. 旋转数组的最小数字
2019-03-15
作为我的第一篇csdn博客吧
2019-03-15
一道简单的访问越界、栈溢出pwn解题记录
2019-03-15
响应的HTTP协议格式+常见的响应码
2019-03-15
关于Linux系统中touch命令的说明
2019-03-15
将windows里的内容直接复制粘贴到ubuntu,提高效率
2019-03-15
webservice 远程服务器返回错误:(400)错误的请求
2019-03-15
[日常] PHP与Mysql测试kill慢查询并检验PDO的错误模式
2019-03-15
[Linux] 进程间通信
2019-03-15
[PHP] error_reporting(0)可以屏蔽Fatal error错误
2019-03-15
thinkphp 的一些重要知识点
2019-03-15
Java学习第二章——Java基本语句
2019-03-15
遇到问题之-yum update无法连接镜像问题解决
2019-03-15
pycharm如何设置(错误、警告类的标准提醒)
2019-03-15
PHP是世界上最好的语言?Phython第一个不服
2019-03-15
Bugku CTF-web6
2021-05-18
Bugku CTF-web10 头等舱
2021-05-18
UML-配置图
2021-05-18
JS高级面向对象(二)-构造函数和原型
2021-05-18