Huskylens 设置成I2C通信时和OLED有冲突, Arduino上无法正常工作
各位帮忙看看是什么问题?谢谢!硬件设备:Arduino_UNO, Huskylens , OLED.
软件:Mind+_V1.6.2 RC2.0.
硬件连接:Huskylens , OLED 都挂在UNO的I2C上。
问题:
在Microbit平台,运行正常,没有任何问题。
但在Arduino平台,Huskylens 设置成I2C通信时,和OLED有冲突,造成设备无法工作。
现象:
1. 哈士奇和OLED的I2C地址都可以读到,但哈士奇的I2C初始化积木中I2C地址和读取到的地址不一致,且无法更改。没有做任何设置时,读取到的哈士奇的I2C地址是0x32。
哈士奇初始化积木中有个无法更改的I2C地址:0x55,使用后再次读取I2C地址,还是显示0x32.
2. 一旦把OLED显示命令加上去,就没有任何调试信息打印,当然OLED也没有任何显示。
即使把哈士奇的编程积木去掉,只要把哈士奇挂在I2C总线上,程序就没往下走。
3. 为了做对比,把Huskylens和OLED都挂在Micron:bit的I2C上,发现运行正常。
4.Arduino:代码和Micro:bi几乎完全一样(比较了code,调用的头文件和运行代码一模一样),但运行功能异常,整个系统无法工作。
OLED也要初始化I2C地址的好咩? 估计两个干扰了 帅猫 发表于 2020-3-8 14:50
OLED也要初始化I2C地址的好咩?
恩,是有OLED初始化I2C地址的积木。不过试了下,OLED的I2C地址设置积木用不用都不会影响OLED的正常工作。而且,无论加不加OLED的I2C初始化,都会挂死。。。
单独连线测试都没问题,但两个连在一起就有问题。
而且在arduino上有问题,但在microbit上又没有问题。。。
本来哈士奇走模拟串口,OLED走I2C没有冲突,都能正常工作。
但后来加两个舵机做2自由度的云台,做自动跟踪的时候,发现舵机会乱抖动。估计哈士奇的模拟串口使用了定时器,导致影响到控制舵机的信号。
所以就想着把哈士奇也走I2C,没想到竟然直接挂死。
在mircobit上做了对比,两个都走I2C的话又没有任何问题。翻了下论坛,把哈士奇挂在I2C上的方案用的都是microbit,所以想来看看有没一样用arduino的兄弟。 分别测出HUSKYLENS和OLED的I2C地址再分别初始化,
最简单的方法是把HUSKYLENS设成UART模式 我的huskylens + arduino uno使用i2c连地址都扫描不到?楼主遇到过没?怎么搞呢?
我的huskylens + arduino uno单独连接I2C和UART都没有问题。同一个连线换成其他I2C设备试试看,排除下连接的问题 假如你的OLED也是IIC接口的话,那就不应该有冲突。他们的地址码是不一样的,理论上说IIC口可以连128个设备
页:
[1]