本帖最后由 myqiang1990 于 2013-8-13 13:28 编辑
这个工程是我6月份的时候弄得,是一个烂尾工程~~~当时想试着用DMX+AVR线性加速算法来控制步进电机,但是结果想了一下,这样十分麻烦!第一:动态调速是一个严重的问题,第二:这个算法如果加上软件变细分算法,那比登天还难啊!!(做过云台或者舞台灯的人都知道,电机要在低速单片机跑高速,唯一的办法就是用软件进行连续变细分~~~)后来弄了一点就不弄了~~里面没有DMX控制电机中最核心的电机状态的动态判断和运行参数的动态加载~~但是这个工程还是有价值的!里面的AVR线性算法附有我详细的中文说明!还有学习如何对DRV8841进行细分驱动,DRV8841和L6225一样的~~~所以不懂驱动L6225的,看这个工程就会进行细分了~~这个工程用的是64细分~~~大家在主函数中调用MotorDmxValueParse(XX); XX是DMX值,电机就会动了~~~
硬件:STM32F103RC + DRV8841
截图03.jpg (227.61 KB, 下载次数: 4)
下载附件
2013-8-13 11:18 上传
工程:
AVR_DMX_MotorControl.rar
(473.22 KB, 下载次数: 658)
2013-8-13 11:25 上传
点击文件名下载附件
AVR线性加速算法资料:
AVR446_Linear speed control of stepper motor.pdf
(152.63 KB, 下载次数: 642)
2013-8-13 11:20 上传
点击文件名下载附件
请问,APP_M1MotorControl.c文件中 line 316中的rest是做什么的呢?AVR446文档的公式里面好像没有这个参数。
line 317 rest = (M1_CurrTask.srd.step_delay * 2 + rest) % (M1_CurrTask.srd.accel_count * 4 + 1); 作用又是什么呢?
两年前的帖子了,希望楼主能看到,谢谢啦。
SubSinTable[] SubCosTable[]是怎么算出来的呢?
一周热门 更多>