同时使用两个VL6180X测位移
传感器(模块)与Arduino等单片机传输数据时,是在一定的传输协议约定下的,比如IIC传输协议,集成电路总线传输结构,只需要SCL和SDA两条线,然后所有的传感器都挂在两条线上,当需要传输数据时,单片机向传感器发送信号,告诉它我要读你的数据了,然后传感器应答,再读取,结束。如果再次传输数据,就再来一遍。
关键是单片机发送起始信号时,是向传感器的地址发送的,象ADS1115这种传感器模块,它有地址引线,当使用两个或两个以上时,可以把引脚上的焊点焊上,地址就改变了,同时使用两个根本不是问题。
VL6180X没有这种改变地址的预留焊点。在网络上各处搜索了一通,没有能直接改变VL6180X地址的办法,包括Arduino的官方论坛里,不少悬而未决的问题。但一路下来,总体上思路是有的。一种是轮询,即象串口那样,我们自己建立一个SCL节拍,这样虽然同一地址有多个器件,但同一时刻只有一个器件能收到单片机发过来的起始信号。有人写了代码,但我没有调通。另一种是直接使用TCA9548A这个多路扩展IIC的现成的模块。
TCA9548A IIC多路扩展板有本领把1路IIC扩展成8路IIC,只是使用起来有些太过痛苦和麻烦。总之至此可以同时使用两个VL6180X模块。
同时测量两只小盒子的移动:
效果:
期间也有很值得记录的两件事:
这几天很糟糕的是无法打开phyphox官网,因此phyphox端程序无法使用phyphox editor,只好找了以前的phyphox程序改来改去,终于能接收数据了。
另,我越来越发现,与其使劲折腾ESP32开发创作环境的费劲(而且ESP32由于版本太多,引脚定义也比较乱),还不如直接使用Arduino+蓝牙来配合Phyphox了,Arduino Nano开发板10元左右,如果使用直插Attiny85则在6元左右,不使用HC-08而使用蓝牙JDY系列的BLE5大约8元,即14至18元之间,价格显然低于果云ESP32,ESP32果云的总得30元左右吧?
------心存DREAM喜欢琢磨实验并自娱自乐的MIRACLE------
实验教学值得学习的去处:
2.学生自主创新实验