初级会员

- 积分
- 99
- 金钱
- 99
- 注册时间
- 2017-8-17
- 在线时间
- 23 小时
|
5金钱
我这边初学者。想做一款产品。ADC检测外部电位器的可变电压,然后讲检测到的数值赋值给我这边步进电机速度。步进电机通过定时器给脉冲频率。我是希望随着电位器旋转速度是随之变化的。但是现在好像只会运行的时候检测一次电压。速度恒定。怎么解决这个问题?ADC中断?
while(1)//死循环
{
// adcx=adcx*10;
if(KEY1==0)
{
adcx=Get_Adc_Average();//得到ADC采集的数据
step1_runhand(adcx,1); //最高运行频率为3000,1为正转
LED1_ON;
}
if(KEY2==0)
{
adcx=Get_Adc_Average();//得到ADC采集的数据
step1_runhand(adcx,0); //最高运行频率为3000,0为反转
LED2_ON;
}
if(KEY3==0)
{
TLCLOSE_flag=1; //停止命令,不是直接停止输出脉冲,而是减速停止
LED1_OFF;
LED2_OFF;
}
}
|
最佳答案
查看完整内容[请看2#楼]
如果是电机的速度更不上,很正常啊!这是你的电机的带宽不够,相应太慢。就是你的ADC已经给电机控制信号了,但是电机要加或减到,给定的速度需要的时间比较久。这是电机控制算法的问题。程序逻辑解决不了。
|