|
本帖最后由 shruger 于 2012-11-25 14:26 编辑
额,步进电机型号不知道是哪种,了解的参数为:5伏4相50欧姆
硬件是用uln2003驱动,然后四相连接ARM板的4个GPIO口.
软件上,实现步进电机驱动采用单4拍:A-B-C-D(正转) A-D-C-B(反转)
如下:- fd = open("/dev/GPIO-Stepper",0);
- if(fd <0){
- perror("open device stepper");
- exit(1);
- }
- for( i=0; i< period; ++i){
- ioctl(fd,ON,A);
- usleep(delay);
- ioctl(fd,OFF,A);
- ioctl(fd,ON,B);
- usleep(delay);
- ioctl(fd,OFF,B);
- ioctl(fd,ON,C);
- usleep(delay);
- ioctl(fd,OFF,C);
- ioctl(fd,ON,D);
- usleep(delay);
- ioctl(fd,OFF,D);
- }
复制代码 当delay设置为 10000或者更大的时候转不起来,1000会慢慢转动,走一圈大概要几秒的样子,到1000以内速度基本不会变了。
PS: period 是步进电机内磁场变换的周期数
请问如何提高步进电机的速度呢? |
|