我正在控制步进电机,我需要找到测量最小电压的位置,然后在该位置附近保持电机平衡。
我有一个基本算法来查找最小值并平衡该位置周围的多个“步数”(它找到最小值,然后向右移动10步,向左20个,向右20个等)。现在,我希望它达到平衡,而不是通过多个步骤进行平衡,我需要它与度量值保持平衡(它找到最小,然后在+ 20%之间平衡,例如,如果最小值为10,我需要电动机移动到12,如果它没有感觉到新的最小值,并且测量的值大于12,则更改方向并执行相同操作。)
switch (DIR){
case 0:{
if (lastMeasure > measure)
steps = 10;
else
steps--;
if (steps == 0){
steps = 10;
DIR = 1;
}
makeAStep();
}break;
case 1:{
if (lastMeasure > measure)
steps = 10;
else
steps--;
if (steps == 0){
steps = 10;
DIR = 0;
}
makeAStep();
}break;
lastMeasure = measure;
我粘贴的代码通过位置来平衡电动机,但我不知道如何通过%差异来平衡电动机。
你们有想法吗?
谢谢