当M5StickC 遇上UIFLOW系列(四)I2C与I/O扩展-Arduino中文社区 - Powered by Discuz! Archiver

vany5921 发表于 2019-8-20 20:24

当M5StickC 遇上UIFLOW系列(四)I2C与I/O扩展

本帖最后由 vany5921 于 2019-8-20 20:30 编辑

麻雀虽小,五脏俱全,别看M5StickC小巧,外接能力不简单。可能有人会疑惑,M5StickC只有一个接口,要么接I2C,要么接I/O,如果有多个外设,接口不够用,该怎么办呢?带着这个疑问,我们来看看如何外接Unit进行扩展。先来介绍两个新的Unit,一个叫做HUB,一个叫做PbHUB

HUB是一款GROVE 接口的拓展器,其功能是能将1个GROVE 接口拓展为3个,使得能够同时连接更多的Unit传感器。PbHUB, 是一款GPIO GROVE PORTB扩展器,能够将单路GPIO GROBE 接口拓展至六路.内部集成MEGA328,且搭载驱动程序.Port B 中的两条数据总线与ESP32的GPIO36和GPIO26连接,可根据需求编程配置多个端口的输入(支持模拟输入)、输出。简单来说,如果想外接多个IIC设备,使用HUB,想接多个IO设备选择PbHUB,如果既要使用IIC又要使用IO那么可以结合这两个Unit使用。所以大可不必担心,接下来我们利用UIFlow来看一下如何同时使用。以下的例程借助TOF和REALY模块进行演示。

在虚拟UI里拖动title和label绘制菜单栏、标签,label用来显示TOF的数据。从Units中找到ToF和Pb.HUB添加,两者都是IIC接口。实物连接:HUB可以直接连接到GROVE A接口,TOF接到HUB,Pb.HUB输入端连接到HUB,输出端连接RELAY。下面是示意图,通过两个HUB可以拓展出3个IIC 和6个IO。
程序验证起来比较简单,如果TOF距离小于50厘米开启继电器,否则关闭。找到单元模块,已经可以看到TOF和PBHUB,TOF可以直接读取数值,而PBHUB的模块较多,可以读取指定引脚的数字值,也可以写入指定引脚的数字值,还可以读取模拟量和控制LED,如果我们接了多条灯带想独立控制那么将是不错的选择。程序很简单,直接看图

简单解释一下,端口有引脚0和引脚1的设置,分别对应的是G26/G32和G36/G33,而RELAY连接的是G26/G32,所以要用引脚0进行控制。实验证明IIC与I/O是完全可以同时使用的,除此之外在Ma5StickC的顶部还有2个端口,也就是G26/G36,方便我们连接外设,关于它的使用,将在后续教程中介绍。

iossystems 发表于 2019-12-29 14:27

学习学习。。
页: [1]
查看完整版本: 当M5StickC 遇上UIFLOW系列(四)I2C与I/O扩展