本项目使用到的硬件有:
✔ 铁氧体磁铁:规格为外径100mm,内径60mm,高15mm
✔ 线圈:PCB可兼容两种线圈规格:
大线径直径21mm,高22mm,内径9mm,直接电阻约为3.2欧姆,3mm螺纹孔
小线径直径19mm,高12mm,内径8mm,直流电阻约为4.2欧姆,3mm螺纹孔
✔ 浮子必须使用强磁钕铁硼:
大线径测试中使用了两块,D40*H5mm + D30*H5mm
小线径测试中使用了三块,D50*H5mm + D40*H5mm + D30*H5mm
✔D40*H5mm:直径40 高5mm
磁悬浮原理:磁铁悬浮向上的浮力主要是铁氧体磁铁提供的,中间4个线圈通电后产生磁场可以控制浮子的位置,令浮子处于一个中心。
PCB控制板的原理图:
主控板核心是STM32F103,电路中包含H桥电路、霍尔采集与放大电路、电源管理电路。
以下马同学在制作过程中的问题记录,都已经解决了。放在这里希望可以帮到大家:
1. 单片机在控制线圈时重启
问题详细描述:线圈大小为 (直径 )21*(高度)22mm 500匝 0.45mm漆包线,供电为适配器 12V2A,电路为双H桥,用来切换正负级,并改变占空比,在切换占空比时经常导致单片机重启,现象为单片机所接的OLED屏幕初始化并重新开始工作。
解决方案:
1)怀疑适配器供电不足,更换适配器12V 10A ,结果未解决,并且现象无改善;
2)怀疑电路问题,线圈作为感性负载,在改变极性或停止供电时会有反向电动势(来去拒留)会对电源电路造成冲击,电源电路的不稳定(纹波)通过辅助电源到达3.3V处,造成单片机重启。为各个mos管并联肖特基二极管(4148),形成释放回路。并除去5V电源,在3.3V处直接为单片机供电。结果:会起到一定作用,但并不稳定;
3)PCB原因:重新铺地,并更改地线连接方式(改的时候发现,stm32的四个地不是单点连接,【当时为了3.3V好走线,有两个地直接连接功率地,四个地之间相隔太远】),用磁珠隔离功率地,并添加泪滴,铺地后打板。结果:板子很稳定,未再次出现过重启现象(打板犹豫了很久,时间也拖了很久很久)。
2. Ir2104 有一路输出不稳定,会从12V降低,降低直到0V
单片机有输出,但是是3.3V(最初未注意),以为是自举电容的原因(因为6引脚的自举电容为高端mos管提供高于VCC的输出能力),结果查了查,是因为ir2104 不能完全高电平运行,更改单片机占空比,问题解决。
3. 上述单片机3.3V高电平问题,因为我在程序中未使用过持续高电平,后经查证发现:
if(pwm<=0)
{
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_2, 000);
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, pwm); //1向下
}
该段程序中,pwm 为int型,小于0为复数,而我在为ch1的pwm赋值时,直接赋值(负数,应赋值0-999之间),超出量程,出错。
4. 焊接完毕后,连续3个ir2104发烫,更换后正常,(出现在问题3的时间段中,未找到原因,不排除持续高电平会导致ir2104烧毁)。
5. 单片机PWM波引脚无输出
原因:在32cube mx 中不小心将分频系数与自动重载值设置为0,并且更新了一次,重新设置后问题解决。
6. 霍尔传感器受线圈干扰较大
问题描述:3个霍尔分别检测x、y、z轴的电磁变化,可以检测浮子(被悬浮磁铁)的位置,但是未放置磁铁,控制线圈工作时,霍尔的值改变较大。z轴尽可能平行于地面,x、y尽可能位于对角线上。
手动调整后,xy的值变化在200以内,z轴(直接放置地面后)依然较大,暂不处理。
7. 温漂问题
问题描述:霍尔传感器本身变化较小,添加了差分放大电路,基准电压由电位器提供,但3个电位器处于线圈下方,线圈工作后会发热(电阻),且温度变化快,会导致电位器温度上升,基准值变化,运放输出改变。
知识普及:好的电阻温度系数为2ppm/°C,但精密可调电阻为100ppm/°C。
解决方案:飞线,远离温度变化大的地方,下次打板子一定要注意精密可调电阻远离线圈 。
改版结果:采集数据有所好转,但依然会受温度影响,目前采取措施为:双层使用,板子分为上下两块板,分别使用,已成功实现悬浮。