stm32平衡小车 PCB制板 记录
前言
作为diy玩家,我的平衡小车主板采用模块化方式,即驱动模块、主控模块、通信模块等模块采用直插式连接到主控板上,主控板同时可充当平衡小车底板。平衡小车使用的模块有stm32最小系统模块,mpu6050模块,电机驱动模块,蓝牙模块、nrf24L01模块、0.96 OLED模块。小车供电使用两节14500锂电池串联供电。作为补足,PCB板上具有采用一路3.3V降压稳压电路,一路5V降压稳压电路,PCB板上集成了一路按键,一路芯片控制的led,一路电源电压检测电路。
(因为我有现成的主板,所以没有采用PCB板充当小车主板的方案,但拿回来的PCB板,从强度上来说,充当小车底板足够了)
这篇文章一方面为后续改电路做为更改记录,一方面作为自己以后制板的笔记,另外一方面,为后来人避坑。
1、电压转换偏高
在拿到PCB板之后,焊接所有PCB板元器件后,不带模块测试电压发现两路降压稳压电路输出电压均高于电路应输出电压0.2~0.3V,后检查发现所用万用表电池电压不足,更换电池后,重新测量,两路降压稳压电路输出均正常。
2、电源电压检测电路
stm32模块、0.96 OLED模块连接后发现电源电压明显不正常,后用万用表排查发现,原用于分压的电阻 R3 在拿取的时候,错误使用100Ω电阻,更换后,OLED模块电压显示正常。
3、蓝牙模块信号线连接错误
蓝牙模块使用串口通信方式通信,在电路绘制时,RX与TX没有预设为交叉连接,导致通信错误,因电路在排针母座下,且过孔等干扰,难以通过飞线纠正。
4、mpu6050模块固定孔位置略微偏差
因为卖家给的mpu6050模块的相关位置图位置表达模糊,绘制PCB库文件时,虽然尽量给孔预留活动位置,但仍然没法很好的使用铜柱固定,现在只能依靠自身排针座固定。目前尚未找到合适的解决办法。
5、mpu6050模块供电电压选择错误
在PCB板中错误给mpu6050选择5V电压供电,5V已经是mpu6050模块可以使用的最大极限电压,为保证安全,采用刮去原本布线,烙铁飞线的方式,为其改为3.3V供电,目前模块运行平稳。
6、编码器电机连接线顺序混乱
编码器电机中,编码器的供电线、信号线交叉,在影响外观的同时,或会对编码器采集数据(如电机正反转方向)产生影响。
7、编码器引脚选择错误
在设计之初,忽略了stm32定时器编码器模式只能使用通道1、2,而错误选择通道3、4导致编码器无法采集到数据。
8、小车整体布局
目前PCB布局为平行于电机轴向短,垂直电机轴向长,对小车稳定性会产生不利影响。
9、小车右轮编码器读取数值异常
小车右轮编码器使用的TIM4读取数据,使用0.96 OLED显示部分需要看的数据。以一次采样时间内,编码器采集到的数据作为车轮转速。前期调试时发现小车左轮转速 十位 变化明显,而右轮编码器只有 个位 变化明显,十位 很少变化。
刚开始的时候,我判断是右轮转速变化太快,导致 十位 变化不明显。但后来在确定速度环极性时,发现手动转动A车轮,A、B两轮能够在较短时间以相同的方向达到速度的最大值;但手动转动B轮,A、B两轮没有电力驱动。然然后就是找原因:硬件仿真看相关参数、寄存器数值……使用前辈们成功的代码替换自己关于编码器部分的代码……注释掉自己程序所有与右侧编码器和显示屏以为的代码初始化,单独运行右侧编码器相关代码和显示屏代码……,还是没找到原因,后来猜测是不是自己PCB走线干扰到编码器信号?在采用飞线的过程中发现编码器其中一根信号线虚焊,因焊盘脱落,无法补焊,最后还是采用的飞线,飞线后,右侧转速正常。
关于这条,我学到的是,在制作PCB板时,在条件允许范围内,焊盘一定要尽可能的大。
文本修改记录
1、20210814:为第七条关键语句做 加粗文字 处理;
增加第九条;
小车硬件基本完成,开始进行程序调整记录,删除文章开头“本文随个人制作进度持续增改”标记。