开在边缘 发表于 2023-2-19 22:03:59

懂航模动力电池、直流电机对单片机造成干扰的兄弟进来看看

<p>这玩意是3年前自己做着玩的,今天找东西的时候无意当中翻出来了,当初有个干扰的问题一直没有解决,问问看有没有兄弟懂这个的,指点一下。</p><p><br/></p><p>先说一下用的零件,开发板是ESP WROOM 32,姿态模块是MPU6050,电机驱动模块是TB6612,超声波是SR04,屏幕是I2C接口的OLED屏,电机是JGA25-370,减速比1:34,12线的霍尔编码器,电池是普通的航模电池,1500mAh-4S-35C,降压模块是MP1584,一个转3.3V给ESP32,一个转12V给电机。另外加了一个40k的可调电阻,分压1/5给EPS32用来测量电池电压。装配用的是洞洞板,全部采用飞线手动焊接。</p><p><br/></p><p>当初这个干扰的问题就是,有时候当我写EEPROM时,ESP32就重启了,连接串口后,显示的信息是地址不存在。后来发现和电机通电有关,如果电机在运转,就会随机的出现这个问题。如果电机不在运转,就没问题。难道是电磁造成的干扰?</p><p><br/></p><p></p><p><br/></p><p></p><p><br/></p><p></p><p><br/></p><p></p><p><br/></p><link rel="stylesheet" href="//bbs.591moto.net/source/plugin/wcn_editor/public/wcn_editor_fit.css?v134_i6I" id="wcn_editor_css"/>

开在边缘 发表于 2023-2-19 22:14:16

<p>另外后期又做了一个遥控器,开发板是ESP WROOM 32,姿态模块是MPU6050,屏幕是SPI接口的TFT屏,2.4GHz的无线串口模块,使用了一块普通的充电升压一体板。遥控器可以通过蓝牙、无线2种方式进行遥控。</p><p><br/></p><p></p><p><br/></p><p></p><p><br/></p><p>ESP32的蓝牙,是低功耗蓝牙+经典蓝牙。开始的时候,我是使用的低功耗蓝牙,但是有一个问题,一直无法解决。直接使用ESP32的BLE例程,一个字都不改,当两块ESP32通过BLE连接后,有时候好好的,没问题。但是有时候短短几秒钟,就会断开连接。如果此时重连接,还是一样。这个问题,在使用BLinker时也存在。Blinker通过BLE连接ESP32后,有时候好好的,一直保持连接。有时候几秒钟后就自动断开连接了。折腾了好长时间,一直都不知道问题出在哪里,所以后期改用了经典蓝牙。</p><p><br/></p><p>经典蓝牙用起来就简单多了,直接使用蓝牙串口,就和串口一样操作。不过同样也有一个问题,也一直无法解决。当2块ESP32通过蓝牙串口相连后,如果一块ESP32持续的向另一块ESP32发送数据,而此时接收数据的ESP32突然断电,这时候发送数据的那块ESP32会卡在发送程序中(我指的是蓝牙串口自己的发送程序),这样就导致了接收数据的ESP32上电后,就算再次连接成功,也无法接收到任何数据,而那块发送数据的ESP32则一直卡在发送程序中,除非重启。有意思的是,这块卡在发送程序中的ESP32,竟然看门狗也不起作用,不知道是为什么。</p><p><br/></p><p>我尝试过,此时如果把发送数据的ESP32的蓝牙串口end掉,则马上会出现看门狗超时复位。如果把整个发送过程做为一个任务,就算结束这个任务,再开启这个任务,也没用。</p><p><br/></p><p>这个问题表现出来的实际操作就是,当遥控器上电,通过蓝牙串口连接上平衡小车后,平衡小车开始回传数据给遥控器,此时如果关闭遥控器电源,再重新打开电源,遥控器可以通过蓝牙串口连接上平衡小车,也可以发送数据给平衡小车,但是无法接收到平衡小车的数据,因为平衡小车的发送程序卡住了。</p><p><br/></p><p>有懂的兄弟,帮忙看看,指点一下。</p><link rel="stylesheet" href="//bbs.591moto.net/source/plugin/wcn_editor/public/wcn_editor_fit.css?v134_i6I" id="wcn_editor_css"/>

五星好市民 发表于 2023-2-19 22:20:26

加一个屏蔽罩试一下

开在边缘 发表于 2023-2-19 22:30:14

<p>之后为了好玩,又加了一个线性CCD循迹功能,用的是TSL1401CL,配120度广角镜头,然后自己打印底座和支架。后期调试的时候发现,在弱光环境下,CCD简直就是一个瞎子,就算是运放输出,也是一个白内障,所以又加了一个简单的照明。</p><p><br/></p><p></p><p><br/></p><p></p><p><br/></p><p></p><p><br/></p><p></p><p><br/></p><p></p><p><br/></p><p></p><p><br/></p><p>视频点击下方<br/></p><p>https://v.youku.com/v_show/id_XNDczNTUzOTU2MA==.html</p><p><br/></p><p>还有一个问题就是,EPS32在SPI总线交换数据的时候,会引起I2C超时,哪怕SPI和I2C的读写是在两个不同的core上运行的两个任务,这个也不知道怎么解决。</p><p><br/></p><link rel="stylesheet" href="//bbs.591moto.net/source/plugin/wcn_editor/public/wcn_editor_fit.css?v134_i6I" id="wcn_editor_css"/>

开在边缘 发表于 2023-2-19 22:39:14

五星好市民 发表于 2023-2-19 22:20
加一个屏蔽罩试一下

<p>嗯,我曾经试过,用的是烤箱用的锡纸,把电机完全包起来试过,没用。然后用锡纸把esp32包起来,也没用。</p><link rel="stylesheet" href="//bbs.591moto.net/source/plugin/wcn_editor/public/wcn_editor_fit.css?v134_i6I" id="wcn_editor_css"/>

五星好市民 发表于 2023-2-19 22:52:18

过段时间问下合作企业的总工。唉,看了你这个帖子觉得自己这个末9的机械硕士白上了

开在边缘 发表于 2023-2-19 23:15:33

五星好市民 发表于 2023-2-19 22:52
过段时间问下合作企业的总工。唉,看了你这个帖子觉得自己这个末9的机械硕士白上了

<p>好的,多谢了。握个爪,我也是学机械的,就是当时英语太差了,连个学士也没捞着,只有个本科文凭<img src="http://img.baidu.com/hi/jx2/j_0064.gif"/>。</p><link rel="stylesheet" href="//bbs.591moto.net/source/plugin/wcn_editor/public/wcn_editor_fit.css?v134_i6I" id="wcn_editor_css"/>

GN125_1984 发表于 2023-2-19 23:43:54

这种干扰一般是导线上的浪涌产生的,直流电机在运转时会产生反冲电动势,继电器线圈也有,一般设计简单化处理就是增加信号隔离,同时ESP32与电机驱动之间的供电分两个独立电源,一般我用DCDC隔离电源供电,信号的话采用光耦隔离,隔离出来的信号通过74LS04增加强度,这种方法是暴力隔离的方法,一般效果很好。

zhulei0822 发表于 2023-2-19 23:44:27

可能是直流电机对地干扰问题。示波器看下两个芯片地的noise。飞线的方式对地不太友好。加电容和磁珠做隔离试试。

GN125_1984 发表于 2023-2-19 23:45:44

你驱动用的是TB6612FNG的吧,信号隔离加上CPU与电机供电两个独立电源就可以了
页: [1] 2 3
查看完整版本: 懂航模动力电池、直流电机对单片机造成干扰的兄弟进来看看