有问题请教,用51单片机来控制步进电机加压,压力传感器反馈给单片机力值来确定当前加载的力值

2025-03-04 22:09:27
推荐回答(2个)
回答1:

首先我要说明回答你的问题不是为了分。我有个项目遇到的问题与你类似,经过两年多的努力才算解决。你的问题不是软件算法问题,而是步进电机的用法问题。
步进电机的运动是“步进”,压力传感器的“变形”是连续的而且变形量非常之小,在很大范围内不能稳定(不仅仅是一个临界“点”)。
解决的方法是:
1》在要求不高的情况下,用弹簧连接丝杆与传感器,并且丝杆导程尽量选小点,步进驱动器细分尽量高点,弹簧的弹性系数尽量小点。
2》在要求较高的场合,利用步进电机调整压缩空气压力(动态调整),再用气缸去推动传感器。
我有几款产品就是利用这两种方法来解决的,效果感觉良好。

回答2:

可以多次采样,得出压力变化的趋势,再参考当前的压力,进行控制。
while(1)
{
if (yali2 < 10 - 1) 步进电机工作; //压力远小于标准,立即工作.

else if (yali2 < yali1 - 0.5) 步进电机工作; //本次压力小于上次,立即工作.

…….

else if (yali2 > yali1 + 0.5) //压力上升很快.
if (yali 2 > 10 - 0.5) 步进电机停止; //已经很接近标准值,这时就可以停机了.
…….
}

判断程序编写不好,执行机构就会在临界点反复振荡。