最近因为优惠活动就囤了一些硬件模块,其中包括几块OLED显示屏。当它们整齐的摆放在一起时我突然想到能不能把它门同时点亮并且显示不同内容。很快,这想法遇到了问题,显示屏通过I2C接口与控制器通信,而ESP32-E控制器只有一个I2C接口就算使用扩展板也只有3个I2C接口,也无法满足同时控制4块显示屏。而且I2C器件地址的冲突,连接到控制器同一个I2C接口上的多个相同地址的I2C器件无法正常通信。

额。。。难道说还未开始就已结束了吗? 不,还没有结束,因为我看到了它—I2C级联扩展器:一个专门解决I2C地址的冲突的扩展器。有了它同时点亮多个显示屏的问题迎刃而解。

准备做一个时钟盒子,能够显示时间日期、倒计时、座右铭。

时钟

材料清单:

  • 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左右。

用I2C级联扩展器做一个时钟盒子相关推荐

  1. 用css3 3d效果做一个立体盒子

    想要做立方体的盒子 需要了解几个知识点 旋转 transform:rotate 基点的设置 transform-origin 3d设置 transform-style:preserve-3d 移动:t ...

  2. 手把手教学51单片机 | 第四节 动态数码管,用6位数码管做一个时钟

    1.利用定时器做一个流水灯的程序 //流水灯从上到下一次点亮,然后让全部灯闪烁两次,依次循环 #include<reg52.h> #include<intrins.h> #de ...

  3. 四位数码管树莓派c语言,用树莓派和四位数码管模块做一个时钟

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 预备知识 如图,这是一个4位数码管模块,由两片 74HC595 级联控制,引脚如图,从上到下,分别为VCC(3.3V/5 ...

  4. 如何用python做一个时钟_Python使用turtle库制作一个时钟

    前言 Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在 ...

  5. flash做一个时钟程序

    这里主要起作用的是三跟指针,所以还是先从指针动手: 新建3个MC,分别画好长度不相同(*样式自定)时针,分针,秒针.注意画的时候那个小+,那是指针的圆心 一一拖到场景中,实例名分别为hours,min ...

  6. CSS3 做一个旋转的立体3D正方形 动效核心【前端就业课 第二阶段】CSS 零基础到实战(07)

    若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证. 一.transform-origin transform-o ...

  7. 用树莓派PICO做一个桌面时钟超详细教程!

    用树莓派PICO做一个可显示时间和温湿度的桌面时钟 一.概述 二.材料准备 1.树莓派PICO 2.DHT11温湿度传感器 3.DS1302时钟模块(选用) 4.SSD1306屏幕 5.其他材料 三. ...

  8. 使用HTML5的canvas做一个会动的时钟

    这次我们的目标是画一个会和时间同步的时钟,不过没有美学感觉,样子丑的厉害. HTML5支持canvas了,我们可以直接在页面上绘图了,我看了下canvas和GDI+的接口差不多,所以我们先了解些基本的 ...

  9. html如何隐藏盒子的边框线,用DIV和CSS做一个实线边框的红色盒子

    做一个案列给大家参考,我们使用DW软件来做一个红色实线边框的盒子,我们给这个盒子命名为DIV,下面就是代码案列 为了观察效果对盒子设置一个css高.css宽样式,并赋予红色css边框样式.同时为了兼容 ...

最新文章

  1. linux进程间通信:消息队列实现双端通信
  2. 如何创建企业转型路线图
  3. python的numpy matlib
  4. php数字转中文数字排序,php实现中文转数字
  5. 『软件工程1』详解软件是什么
  6. 教程 | Hadoop集群搭建和简单应用
  7. 20144303《Java程序设计》第10周学习总结
  8. vsftp虚拟帐户配置
  9. 标记偏置 隐马尔科夫 最大熵马尔科夫 HMM MEMM
  10. “strcmp”不能将参数从“LPWSTR”转换为“const char *”
  11. PT100温度采集电路设计
  12. 利用地图API定制开发电子地图应用系统
  13. c语言 switch错误用法,C语言switch语句的详细用法
  14. 鸿蒙之初彩蛋攻略,鸿蒙圣女 热血精灵派鸿蒙灵帝解析
  15. 必应壁纸爬取 def
  16. CSDN云IDE怎样克隆代码
  17. 坐落尘世的繁华,幽眉清黛任花开花谢
  18. 网络层路由选择协议(RIPOSF)
  19. javafx小球运动
  20. word启动时出现运行时错误 未注册类弹窗问题

热门文章

  1. 单位组织机构代码提取和补零操作
  2. 实现子弹自动向前运动 定时器 移动精灵 精灵释放
  3. 前后端对接及接口管理平台浅析
  4. 电信行业用户流失预测——你的用户会流失吗?
  5. bde oracle 商友的流程_BDE动态连接Oracle数据库
  6. matlab批量下载网页文件
  7. java写渗透工具_常用渗透测试工具使用tips
  8. (Python3) Numeric (数字)类型
  9. CAR-T细胞治疗最新进展(2021年12月)
  10. 计算机多媒体基础,计算机多媒体基础.pdf