本帖最后由 派大星ym 于 2022-8-16 10:28 编辑
最近因为优惠活动就囤了一些硬件模块,其中包括几块OLED显示屏。当它们整齐的摆放在一起时我突然想到能不能把它门同时点亮并且显示不同内容。很快,这想法遇到了问题,显示屏通过I2C接口与控制器通信,而ESP32-E控制器只有一个I2C接口就算使用扩展板也只有3个I2C接口,也无法满足同时控制4块显示屏。而且I2C器件地址的冲突,连接到控制器同一个I2C接口上的多个相同地址的I2C器件无法正常通信。
额。。。难道说还未开始就已结束了吗? 不,还没有结束,因为我看到了它—I2C级联扩展器:一个专门解决I2C地址的冲突的扩展器。有了它同时点亮多个显示屏的问题迎刃而解。
准备做一个时钟盒子,能够显示时间日期、倒计时、座右铭。
视频传送阵:
https://www.bilibili.com/video/BV1wV4y1E71d?zw&vd_source=376eec0d57122206c6a5dd46dbd0ef2c
材料清单:
- ESP32-E IoT 开发板
- RTC 实时时钟模块
- I2C OLED-2864 显示屏
- I2C级联扩展器
- 倾斜开关x2
- 外壳
电路连接:
硬件组装:
在塑料外壳四面用激光切割出屏幕开口
使用激光切割尺寸较厚的塑料,至少需要重复切割2次才能成功,多次切割切口有时出现融边现象,需用美工刀修饰一下
安装显示屏
切口尺寸根据显示屏的尺寸设计,完美契合
在显示屏的反面贴上3M单面海绵胶带(防止电路接触导致短路)
把杜邦线裁为合适的长度
将4个显示屏分别连接到I2C级联扩展器的0-3端口
I2C扩展器用于解决I2C器件地址的冲突,通过扩展器的转接,多个相同地址的I2C器件就可以正常使用了
将I2C级联扩展器的I2C接口连接到ESP32-E主控板的I2C接口上
将电池插入ESP32-E主控的锂电池接口
将RTC实时时钟模块的I2C接口连接到ESP32-E主控板的I2C接口上
整体图
把主控的电容触摸引脚(D12)焊接到螺丝上,作为触摸按键
用热熔胶以一定倾斜角度固定倾斜传感器
连接导线
将顶盖和底盒组装合并用螺丝固定
不知道为什么测试的时候一切好好的,偏偏组装起来触摸就无反应。
一开始我以为是硬件相互接触短路了,所以贴上3M海绵胶带避免短路。
不出意外问题还是没有解决。
后来我又以为是电路接触不良,于是重新连接了电路,保证每一个导线连接点都正常。
结果问题还是没有解决。
经过一系列的排除问题后,当使用普通按键代替电容触摸按键时,发现问题解决了,最终确定是电容触摸出了问题。
数据线供电时触摸引脚的touchRead()返回值在10左右,而电池供电时触摸引脚的touchRead()返回值在30左右。
|
楼主搞的非常好,围观学习。