Huskylens 设置成I2C通信时和OLED有冲突, Arduino上无法正常工作
2020-03-081.8万
AI 快速预览详细
本文讨论了在Arduino UNO平台上,Huskylens设置为I2C通信时与OLED发生冲突的问题。具体现象包括Huskylens的I2C地址无法更改,以及OLED显示命令加上后程序无法正常运行。通过对比Micro:bit平台上的正常运行情况,文章提供了详细的解决方案,帮助用户解决这一常见的I2C地址冲突问题。
|
各位帮忙看看是什么问题?谢谢! 硬件设备: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,调用的头文件和运行代码一模一样),但运行功能异常,整个系统无法工作。 ![]() |









最简单的方法是把HUSKYLENS设成UART模式
但后来加两个舵机做2自由度的云台,做自动跟踪的时候,发现舵机会乱抖动。估计哈士奇的模拟串口使用了定时器,导致影响到控制舵机的信号。
所以就想着把哈士奇也走I2C,没想到竟然直接挂死。
在mircobit上做了对比,两个都走I2C的话又没有任何问题。翻了下论坛,把哈士奇挂在I2C上的方案用的都是microbit,所以想来看看有没一样用arduino的兄弟。
单独连线测试都没问题,但两个连在一起就有问题。
而且在arduino上有问题,但在microbit上又没有问题。。。