小开源一个基于DMX+AVR线性加速算法控制步进电机的烂尾工程

2020-01-11 18:14发布

本帖最后由 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 上传 点击文件名下载附件






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
48条回答
LQS1200
1楼-- · 2020-01-15 21:24
线性加减速好像能防止失步和堵转吧?修过用数字电路实现的板,波形接近正弦波
wqtslove
2楼-- · 2020-01-15 21:42
本帖最后由 wqtslove 于 2015-10-10 16:32 编辑

请问,APP_M1MotorControl.c文件中 line 316中的rest是做什么的呢?AVR446文档的公式里面好像没有这个参数。
line 317   rest = (M1_CurrTask.srd.step_delay * 2 + rest) % (M1_CurrTask.srd.accel_count * 4 + 1); 作用又是什么呢?
两年前的帖子了,希望楼主能看到,谢谢啦。
usm4glx
3楼-- · 2020-01-16 00:08
 精彩回答 2  元偷偷看……
wqtslove
4楼-- · 2020-01-16 00:49
楼主看一眼吧,实在想不明白了。
  SubSinTable[]   SubCosTable[]是怎么算出来的呢?   
yangbo18416
5楼-- · 2020-01-16 04:59
先下载下来看看,最近也在弄这块
usm4glx
6楼-- · 2020-01-16 05:23
看看,学习下

一周热门 更多>