树莓派 pwm 步进电机 如何精确位移!
目前以实现通过softPwm控制步进电机转动 如何控制电机精确位移 请大神教我!下面附上程序#include <wiringPi.h>
#include <softPwm.h>
#include <stdio.h>
#define uchar unsigned char
#define pwm1 27
int main(void)
{
if(wiringPiSetup() == -1){ //when initialize wiring failed,print message to screen
printf("setup wiringPi failed !");
return 1;
}
//pwmInit();
softPwmCreate(pwm1,1,2);
while(1)
{
//pwmSet(1);
softPwmWrite(pwm1,1);
}
return 0;
}
//编译gcc -o pwm pwm.c -lwiringPi lpthread
放弃吧,树莓派不可能精确产生pwm的,操作系统调度对于pwm来说,不确定因素太多了。只能使用外设 seth.yang 发表于 2015-11-16 16:20
放弃吧,树莓派不可能精确产生pwm的,操作系统调度对于pwm来说,不确定因素太多了。只能使用外设
既然他有pwm 应该有个控制步进电机的方案吧
可以控制步进电机,但想“精确”的控制就不现实了。如果你的精度要求不高,可以使用。要知道,我们每一句代码的确切执行时间都不由我们决定,而是通过系统的调度机制决定的,而linux系统很忙,尺度大概在毫秒级别的,精确pwm通常在微秒级别,因此精确控制不现实。 你好,能说下你是如何接线的吗?四轮驱动的话。
我是wiringPi 的 0,1,2,3 即板上的11,12,13,15 分别接L298N电机的in1,in2,in3,in4
但现在想调速,用sotfpwm,请问你是用ENA,ENB的四个随意接到其它GPIO口上吗?还是这图上标的pwm0,pwm1四个针脚上,
谢谢,请回复。
页:
[1]